您的位置:首页 > 运维架构

操作系统三个简单的部分(Operating Systems in Three Easy Pieces)4.1

2016-03-13 21:14 543 查看
4.1抽象化:进程

操作系统对一个正在运行的程序的抽象化,我们称之为进程。根据我们前面所说,一个进程简单说来就是一个运行中的程序;我们可以通过盘点程序在运行中的任意时刻对操作系统的不同部分的访问和造成的影响来概括进程。

想要了解进程是由什么构成,我们需要知道它的机器状态:一个程序运行的时候可以读取或者修改什么。在任何给定的时间,机器的哪些部分对于程序的执行来说很重要?

构成进程的一个很明显的机器状态的组件就是内存。程序指令就存放在内存中;运行状态中的程序读取和写入的数据也存放在内存中。所以内存的程序可用地址(称之为地址空间)就是进程的一部分。

机器状态中的寄存器也是构成进程的一部分。很多指令明确的读取或者更新寄存器,因而对于进程的执行来说他们很重要。

要知道,还有一些尤其特殊的寄存器也是机器状态的组成部分。比如,程序计数器(PC)(有时称之为指令集活着IP)可以告诉我们程序正在运行什么指令;同样地,一个堆栈指针和关联的帧指针被用来管理函数参数、局部变量喝返回地址的堆栈。

 

Tips:分离策略和机制

在很多操作系统中,一个常见的范例就是将高级的策略从他们的低级机制中分离出来。你可以想象一下这些机制是系统中用于解决问题的答案。比如,操作系统如何进行上下文切换?策略就给特定的问题提供了答案。比如,操作系统此刻应该启动哪个进程?将两者分离使得一方可以简单的选择策略而不需要重新考虑机制。这是模块化的一种形式,一种通用软件的设计原则。

 

最后,程序也经常访问永久存储设备。比如进程中已经打开的I/O信息就可能存在于文件列表中。

下一节:4.2进程API

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: