ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:107.50KB ,
资源ID:3040869      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3040869.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机操作系统考研讲义(6).doc)为本站会员(tangtianxu1)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

计算机操作系统考研讲义(6).doc

1、更多免费资料下载请进:http:/ 中国最大的免费课件资料库第 6 章 进程及处理机管理现代操作系统的重要特点是程序的并发执行,及系统所拥有的资源被共享和系统用户随机地使用系统。采用一个什么样的概念,来描述计算机程序的执行过程和作为资源分配的基本单位才能充分反映操作系统的执行并发、资源共享及用户随机的特点呢?这个概念就是进程。61 概述611 操作系统核心的功能和特点1 进程与操作系统的关系:五大功能之一(1) 高级(宏)处理机管理即作业调度,确定系统中哪些作业将获得 CPU;(2) 低级(微)处理机管理即进程调度,确定系统中哪个作业中的哪个进程将获得 CPU。2 什么是进程?(1) 进程的定

2、义进程是一个具有一定功能的程序关于某个数据集合的一次运行活动。 进程是操作系统动态执行的基本单元,在传统的操作系统设计中,进程既是基本的分配单元,也是基本的执行单元。(2)进程划分的原则进程大小的“分割”设计,因不同的操作系统设计者而异。进程分得太大,极端情况就变成顺序执行的计算机,也就失去了并发性,也就降低了系统资源;但另一极端,进程分得太小,CPU 为多个用户或一个用户的多个任务服务时,开销急剧增大。因为,在进程间的时空转换及工作量将大大增加。3操作系统核心功能(1)调度进程,决定哪个进程运行、挂起、交换等;(2)分配内存,哪个进程得到内存;(3)管理和控制文件系统;检查“许可证”、修改目

3、录、路径等;(4)处理系统调用:由用户的进程发“请求”,系统根据资源的充分利用,统筹安排;(5) 处理输入输出的请求和工作。总之,操作系统的五大功能都必须由核心负责协调工作。4 操作系统核心的形式(1) 常驻内存:计算机启动后,操作系统核心常驻在内存(2) 操作系统核心是一组服务功能程序的集合,它由许多可执行的工作模块装配而成。操作系统中大量使用表格数据结构。通过大量内部表格内容的组合并发协调执行,大量工作是查表、修改和维护表格;更多免费资料下载请进:http:/ 中国最大的免费课件资料库(3) 操作系统设计有两种观点,即用户观点和资源观点。工作时有两大类表格:系统态和用户态。一类面对用户的“

4、订单”,另一类由系统内部管理分工决定。612 为什么要引进进程概念引入进程的概念,关键是共享资源引起的。在顺序执行模块的程序中,有如下特点:(1) 封闭性(closure property);(2) 可再现性(re-appearable);(3) 调试容易;(4) 设备利用率不高。613 顺序执行与并发执行引入进程的关键是资源共享,而从资源的观点看,有效管理共享资源是计算机操作系统的最重要内容。顺序执行与并发执行见表 6-1。顺序执行 并发(共行)执行程序顺序执行程序具有封闭性独享资源具有可再现性间断执行,多个程序各自在“走走停停”中进行程序失去封闭性共享资源失去可再现性有直接和间接的相互制约

5、表 6-1 顺序执行与并发执行比较62 进程的定义和特征在任务执行过程中切割成独立的单元涉及到进程(process)的组成内容、任务激活(active)以及线程(thread)。线程是近年来由进程发展而来,一般定义为程序执行中单个顺序的流控制,比进程优越之处是执行中占有相同的内存空间。621 程序与进程1程序与进程的对比程序与进程的对比见表 6-2程 序 进 程静态的指令序列描述永久性软件资源工作时一个程序可以由多个进程在工作操作系统管理下,经用户态由系统态系统调用执行动态的程序执行过程动态生存的暂存性资源一个进程在工作至少对应有一个程序由操作系统核心在内部进行分配调度更多免费资料下载请进:h

6、ttp:/ 中国最大的免费课件资料库表 6-2 程序与进程的对比表2程序与进程的类比程 序 进 程唱歌的曲谱或音乐乐器的乐谱 演出或演奏剧本 演出菜谱 烹调表 6-3 程序与进程的类比622 进程的五个基本特征(1) 动态性进程是程序在并发系统的一次执行,一个进程有一个从产生到消失的生命期;(2) 并发性正是为了描述程序在并发系统内执行的动态特征才引入了进程,没有并发就没有进程;(3) 独立性每个进程的程序都是相对独立的顺序程序,可以按自己的方向和速度独立地向前推进;(4) 制约性进程之间的相互制约,主要表现在互斥地使用资源和相关进程之间必要的同步和通讯;(5) 结构性进程=PCB(进程控制块

7、)+程序+数据集合。623 进程与线程1线程的定义简单地讲,进程就是程序的一次执行过程。而线程是由进程派生出来的一组代码(指令组)的执行过程。2线程的特点线程是由进程派生出来的,一个进程可以产生多个线程,线程的特点是共享进程的内存空间,它们可以并发、异步地执行。3 采用线程的优点(1) 使同一个程序能有几个并发执行的路径,提高了执行速度; (2) 线程需要的开销比进程小。4Windows 的多任务调度(1)Windows 3.x 采用协作式多任务在 Windows 3.x 中,实行协作式的多任务方式,多个应用程序之间必须相互协调,依次实现操作系统的管理和控制。它并不是真正的多任务执行,更多免费

8、资料下载请进:http:/ 中国最大的免费课件资料库为了让操作系统把控制权从一个程序转移到另一个程序,当前活动的程序就必须周期地检查一个消息队列。如果一个程序不能检查消息队列,操作系统就不能实现控制权的转移。(2)Windows 9x 采用抢先式多任务(a) 操作系统可以在需要时中断当前任务,再按照任务队列中各个任务的优先级来进行多任务的调度。为兼容起见,基于 Windows 的 16 位(Win16)应用程序仍采用协作式;来完成多任务的执行。(b) 在 Windows 9x 中,抢先式多任务的执行实际上就是抢先式多线程的实现。每个线程有一个优先值,范围从 0 到 31,数字越大,则优先级越低

9、。(3) 在抢先式多任务中,基于 Win32 的应用程序不必让位给其它程序就能以友好的方式实现多任务。操作系统会根据系统的需要把控制权交给 个运行中的任务,或从 个运行中的任务移走控制权。(4) 在 Windows 9x 中,此种调度方式可能是系统不能稳定运行的原因之一。63 进程调度631 进程的描述1多道程序并发执行的特点(1)资源分配的动态性多道程序在运行中可以提出分配资源的请求,操作系统酌情满足它,这就带来了资源分配的动态性。(2)程序执行的间断性在多道程序系统中,多个程序共享一个或多个 CPU,一个程序在运行一段时间后便要让位给另一程序运行。因此,每个程序的运行都是处于“走走停停”的

10、状态,这就是程序执行的间断性。(3)程序间的通讯如果多个程序之间有一种合作关系,例如共同求解一个题目,则它们在运行过程中就有可能互相传递数据,这就是程序间的通讯。(4)程序间的同步和互斥有合作关系的程序不仅要互相通讯,而且可能要调整它们之间的相对速度,比如一个程序必须等待另一个程序的结果才能继续运行。这就是程序间的同步。而由于多道程序系统中的资源共享,程序段之间对共享资源的竞争而导致了程序段之间的互斥。2进程的引入和构成(1) 进程的引进上面所列的多道系统中的程序运行的新特点,程序本身是无法描述的,为此,当一个程序在并发系统中执行时,需引进一个新的数据结构来记录和描述这些特征。这样,新引进的数

11、据结构与它所描述的程序便形成了一个有机体。这个有机体就称为进程。更多免费资料下载请进:http:/ 中国最大的免费课件资料库(2)进程的构成进程=PCB+程序+数据其中,PCB(process control block)为记录程序在并发系统中执行时的动态特性的数据结构。3程序和进程的形象比较(1) 两个施工队按同一图纸在两个不同的地方建房,这是两个不同的进程;(2) 同一施工队按同一图纸在不同时间多次建房,这是多个进程。由此可见,进程是一个与具体的时间和空间有关的动态概念。4进程的定义和特征到目前为止,进程有多种定义,如:(1) 进程是程序的执行;(2) 并行程序称为进程;(3) 进程是可以

12、和别的计算并发的计算;(4) 进程是一个数据结构及在其上进行操作的程序。这些定义都从不同的侧面描述了进程的特征,都一定的道理,但我们认为下面的定义更全面和更准确:进程是程序在一个数据集合上运行的过程,它是传统操作系统进行资源分配和调度的一个独立单位。此定义包含有如下的含义:(1) 进程是一个动态的概念,而程序是一个静态的概念;(2) 进程包含了一个数据集合和运行其上的程序;(3) 同一程序运行于若干不同的数据集合上时,它将属于若干个不同的进程,或者说,两个不同的进程可包含相同的程序;(4) 系统分配资源是以进程为单位的,所以只有进程才可能在不同的时刻处于几种不同的状态,即等待、就绪、运行。(5

13、) 从微观上看,进程是轮换地占有处理机而运行的,从宏观上看,进程是并发地运行的。632 进程的状态及转换1进程的状态一般来说,一个进程在它的生命周期有三种基本状态,分别为就绪(ready)、执行(execute)和等待(waiting)。一个进程在刚创建初期处于“进入”状态,在运行终止后处于“完成”状态。(1) 就绪进程具备运行条件,但尚未占用 CPU;(2) 执行进程正在占用 CPU;(3) 等待进程由于等待 某一事件不能享用 CPU。更多免费资料下载请进:http:/ 中国最大的免费课件资料库进程的三种基本状态及关系如图 6-1资源释放 资源缺乏 开始 时间片到 完成进程调度选中 图 6-

14、1 进程的三个基本状态示意图2引起进程状态转换的原因(1) CPU 调度(低级调度): CPU 调度按某种原则从就绪队列中调度一个进程到 CPU 上运行,该进程就从就绪状态变为运行状态;与此同时,原运行进程从运行状态变为就绪状态。因此,这两种状态变化是同时发生的。(2)进程在运行过程中需要等待某一事件,例如,等待分配某一资源,等待 I/O 操作完成等。一个进程在需要等待某一事件时主动退出 CPU,并使自己处于阻塞状态,引起状态变化。(3)如果进程所等待的事件发生了变化,例如,一次 I/O 完成了,于是进程便被解除阻塞状态,变为就绪状态。(4) 一个具体的进程在任何一个指定的时刻必须而且只能处于

15、一种状态。3进程状态转换的说明(1) 进程之间的状态转换并非都是可逆的进程既不能从等待变为运行,也不能从就绪变为等待。(2)进程之间的状态转换并非都是主动的,在很多情况下都是“它动的”事实上,只有运行到等待的转换是进程的主动行为(主动调用调度管理程序),其它都是它动的,例如,从执行到就绪,通常是时钟中断引起的,从等待到就绪,是一个进程把另一个进程唤醒。633 进程控制1、进程控制的任务进程控制的任务就是系统使用一些具有特定功能的程序段来创建、撤消进程及完成进程各状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。2、原语一般,我们把系统态下执行的某些具有特定功能的程序段成为原

16、语,原语可是机器指令级的扩充,其特点是执行期间不允许中断、它是一个不可分等待就绪 执行更多免费资料下载请进:http:/ 中国最大的免费课件资料库割的基本单位。它们都在系统态下执行,且都是为了完成某个系统管理所需要的功能和被高层软件调用。在操作系统中,一般都把进程控制用的程序段做成原语,用于进程控制的原语有:创建原语、撤消原语、阻塞原语、唤醒原语等。3、进程的创建与撤消(1) 进程的创建进程创建的方式有两种:(a)由系统程序模块统一创建。例如在批处理系统中,由操作系统的作业调度程序为用户进程创建相应的进程以完成用户作业所要求的功能。(b)由父进程创建。例如在 UNIX 操作系统中,父进程创建子

17、进程以完成并行工作。(c)创建原语的流程图如图 6-a(2) 进程撤消(a)进程撤消的原因1)该进程已完成所要求的功能而正常终止。2)由于某种错误导致非正常终止。3)祖先进程要求撤消某个子进程。(b)撤消原语的流程如图 6-b4、进程的阻塞与唤醒(1) 进程的阻塞阻塞原语在一个进程期待某一事件发生但发生条件尚不具备时,被该进程自己调用来阻塞自己。阻塞原语在阻塞一个进程时,由于该进程正处于执行状态,故应先中断出路机和保存该进程的处理机现场,然后被阻塞进程置阻塞状态后插入等待队列中,再转进程调度程序选择新的就绪进程投入运行。阻塞原语的流程如图 6-c(2) 进程的唤醒(a)进程唤醒的两种方法1)由

18、系统进程唤醒系统统一控制事件的发生并将“事件发生”这一消息通知等待进程。2)由事件发生进程唤醒在这种情况下,事件发生进程和唤醒进程之间是合作关系。(b)唤醒原语的流程如图 6-d更多免费资料下载请进:http:/ 中国最大的免费课件资料库634 进程的调度算法举例1先来先服务(first come first service, FCFS)将用户作业和就绪进程按提交顺序转变为就绪状态的先后排成队列,并按照先来先服务的方式进行调度处理,是一种最简单的方法。在没有特殊理由要优先调度某类作业或进程时,从处理的角度看,FCFS 方式是一种最合适的方法,因为无论是追加还是取出一个队列元素在操作上都是最简单

19、的。该算法的优点是实现简单,缺点是对那些执行时间较短的进程来说,将等待较长的时间,从而降低 CPU 的利用率。在实际操作系统中,FCFS 算法常常和其它的算法配合起来使用,例如,基于优先级的调度算法就是对具有同样优先级的进程采用 FCFS 算法。2轮转法(round robin ,RR)轮转法的基本思路是让每个进程在就绪队列中的等待时间与享受服务的时间成比例。轮转法的基本概念是将 CPU 的处理时间分成固定大小的时间片,例如,几十毫秒到击败毫秒。如果一个进程在被调度选中之后用完了系统规定的时间片,但又未完成要求的任务,则它自行释放自己所占有的 CPU而排到就绪队列的末尾,等待下一次调度。同时,

20、进程调度程序又去调度当前就绪队列中的第一个进程。显然,轮转法只能用来调度分配那些可以抢占的资源。这可以抢占的资源可以随时剥夺,而且可以将它们再分配给别的进程。CPU 是可抢占的资源的一种。但打印机等是不可抢占的资源。另外,时间片长度的选择是根据系统对响应时间的要求和就绪队列中所允许的最大进程数确定的。3多级反馈轮转法(round robin with multiple feedback)(1) 在轮转法中,加入到就绪队列的进程有三种情况:(a) 分给它的时间片用完,但进程还未完成,回到就绪队列的末尾等待下次调度去继续执行;(b)分给该进程的时间片未用完,只是因为请求 I/O 或由于进程的互斥与

21、同步关系而被阻塞,当阻塞解除之后再回到就绪队列;(c) 新创建进程进入就绪队列。(2) 如果对这些进程区别对待,给予不同的优先级和时间片,可提高系统资源的利用率。例如,把就绪队列按照进程到达就绪队列的类型和进程被阻塞的原因分成不同的就绪队列,每个队列按 FCFS 原则排列,不同队列中的进程享有不同的优先级,这样,当一个进程在执行完它的时间片之后,或从睡眠中被唤醒以及被创建之后,将进入不同的就绪队列。更多免费资料下载请进:http:/ 中国最大的免费课件资料库(3) 多级反馈轮转法与优先级法在原理上的区别是:一个进程在它执行结束之前,可能需要反复多次通过反馈循环执行,而不是优先级中的一次执行。4

22、优先数法(priority)1.所谓优先数法是指系统或用户按某种原则为进程指定一个优先级来表示该作业或进程所享有的调度优先权。该算法的核心是确定进程的优先级。2.优先级的确定方法优先级的确定方法有两种,分别为动态法和静态法,(1) 静态法根据进程的静态特征,在进程开始之前就确定它们的优先级,一旦开始之后就不能改变。(2) 动态法把进程的静态特征和动态特征结合起来确定作业或进程的优先级,随着进程的执行过程,其优先级不断变化。3静态优先级的确定原则(1)作业调度中的优先级确定的原则(a)由用户自己根据作业的紧急程度输入一个适当的优先级;(b)由系统或操作员根据作业类型指定优先级;(c)系统根据作业

23、要求资源情况确定优先级。(2)进程调度中的优先级确定的原则(a)按进程的类型给予不同的优先级。一般地进程被分为系统进程和用户进程,对于用户进程和系统进程均可以再按照功能分为不同的类型并赋予不同的优先级。(b)将作业的优先级作为它所属进程的优先级。4静态优先级的优缺点基于静态优先级的调度算法的优点是实现简单,系统开销小;缺点是系统的效率底下,调度性能不高。5动态优先级的确定原则(1) 根据进程占有 CPU 的时间的长短来决定。(2) 根据就绪进程等待 CPU 的时间长短来决定。6动态优先级的优缺点优点是调度性能高,系统资源的利用率高,缺点是系统开销大。635 进程控制块1进程控制块(proces

24、s control block, PCB)是进程的重要组成部分,是操作系统能“感知”进程存在的唯一标志,它和进程是一一对应的,操作系统正是通过管理 PCB 来管理进程的。更多免费资料下载请进:http:/ 中国最大的免费课件资料库2PCB 的数据结构PCB 是记录型的数据结构,其作用主要是描述进程的动态特征。主要内容有:进程标识号系统内部用于标识进程的整数;进程状态指进程当前所处的状态(就绪、运行、等待);进程标志指是系统进程还是用户进程,程序实体是在内存还是在外存;进程优先数它是一个表示进程优先级的整数;程序地址指该进程的程序在内存或外存的地址;现场保留区在进程交换时保存其程序运行的 CPU

25、 现场;同步、互斥机构同步和互斥的信号量;通信结构它包含一些指针,这些指针指向相应的通信队列或通信信箱;家族联系包含指向父进程和子进程的指针;资源清单本进程当前已分得的资源。64 进程通信641 进程的同步与互斥1进程同步(1)进程同步的定义进程同步是进程间共同完成一项任务是直接发生相互作用的关系,也就是说,这些具有伙伴关系的进程在执行时间次序上必须遵循确定的规律。(2)进程同步的例子SPOOLing 系统中的输入功能可以由两个进程 A 和 B 完成,进程 A 负责从读卡机上把卡片上的信息读到一个缓冲区中,进程 B 负责把该缓冲区中的信息进行加工并写到外存输入井中。要实现两者的协同工作,两个进

26、程必须满足如下的制约关系:只有当缓冲区的内容取空时,进程 A 才能向其中写入新信息;只有当缓冲区写满时,进程 B 才能从中取出内容作进一步加工和转送工作。可见,在缓冲区内容区空时,今晨 B 不应该继续运行,需要等待进程 A 向其中送入新的信息;反之,当缓冲区中的信息尚未取走时,进程 A 应等待,防止把原有的信息冲掉,造成丢失信息的结果。进程 A 和进程 B 就是一种同步关系。2进程互斥(1) 进程互斥的定义更多免费资料下载请进:http:/ 中国最大的免费课件资料库一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行。进程的互斥是因为对同一物理资源的

27、竞争而产生的相互制约关系。(2) 进程互斥的例子两个进程使用一台打印机。3、同步与互斥特点比较同步与互斥的特点比较见表 6-4同 步 互 斥进程进程时间次序上受到某种限制相互清楚对方的存在及其作用,交换信息往往指有几个进程共同完成一个任务举例:生产与消费之间,发送与接受之间,作者与读者之间,供者与用者之间进程资源进程竞争到某一物理资源时不允许进程工作不一定清楚其它进程情况往往指多个任务多个进程间通讯制约举例:交通十字路口,单轨火车的拨道岔表 6-4 同步与互斥特点比较表642 临界资源和临界区我们包一次只允许一个进程使用的资源称为临界资源,而把在每个进程中访问临界资源的程序段称为临界区。要进入

28、临界区的若干个进程必须满足如下关系:(1) 一次只允许一个进程进入临界区。(2) 任何时候,处于临界区的进程不得多于一个。(3) 进入临界区的进程要在有限的时间内退出。(4) 如果不能进入自己的临界区,则应让出处理机资源。643 同步、互斥机制的实现及应用1、用锁操作原语实现互斥(1)实现为共享资源设置一把锁W=0 表示共享资源(分配表)可用;W=1 表示共享资源(分配表)不可用,已有一进程访问。用类 ALGOL 语言编程如下:加锁原语 LOCK(W)L: if W=0 then W:=1 else goto L:(说明:测试和设置指令;循环等待该资源释放)开锁原语 UNLOCK(W)W:=0

29、加锁/开锁原语工作流程如图 6-2N YW=0?更多免费资料下载请进:http:/ 中国最大的免费课件资料库图 6-2 加锁/ 开锁原语工作流程图(2)局限性只要有一个进程由于执行 LOCK(W)而进入临界区,则其它进程在检查锁状态时都将反复执行 LOCK(W)原语,从而导致处理机繁忙。现在一般采用硬件指令来解决互斥进入临界区问题。2、信号量及 P、V 操作原语P、V 操作是荷兰科学家 E.W.Dijkstra 在 1965 年提出的一种解决同步、互斥问题的更通用的方法,并在 THE 操作系统中得以实现。P 是荷兰语发信号的开头字母,V 是等待的开头字母。(1) 信号量信号量,也叫信号灯,一般

30、是由两个成员组成的数据结构,其中一个成员 S 是整型变量,表示该信号量的值,另一个成员 Q 是指向 PCB 的队列。=(S,Q)信号量的值与相应资源的使用状态有关。当它的值0 时,它表示可用资源的数量;当它的值=0 说明当前进程 q 有资源可执行;3)S0,则该进程继续运行;3)如果 SV(sem). . .PB:P(sem)V(sem). . .4、生产者消费者问题 把并发进程的同步和互斥问题一般化,可以得到一个抽象的一般模型,即生产者消费者问题。计算机系统中,每个进程都申请使用和释放各种不同类型的资源,这些资源即可以是象外设、内存及缓冲区等硬件资源,也包括临界区、数据、例程等软件资源。我们

31、把系统中使用某一类资源的进程称为该资源的消费者,而把释放同类资源的进程称为该资源的生产者。设有若干个生产者进程 P1,P2 ,.PN ,若干个消费者进程C1,C2,CM,它们通过一个有界缓冲池联系起来。为了描述生产者消费者问题,可以设置若干个信号量(semaphore):full,empty 和 mutex。其中 mutex 是互斥信号量, full,empty 是同步信号量。编程示意如下:semaphore full = 0;更多免费资料下载请进:http:/ 中国最大的免费课件资料库semaphore empty = 0;semaphore mutex = 1;/*生产者*/P(empty

32、);P(mutex);/*送数据入缓冲区某单元*/V(mutex);V(full);/*消费者*/P(full);P(mutex);/*取缓冲区中某单元数据*/V(mutex);V(empty);说明:(1)它是一个同步问题(a)消费者想要接收一个数据时,有界缓冲区中至少有一个单元是满的;(b)生产者想要发送一个数据时,有界缓冲区至少有一个是空的。(2) 它是一个互斥问题由于有界缓冲区是临界资源,因此,各生产者进程和各消费者进程必须互斥执行。5、进程通讯(1) 进程通讯及分类进程通讯是指进程间的信息交换。进程通讯方式大致分为三类:共享存储器、消息传递和管道。(2)消息传递消息传递方式分为直接通

33、信方式和间接通讯方式两种,而一直接通讯方式的消息缓冲为基本的进程通讯方式。(3)消息缓冲发送进程直接将消息挂在接收进程的消息缓冲队列上,接收进程从消息缓冲队列中得到消息。基本的有发送(send)消息和读取(read )消息两条原语。(a)send 用于进程发送信息。例如,甲进程向乙进程发送消息的过程如下:1)甲进程在发送消息前,在本进程所占空间中开辟一发送区;2)使用 send 原语 send(A);更多免费资料下载请进:http:/ 中国最大的免费课件资料库3)send 程序向系统申请一个消息缓冲区,将发送区中消息正文、长度和发送进程名填入;4)将缓冲区挂到接收消息的乙进程消息链链尾;5)退

34、出 send,甲进程继续执行。(b)read 用于进程接收消息。例如,乙进程读甲进程发送的消息的过程如下:1)乙进程在接收消息前,在本进程所占空间中开辟一接收区;2)使用 read 原语 read(B);3)read 程序将乙进程消息链区中第一个消息缓冲区中的内容、长度、本消息发送者名字,填入接收区;4)将缓冲区从消息链中摘除,释放缓冲区;5)退出 read 程序,乙进程继续执行。详见图 6-3 所示。65 死锁651 死锁的概念死锁是两个或两个以上的进程中的每一个都在等待其中另一个进程释放资源而被封锁,它们都无法向前推进,这种现象称为死锁。如图 6-h652 死锁的四个必要条件1、死锁的起因

35、死锁的起因是并发进程的资源竞争。产生死锁的根本原因在于系统提供的资源个数少于并发进程所需要的该类资源数。显然,由于资源的有限性,我们不可能为所要求资源的进程无限制地提供资源。但是,我们可以采用适当的资源分配算法,以达到消除死锁的目的。2、产生死锁的必要条件(1) 互斥使用:在一段时间内,一个资源只能由一个进程独占使用,若别的进程也要求该资源,则须等待直至其占用者释放;(2) 保持和等待:允许进程在不释放其已分得的资源的情况下请求并等待分配新的资源;(3) 非剥夺性:进程所获得的资源在未使用完之前,不能被其它进程强行夺走,而只能由其自行释放;(4) 循环等待:存在一个等待进程集合,P0 正在等待

36、一个 P1 占用的资源,P1 正在等待一个 P2 占用的资源,Pn 正在等待一个 P0 占用的资源。更多免费资料下载请进:http:/ 中国最大的免费课件资料库3、关于死锁的进一步说明(1) 死锁是进程之间的一种特殊关系,是由资源竞争引起的僵局关系,因此,当我们提到死锁时,至少涉及到两个进程。虽然单个进程也可能锁住自己,但那是程序设计错误而不是死锁;(2) 当出现死锁时,首先要弄清楚被锁的是哪些进程,因竞争哪些资源被锁;(3) 在多数情况下,一系统出现死锁,是指系统内的一些而不是全部进程被锁,它们是因竞争某些而不是全部资源而进入死锁的,若系统的全部进程都被锁住,我们称系统处于瘫痪状态;(4)

37、系统瘫痪意味着所有进程都进入了睡眠(阻塞)状态,但所有进程都睡眠了,如果其中至少有一个进程可由 I/O 中断唤醒的话,这并不一定就是瘫痪状态。653 死锁的表示1、死锁的表示死锁可以用有向图来表示,有向图形成环路则形成死锁。例如,有P1,P2 两个进程,共享一台打印机资源 R1 和一台输入机 R2,在工作使用时,共享资源被独占。死锁的有向示意图见图 6-4图 6-4 死锁有向示意图2、死锁定理(1) 如果不出现任何环,则此时系统内不存在死锁;(2) 如果出现了环,且处于此环中的每类资源均只有一个实体时,则有环就出现死锁,此时,环是系统存在死锁的充分必要条件;(3) 如果系统资源分配图中出现了环

38、,但处于此环中的每类资源的个数不全为 1,则环的存在只是产生死锁的必要条件而不是充分条件。654 解决死锁问题的基本方法解决死锁的方法一般可分为预防、避免、检测与恢复等三种。1、死锁预防死锁预防的方法主要是打破造成死锁的四个必要条件中的一个,如允许进程同时访问某些资源,然而,这种方法不能解决访问那些不允许被同时访问的资源带来的死锁问题,比如打印机等。另一种方法则是打破资源的部分分配这个死锁产生的必要条件。即预先分配各并发进程所需要的全部资源。P2 P1R1R2更多免费资料下载请进:http:/ 中国最大的免费课件资料库另一种死锁的预防方法是打破死锁的环路条件。即把资源分类按顺序排列,使进程在申

39、请、保持资源时不形成环路。如有 M 中资源,则列出R1R2.Rm。若进程 Pi 保持了资源 Ri,则它只能申请比 Ri 级别更高的资源 Rj(RiRj )。释放资源时必须是 Rj 先于 Ri 被释放,从而避免环路的产生。2、死锁避免(1) 静态预先分配所有资源,又称为银行算法。即事先静态说明而后静态分配,破坏部分分配条件,但这种方法的资源利用率低。(2) 受控资源分配法:1969 年由 Haberman 提出,分配资源前先检查会不会发生死锁,要求各进程说明所需资源,将资源分类,按不同策略分配,又称为静态说明动态分配。3、死锁检测与恢复死锁的检测算法当进程进行资源请求时检查并发进程组是否构成资源

40、的请求和保持环路。有限状态转移图和 petriNet 等技术都可用来有效地判断死锁的发生。死锁的恢复办法很多。最简单的办法是终止各锁住进程,或按一定的顺序中止进程序列,直至已释放到有足够的资源来完成剩下的进程为止,另外,也可以从萡锁住进程强迫剥夺资源以解除死锁。4、处理死锁的综合措施Howard 在 1973 年提出将解决死锁的基本方法组合起来,并对由不同类资源竞争所引起的死锁采用对它来说是最佳的方法来解决,以此来全面解决死锁问题。这一个思想是基于以下事实:系统内的全部资源可按层次分成若干类,对于每一类,可以使用最适合它的办法来解决死锁问题。由于使用了资源分层技术,在一个死锁环中,通常只包含某

41、一层次的资源,每一个层次可以使用一种基本的方法。因此,整个系统就不会受控于死锁了。(1)资源分类资源可分为如下几类:(a) 内部资源:由系统本身使用的资源,例如,进程控制块 PCB;(b)主存储器:主要指用户态程序空间;(c)作业资源:可分配的设备(如磁带机)和文件;(d)交换空间:存放用户作业的后援存储器空间。(2)解决死锁的综合措施对内部资源通过破坏“循环等待”条件,即给资源以线性编序的方法预防死锁;对主存储器通过剥夺资源的办法以防止死锁的产生。因为一个进程总是可以被对换出去的,并且主存储器空间本质上是可以被剥夺的;对作业资源更多免费资料下载请进:http:/ 中国最大的免费课件资料库使用

42、死锁避免算法,关于作业要求多少资源的信息可以从作业控制卡中获得;对交换空间可以采用预分配措施。因为存储空间的最大需求量通常是知道的。66 重点小结1、进程是操作系统中最为重要的概念之一,进程和程序的重要区别是其动态性,进程是程序在并发系统的一次执行,它有一个从产生到消失的生命期。2、进程控制是系统使用一些具有特定功能的程序段(原语)来创建、撤消进程及完成进程各状态(就绪、执行、等待)间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。掌握常用的进程调度算法。3、进程同步和互斥是进程管理的重要内容,掌握同步和互斥的概念,并能利用信号量和 P、V 原语来实现进程间的互斥和同步。4、了解进程通讯的几种方式,掌握消息缓冲的实现方式。5、了解死锁的起因及解决死锁的基本方法。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报