中断上下文和进程上下文

上下文指的就是 在调度的切换过程就叫 上下文。(这个过程需要保存当前 的一些参数)

内核调度的切换就叫中断上下文,他的目的就是获得cpu的调度全,在这里没有进程的概念 整个内核就一个init 进程(多cpu除外)

进程上下文 就是指用户进程之间的切换 过程中保存的一些 当前进程的运行参数。

下面有个问题: 

   1. 问什么中断上下文中不能有sleep

     首先中断实在内核态下的 所以理论上他是单进程的,若果你用sleep 那么其他的程序就无法得到cpu (中断禁止抢占) 这样就造成了cpu的浪费。

    其次 如果在中断中调用了sleep 那么由于中断是不允许抢占的所以在设计是就没有想进程那样有保存中断调度的描述 所以当你sleep(也和中断差不多 都是cpu的一个调度) 当sleep 完成后由于中断被swicth 出去了由于没有记录机制所以这个中断就无法 在返回执行了。

     再者由于由于中断工作在内核态 我们知道内核是一个进程 多有应用层进程公用的, 那摩如果你a 中断中有sleep 如果被b中断切换出去了 那么由于在同一个init 京城中 所以会导致b也可能sleep了这就导致了a b 的混乱,在这你怎么唤醒a的sleep呢。

 

所以有种种原因linux 在设计是就要求中断中不能有 sleep。  如果有kernel就无从实施。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值