Chinaunix首页 | 论坛 | 博客
  • 博客访问: 318683
  • 博文数量: 45
  • 博客积分: 2079
  • 博客等级: 上尉
  • 技术积分: 464
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-03 16:57
文章分类

全部博文(45)

文章存档

2015年(1)

2013年(1)

2012年(9)

2011年(2)

2010年(32)

分类:

2010-05-26 17:54:36

    今天这篇日志起源于这篇文章:《Linux 系统内核空间与用户空间通信的实现与分析》,http://www.ibm.com/developerworks/cn/linux/l-netlink/index.html
文中有如下描述:

在一台运行 Linux 的计算机中,CPU 在任何时候只会有如下四种状态:

【1】 在处理一个硬中断。

【2】 在处理一个软中断,如 softirq、tasklet 和 bh。

【3】 运行于内核态,但有进程上下文,即与一个进程相关。

【4】 运行一个用户态进程。

其中,【1】、【2】和【3】是运行于内核空间的,而【4】是在用户空间。其中除了【4】,其他状态只可以被在其之上的状态抢占。比如,软中断只可以被硬中断抢占。

Linux 内核模块是一段可以动态在内核装载和卸载的代码,装载进内核的代码便立即在内核中工作起来。Linux 内核代码的运行环境有三种:用户上下文环境、硬中断环境和软中断环境。


    这里又看到“用户上下文环境”,联想起兄的一篇日志《Know which context you are in》,,谈一下自己的理解:

Linux 内核代码的运行环境有三种:进程上下文、硬中断环境和软中断环境。

进程上下文是由它的用户级上下文(user-level-context)、寄存器上下文(register context)以及系统级上下文(system-level-context)组成。(摘自Unix操作系统设计6.3节)

所谓用户上下文应为用户级上下文,是进程上下文的一部分,在很多地方都用的比较模糊,像今天看到的这篇文章中“用户上下文”其实指的就是“进程上下文”。

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

安何2010-05-27 09:13:30