1 / 2
文档名称:

什么是进程上下文.pdf

格式:pdf   大小:113KB   页数:2页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

什么是进程上下文.pdf

上传人:小s 2022/7/13 文件大小:113 KB

下载得到文件列表

什么是进程上下文.pdf

相关文档

文档介绍

文档介绍:进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系
统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。
造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅
层次的理论层面上,进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系
统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。
造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅
层次的理论层面上,没有深入去研究。
处理器总处于以下状态中的一种:
1、内核态,运行于进程上下文,内核代表进程运行于内核空间;
2、内核态,运行于中断上下文,内核代表硬件运行于内核空间;
3、用户态,运行于用户空间。
用户空间的应用程序,通过系统调用,进入内核空间。这个时候用户空间的进程
要传递很多变量、参数的值给内核,内核态运行的时候也要保存用户进程的一些
寄存器值、变量等。所谓的“进程上下文”,可以看作是用户进程传递给内核的这
些参数以及内核要保存的那一整套的变量和寄存器值和当时的环境等。
硬件通过触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,
硬件的一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。所谓
的“中断上下文”,其实也可以看作就是硬件传递过来的这些参数和内核需要保存
的一些其他环境(主要是当前被打断执行的进程环境) 。

关于进程上下文 LINUX 完全注释中的一段话:
当一个进程在执行时,CPU 的所有寄存器中的值、进程的状态以及堆栈中的
内容被称为该进程的上下文。当内核需要切换到另一个进程时,它需要保存当前
进程的所有状态,即保存当前进程的上下文,以便在再次执行该进程时,能够必
得到切换时的状态执行下去。在 LINUX 中,当前进程上下文均保存在进程的任
务数据结构中。在发生中断时,内核就在被中断进程的上下文中,在内核态下执
行中断服务例程。但同时会保留所有需要用到的资源,以便中断服务结束时能恢
复被中断进程的执行。

内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空
间,而应用程序运行在用户空间。现代的 CPU 都具有不同的操作模式,代表不
同的级别,不同的级别具有不同的功能,在较低的级别中将禁止某些操作。Linux
系统设计时利用了这种硬件特性,使用了两个级别,最高级别和最低级别,内核
运行在最高级别(内核态),这个级别可以进行所有操作,而应用程序运行在较
低级别(用户态),在这个级别,处理器控制着对硬件的直接访问以及对内存的
非授权访问。内核态和用户态有自己的内存映射,即自己的地址空间。
正是有了不同运行状态的划分,才有了上下文的概念。用户空间的应用程
序,如果想要请求系统服务,比如操作一个物理设备,或者映射一段设备空间的
地址到用户空间,就必须通过系统调用来(操作系统提供给用户空间的接口函数)
实现。如下图所示: