简述Linux调度及其抢占。

题目

简述Linux调度及其抢占。

参考答案和解析
正确答案: 第一,虽然Linux2.6中代码被设置了抢占点,内核已经可以抢占,因而实时性得到了加强。但是内核中仍有大量的不可抢占区域,如由自旋锁(spinlock)保护的临界区,以及一些显式使用preempt_disable失效抢占的临界区。还包括核心进程是不能被抢先的,即如果有Linux的核心态进程在运行时,其他进程不管其优先级多高都必须等待。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

什么是“抢占式优先级调度”和“非抢占式优先级调度”?


参考答案:采用“非抢占式”调度时,一旦有某个高优先数的进程占用了处理器,就一直让它运行下去直到该进程由于自身的原因主动让出处理器或进程执行结束而让出处理器。此时,进程调度才重新再按优先数选择另一个占用处理器的进程。采用“可抢占式”的调度,这种方式是严格保证任何时刻,总是让具有最高优先数的进程在处理器上运行。也就是说,当某一进程在处理器上运行时,一旦有另一个更高优先数的进程就绪,进程调度就要剥夺正在处理器上运行的进程使用处理器的权力,抢回分配给它的处理器,而把处理器让具有更高优先数的进程使用。这种抢占式的优先数调度算法在实时系统中很有用。例如,在实际系统中可把处理紧急情况的报警进程赋予最高优先数,一旦有紧急事件发生时,触发报警进程就绪,进程调度就让这个报警进程抢占处理器进行紧急处理和发出警告信号。

第2题:

进程调度可采用非抢占方式和抢占方式,对抢占方式,抢占的原则有( )。

Ⅰ.时间片原则

Ⅱ.优先权原则

Ⅲ.短作业优先原则

Ⅳ.FIFO原则

A.Ⅰ和Ⅱ

B.Ⅰ、Ⅱ和Ⅲ

C.Ⅰ、Ⅱ和Ⅳ

D.全都是


正确答案:B
解析:对抢占式调度算法,其抢占的原则可以根据系统需要设计,FIFO是一种公平的算法,不考虑作业的优先级,而是根据进程到达的时间来提供服务,直到作业完成。

第3题:

非可抢占式和抢占式进程调度的区别是什么?


正确答案:最高优先级调度算法原则上总是调度就绪队列中优先级最高的那个进程。非抢占式和抢占式进程调度都属于最高优先级进程调度。采用非抢占式最高优先级调度算法当就绪队列中某进程的最高优先级高于正在处理器中运行的进程的最高优先级时并不会让正在运行的进程退出处理器而是将高优先数的排在就绪队列的首部。而采用抢占式最高优先级进程调度算法则高优先数的进程会抢占处理器让正在处理的进程处于就绪队列。
最高优先级调度算法原则上总是调度就绪队列中优先级最高的那个进程。非抢占式和抢占式进程调度都属于最高优先级进程调度。采用非抢占式最高优先级调度算法,当就绪队列中某进程的最高优先级高于正在处理器中运行的进程的最高优先级时,并不会让正在运行的进程退出处理器,而是将高优先数的排在就绪队列的首部。而采用抢占式最高优先级进程调度算法,则高优先数的进程会抢占处理器,让正在处理的进程处于就绪队列。

第4题:

Linux下,发生用户抢占的原因是()和()


正确答案:从系统调用返回用户空间;从中断处理程序返回到用户空间

第5题:

简单对比嵌入式实时操作系统中的抢占式调度和非抢占式调度


正确答案:(1)抢占式调度:优点是实时性好、反应快,调度算法相对简单,可优先保证高优先级任务的时间约束,缺点是上下文切换多;
(2)非抢占式调度:优点是上下文切换少,缺点是一般情况下,处理器有效资源利用率低,可调度性不好;
(3)通用内核:<1>调度策略:优先级调度、时间片轮转调度<2>调度方式:抢占式、不可抢占式、选择可抢占式<3>时间片:定长时间片与变长时间片;
(4)商业上销售的实时内核都是抢占式内核。

第6题:

在实时操作系统中最常采用的进程调度算法是

A.不可抢占的优先级调度算法

B.可抢占的优先取级调度算法

C.先来先服务调度算法

D.时间片轮转调度算法


正确答案:B
解析:实时操作系统是指系统能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件的处理。实时操作系统的特点决定了它最常采用的进程调度算法是可抢占的优先级调度算法。

第7题:

在抢占调度方式中,抢占的原则是什么?


答案:抢占的原则有:时间片原则、优先权原则、短作业优先权原则等。

第8题:

在一个使用抢占式调度的操作系统中,下列说法正确的是( )。

A 如果一个系统采用时间片轮转调度,那么它的调度是抢占式的

B 实时系统中常采用抢占式的调度算法

C 在抢占式调度的操作系统中,进程的执行时间是可以预测的

D 以上都不对


参考答案A

第9题:

Linux的模块化设计,抢占式内核带有微内核的影子。( )


正确答案:正确

第10题:

简述Linux的VFS机制及其特点?


正确答案: VFS是一种抽象的文件机制,内核中对文件系统的相关操作系统实际上都通过操作VFS实现,也就是说VFS是对各具体文件系统的抽象。VFS使得内核其他部分无须关心不同文件系统之间的差异,使得Linux可以支持多种类型的文件系统。当然,因为增加了抽象层,会有类型转换的开销。