Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1767269
  • 博文数量: 306
  • 博客积分: 3133
  • 博客等级: 中校
  • 技术积分: 3932
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-19 16:50
文章分类

全部博文(306)

文章存档

2018年(7)

2017年(18)

2016年(39)

2015年(35)

2014年(52)

2013年(39)

2012年(22)

2011年(29)

2010年(53)

2009年(12)

分类: LINUX

2010-05-19 09:52:15

   内核模式代码无限制的访问所有处理器指令集、全部内存和I/O空间,如果用户模式进程也想,则需要通过系统调用请求内核代码。用户模式代码允许page fault,内核模式代码不允许。

      在2.4及先前的内核中,仅有用户模式进程允许上下文切换,并被其他进程替代,而内核模式代码则垄断CPU直到它自身自动放弃CPU或有中断或异常发生。 在2.6引入了内核抢占后,大多数内核模式代码也可以上下文切换了。

      内核代码服务于系统调用运行于所代表用户进程的进程上下文,而中断服务程序则运行于中断上下文。进程上下文和中断上下文互相不联系。

      运行于进程上下文的内核代码可被抢占,而运行于中断上下文的不可被抢占,一直运行到结束。因此在中断上下文中不能做以下的事情:

      (1)睡眠或放弃处理器;(2)请求一个mutex;(3)执行耗时的任务;(4)访问用户空间虚拟内存

阅读(1678) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~