- 1、本文档共135页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 进程的描述与控制 为了描述程序在并发执行时对系统资源的共享,需要一个描述程序执行时动态特征的概念,这就是进程。 1)顺序执行 特征: 间断性:表现为“走走停停”,一个程序可能走到中途停下来,失去原有的时序关系; 失去封闭性:共享资源,受其它程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。 失去可再现性:失去封闭性 -失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征。 2.2.1 进程的定义与特征 进程这个概念是为了描述系统中各并发活动而引入的。为了满足成千上万个用户的要求,现代操作系统正是围绕进程这个概念建造的。最早使用进程(process)概念进行操作系统设计的是美国的麻省理工学院在MULTICS系统和IBM公司的CTSS/360系统上实现的。只是IBM/360使用了另一个术语——任务(task),但两者的实际含义是相同的。 1. 进程的含义 一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。 3. 进程与程序的区别 1)??进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。 2)?进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。 3)??进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。 4)?进程与程序的对应关系:通过多次执行,一个程序可对应多个进程。 2.2.2 进程的基本状态 2.2.2 进程的基本状态 2.2.2 进程的基本状态 3、引入挂起状态 2.2.4进程控制块(PCB, process control block) 1. 作用 记录系统管理进程全部信息。 一般常驻于内存,由OS维护。 每个进程都有唯一的一个PCB。 不能由应用程序自身的代码来直接访问。 2.3 进程控制 2.3.1操作系统内核 2.3.2 进程的创建(Creation of Process) 2.3.3 进程的终止 1.?????? 引起终止的事件 正常结束 异常结束 越界错误 保护错 特权指令错 非法指令错 运行超时 等待超时 算数运算错 I/O故障 外界干预 操作员或系统干预 父进程请求 父进程终止 2、? 进程终止时应做的工作 终止所有子进程 回收资源 若本身是运行的,通知调度程序进行CPU的调度 2.3.3 进程的阻塞和唤醒 1.引起阻塞的事件: 所需资源得不到满足(如申请内存暂时无法满足) 启动输入/输出后 同步关系在等待其它进程的消息 无事可做 目的:为了改善资源的利用率和提高系统的吞吐量,引入了进程,但同时失去了程序的封闭性及可再现性。本章讨论OS保证并发程序的封闭性和可再现性的机制及策略。 2.3.1 进程同步的基本概念 由于多进程在操作系统中的并发执行,诸进程之间存在相互制约的关系,表现为: 1)间接相互制约关系(进程互斥):由于共享资源所要求的排它性,进程间要相互竞争,以获得这些资源的使用权。 2)直接相互制约关系(进程同步):多个进程中发生的事件存在某种时序关系,必须协同工作、相互配合,以共同完成一项任务。 在多进程系统中,可以把进程的相互制约关系按感知程度分成下标所列的三种类型: 2.临界资源 必须互斥使用的资源。 可以是硬件,也可以是软件(如外设、共享代码段、共享数据结构),多个进程在对其进行访问时(主要指进行写入或修改),必须互斥地进行。(有些共享资源可以同时访问,如只读数据。) 例:共享变量的修改冲突 例:共享变量的修改冲突 例:共享变量的修改冲突 例:共享变量的修改冲突 例:共享变量的修改冲突 例:共享变量的修改冲突 例:共享变量的修改冲突 例:共享变量的修改冲突 例:共享变量的修改冲突 例:共享变量的修改冲突 例:共享变量的修改冲突 3.临界区 1.???? 临界区(段)的定义: 临界区(critical section):在每个进程中,访问临界资源的一段代码。 互斥处理: 进入区(entry section):在进入临界区之前,加检查可否进入临界区的一段代码。如果可以进入临界区,设置“正在访问临界区”标志后进入。 退出区(exit section):将“正在访问临界区”标志清除。 剩余区(remainder section):代码中的其余部分。 4.同步机制应遵循的准则: 空闲则入:其它进程均不处于临界区,则进入; 忙则等待:已有进程处于其临界区,则等待; 有限等待:等待进入临界区的进程不能“死等”; 让权等待:不能进入临界区的进程,应释放CP
文档评论(0)