操作系统进程模型.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统进程模型

操作系统进程模型 进程的相关概念 进程是一个程序的一次执行,这是一个动态的过程,一个进程包括了程序计数器、寄存器和变量的当前值。在多道程序中有多个进程同时在运行,从概念上他们有各自的CPU,实际上是一个CPU在各个进程之间快速地切换。每个进程靠自己独有的程序计数器来控制自己的程序执行流程,实际的物理程序计数器只有一个,当某个进程获得物理CPU时它的逻辑程序计数器就被装入实际的程序计数器中。 进程有其从创建到销毁的生命周期。进程存在的意义就是完成一定的任务,通常将进程分为前台进程和后台进程。前台进程负责与用户交互,如用户可以终端上输入命令启动程序;后台进程不与特定的用户关联,负责处理一些专用的事件,比如监听网络端口的请求,后台进程又称为守护进程。进程完成它的工作后就自动退出,释放占用的系统资源。进程并不是在所有情况下都“自愿”退出的,它可能是由另外的进程杀死的,也可能是因为执行期间发生了严重错误被系统强制终止的。有些进程是被操作系统生成的,有些进程是由其他进程创建的(即父进程创建子进程)。在Minix和Linux系统中第一个用户进程--init进程是由操作系统创建的,此后的所有进程都是init进程的子进程或孙进程。进程之间形成一种树状的层次结构。 虽然每个进程都是一个独立的实体,有它自己的程序计数器、堆栈、打开的文件、定时器和内部状态,但进程之间还要进行交互、通信以及其他同步操作。由于进程之间要相互依赖,同步执行,这就决定了进程从创建开始是很难一口气执行到底的,进程调度也要求进程中执行期间必须有间歇。大体上我们把进程的状态分为三种:运行态、就绪态和阻塞态。进程处于运行态是指它正在占用CPU。从运行态转入就绪态仅仅是因为处理机的调度策略使把正在执行的进程换出CPU,转而去执行其他进程,当调度策略又转回来时,处于就绪态的进程就可以立刻执行。从运行态转入阻塞态就由于进程缺少某种必须的资源,如程序要执行必须是等待用户参数的输入,当阻塞的进程获得这种资源后就转入就绪态,只要调度策略允许它随时可以执行。 就像刚刚提到的那样,就绪队列中有多个进程时它们都可以马上运行,那么到底运行哪个呢?这是由调度器来决定的。最简单最直观的调度算法是维持一个单一的就绪队列,谁先到达队列中谁先执行。在实际的系统中往往给进程分配一定的优先级,优先级高的进程虽然后到达就绪队列,但由于它要执行的事情紧急调度器可以让它先执行。系统中优先级数目是有限制的,我们只能把若干个进程统一规为一种优先级,在同一个优先级内部采用先到先运行的法则。为避免那些优先级别低的进程长时间等待甚至是“饿死”,操作系统还采用一定的策略来逐步降低执行频率高的进程的优先级。 在操作系统中协作的进程间要对某块公共存储区进行读写,这个公共存储区可能在主存中(比如是一个内核数据结构),也可能是一个共享文件。由于进程何时运行何时休眠,基于什么时候产生、什么时候终止都是无法预知的,那么不了的进程对同一存储区的读写顺序也是无法预知的,因此我们要有一种机制来实现进程间的同步。我们把不同进程共享的内存区称为临界区,当一个进程进入临界区后,其他进程必须在外面等待,同时还要选择一种策略使在临界区外面等的进程不能无限期的等下去,即要公平地为进程分配进入临界区的机会和时间。 Minix进程模型 系统结构 Minix系统整体采用四层结构,如下图所示: 图1. Minix四层结构 内核负责进程的调度,并负责进程在运行态、就绪态和阻塞态之间切换。内核还负责进程间所有的通信消息,消息需要核实目标的合法性,定位内存中发送和接收的缓存区,并把消息从发送缓存复制到接收缓存。内核的另一部分是支持对I/O端口和中断的访问。 内核以上的其他三层统称为用户层,内核对这三层同等对待。它们都不直接对I/O进行操作,也不能访问分配给他们以外的内存。第2层设备驱动程序层可以请求系统任务任代表它们从I/O端口读数据或向I/O端口写入数据。 第3层上是服务器进程,即向用户进程提供有用的服务。有两个服务必不可少:进程管理器和文件系统。进程管理器执行所有涉及启动或终止进程的Minix系统调用,如fork,exec,wait等,并负责执行与信号有关的系统调用,如alarm,kill。进程管理器还负责内存管理,如brk系统调用。文件系统负责执行文件的系统调用,如read,mount,chdir等。再生服务器启动或重启那些不与内核一起加载到内存中的设备驱动程序。如果驱动程序在操作中失败,再生服务器检测到这一失败,并杀死这个驱动程序(如果它还没有死),重启这个驱动程序的一个新副本,从而提高操作系统的容错能力。 第2层和第3层内的设备驱动程序和服务器统称为系统进程,它是操作系统的一部分,不属于某一特定用户,并且大部分在第一个用户登录前启动。 第4层是所有的用户进程,如sh

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档