“用户上下文”和“进程上下文”

4203阅读 1评论2010-05-26 zboom
分类:

    今天这篇日志起源于这篇文章:《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节)

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

上一篇:openssl with I/O multiplex(select)
下一篇:关于集市和大教堂的问题

文章评论