2.3.7

2.3.7 专题:可抢先,不可抢先,完全可抢先

  • 可抢先是指当前进程在其时间片未用完时就可被更高优先级的进程抢用CPU(自己则进入就绪态)。
  • 不可抢先是指除非自愿或者时间片到,当前进程不可以被更高由县级的进程抢用CPU。
    可抢先的程度越高,对实时要求满足的就越好。实时操作系统经常要求完全可抢先。

完全可抢先是指在任何时间,不管当前进程处于用户态还是核心态,都可以随机被更高优先级的进程抢用CPU。抢用通常是在中断处理时发生的(但中断处理并不一定发生抢用,也不一定导致进程切换)。它的实现难点在于核心态中,有大量同步和互斥因素需要考虑,操作系统核心代码经常需要屏蔽中断,因此很难做到完全可抢先。

按照是否完全可抢先及其程度,所有多任务操作系统可分为以下四类:(不说的就是可抢先)
(1)完全不可抢先或用户态不可抢先:用户无论在用户态还是核心态都不可以被抢用CPU ,这种操作系统称为不可抢先式操作系统(windows95或windows98)。进程从运行态退出只能是自愿的(例如要等待某个i/o事件完成而退出运行态,可能有中断处理,但不能强迫当前进程从运行态进入就绪态。
问题:这样可能会出现某个进程长期独占CPU的情况
(2)内核完全不可抢先: 在用户态时可随机被抢用CPU,在核心态时完全不可以被抢用CPU(传统UNIX,windows。这些操作系统的内核代码执行时,除非当前进程自愿或者时间片到,否则不会调用调度程序。
这些操作系统通常在系统调用或者中断时屏蔽中断,系统返回或者中断返回时开放中断。即一旦从用户态进入核心态,就屏蔽所有或者大部分中断;从核心态回到用户态时则开放所有或者大部分中断。
(3)内核的部分可抢先: 在用户态时可随机被抢用CPU,核心态时大部分时间不可被抢用CPU,只在某些时刻点时可以被抢用。这些时刻点称为可抢先点
可抢先点是指内核中的这样一些位置,内核的数据结构处在一个稳定的状态,并且内核马上就要开始长时间的,大量的计算。每次到这个点时,内核检查是否有实时进程就绪要运行,若有则抢用CPU,这可以从一定程度上满足实时要求,但不能彻底解决问题。
(4)完全可抢先或内核完全可抢先:无论当前进程处于核心态或者用户态,都可以随机被更高优先级的进程抢用CPU。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值