




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3节 处理机管理3.1 引言3.2 作业管理3.3 进程的引入和定义3.4 进程控制3.5 线程的基本概念3.6 进程调度3.7 进程通信3.8 死锁问题开 始13.1 引言 处理机管理是操作系统的基本管理功能之一,它所关心的是处理机的分配问题。也就是说把CPU(中央处理机)的使用权分给某个程序,通常把这个正准备进入内存的程序称为作业,当这个作业进入内存后我们把它称为进程。处理机管理分为作业管理和进程管理两个阶段去实现处理机的分配,常常又把直接实行处理机时间分配的进程调度工作作为处理机管理的主要内容。 指令分类:特权指令和非特权指令 处理机状态:管态和目态 23.2 作业管理1、作业状态1)
2、提交状态:用户向机房提交作业或通过终端键盘将作业输入。2)收容状态:作业的全部信息已输入外存储器中等待运行。3)执行状态:作业被作业高度程序选中进入内存。4)完成状态:作业执行完毕,释放其占用的全部资源。3 2、作业状态转换图提交收容运行完成设备管理作业管理去分配图3.143、作业控制块(JCB) 为了管理和调度作业,当作业被收容到外存储器中后,系统为每个作业建立一个作业控制块。 其内容主要有:作业名、状态、优先数、运行时间、位置、长度、外设申请等。 作业调度算法: 1)先来先服务; 2)基于优先数法; 3)分时和优先数相结合53.3 进程的引入和定义3.3.1 进程的引入3.3.2 进程的定
3、义63.3.1 进程的引入1程序的顺序执行及其特性2资源共享3程序的并发执行及其特性 71程序的顺序执行及其特性 由于各类软件的出现及日益复杂化,使得程序设计的概念和方法有了很大的发展,在单道程序工作环境中,我们把一个“程序”理解为“一个在时间上按严格次序前后相继的操作序列”。 8一切顺序执行的程序都具有下列特性: (1)顺序性。 (2)资源独占。 (3)结果的无关性。 92资源共享 操作系统提供了两种实现资源共享的方法。 (1)由操作系统统一管理和分配。 (2)由进程自行使用。 103程序的并发执行及其特性 无论是操作系统自身的程序还是用户程序,通常总是存在一些相对独立、但又能并发执行的程序
4、段。由于这些程序段可以被多个用户作业调用,因此可在同一时间间隔内发生。这样一来,某个程序段可能对应多个“计算”,于是程序与“计算”已不具有一一对应关系了。这些“并发程序”就构成了一个“并发环境”。113.3.2 进程的定义 定义:一个具有一定独立功能的程序关于某个数据集合的一次运行活动。进程与程序的区别和相互关系 :(1)动态性和静态性。 (2)从结构上看每个进程的实体都是由程序段和相应的数据段两部分构成的,这一特征与程序的含义相近。(3)一个进程可以涉及到一个或几个程序的执行;反之一程序可以对应多个进程,即同一程序段可在不同数据集合上运行,可构成不同的进程 。(4)并发性。 (5)进程具有创
5、建其他进程的功能。 (6)操作系统中的每一个程序都是在一个进程现场中运行的。 123.3.3 进程的状态和进程控制块 1 进程的状态及状态变化图 2 进程控制块 131 进程的状态及状态变化图 (1)运行状态:进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。(2)阻塞状态:进程等待某种事件完成(例如,等待输入/输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。(3)就绪状态:该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源
6、,一旦获得处理机就立即投入运行。14图3.2 典型的进程状态演变图15状态变化 :(1)就绪状态变化到运行状态 。(2)运行状态变化到就绪状态。 (3)运行状态变化到阻塞状态。 (4)阻塞状态变化到就绪状态。 162 进程控制块 为了刻画进程的动态变化,通常把进程表示为由程序段、私有数据块和进程控制块组成,如图3.4(a)所示。程序部分描述进程本身所要完成的功能,而“私有数据块”是接受程序规定操作的一组存储单元的内容,是操作的对象。进程控制块是在进程创建时产生的,当进程存在于系统时(运行),进程控制块就标识了这个进程。如图3.4(b)所示。 17进程控制块是进程存在的标志,当系统或父进程创建一
7、个进程时,实际上就是为其建立一个进程控制块。 进程控制块既能标识进程的存在,又能刻画出进程的动态特征,它是一个进程仅有的被系统真正感知的部分。对操作系统而言,所有进程控制块将构成并发执行控制和维护系统工作的依据。进程控制块的作用:183.4 进程控制 3.4.1 原语 3.4.2 进程控制原语 193.4.1 原语 在操作系统中,某些被进程调用的操作,例如队列操作、对信号灯的操作、检查启动外设操作等,一旦开始执行就不能被中断,否则就会出现操作错误,造成系统混乱。原语就是为实现这些操作而设置的。20图3.5 进程家族示例213.4.2 进程控制原语1创建原语2撤消原语3阻塞原语4唤醒原语223.
8、5 线程的基本概念3.5.1 线程的引入3.5.2 线程与进程的比较3.5.3 用户级线程和内核支持线程233.5.1 线程的引入 由于进程是拥有资源的独立单位、又是一个可以独立调度的单位。(1)创建进程。系统在创建进程时,必须为之分配其所必需的、除处理机以外的所有资源。如内存空间、I/O设备以及建立相应的PCB结构。(2)撤消进程。系统在撤消进程时,又必须先对这些资源进行回收操作,然后再撤消PCB结构。(3)进程切换。在对进程进行切换时,由于要保留当前进程的CPU环境和设置新选中进程的CPU环境,为此需花费不少处理机时间。24线程的定义 线程是进程中的一个实体,是被系统独立调度和分派的基本单
9、位。 线程本身基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但它可与同属一个进程的其它线程共享进程所拥有的全部资源。 一个线程可以创建和撤消另一个线程;同时进程中的多个线程之间可以并发执行。253.5.2 线程与进程的比较1调度:在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。 2并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。 3拥有资源:不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有
10、资源的一个独立单位,它可以拥有自己的资源。 4系统开销:由于在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等。因此,操作系统所付出的开销将明显地大于在创建或撤消线程时的开销。 263.5.3 用户级线程和内核支持线程比较两种线程的优缺点 :1线程的调度与切换速度:内核支持线程的调度和切换与进程的调度和切换十分相似。 2系统功能调用:当传统的用户进程调用一个系统功能调用时,要由用户态进入核心态,用户进程将被阻塞。当内核完成系统调用而返回时,才将该进程唤醒,继续执行。 3线程执行时间 :对于只设置了用户级线程的系统,调度是以进程为单位进行的。在采用轮转调度算法时,各个进程轮
11、流执行一个时间片,这对诸进程而言似乎是公平的。 273.6 进程调度 3.6.1 进程调度的职能 3.6.2 进程调度算法 3.6.3 调度用的进程状态切换图 283.6.1 进程调度的职能 (1)记录系统中所有进程的有关情况。 (2)确定分配处理机的原则。 (3)分配处理机给进程。 (4)从进程收回处理机。 293.6.2 进程调度算法 1先来先服务 2时间片轮转调度 3、分级调度4优先数法 301先来先服务 这种调度算法按照进程进入就绪队列的先后顺序来调度进程,到达得越早,其优先数越高。获得处理机的进程,未遇到其他情况时,一直运行下去,系统只需具备一个先进先出的队列,在管理优先数的就绪队列
12、时,这种方法是一种最常见策略,并且在没有其他信息时,也是一种最合理的策略。312时间片轮转调度 先来先服务的一个重要变形,就是轮转规则。轮转调度算法是系统把所有就绪进程按先后次序排队,处理机总是优先分配给就绪队列中的第一个就绪进程,并分配它一个固定的时间片(如100毫秒)。当该运行进程用完规定的时间片时,被迫释放处理机给下一个处于就绪队列中的第一个进程,分给这个进程相同的时间片,每个运行完时间片的进程,当未遇到任何阻塞时,就回到就绪队列的尾部,并等待下次转到它时再投入运行。于是,只要是处于就绪队列中的进程,按此种算法迟早总可以分得处理机投入运行。323分级轮转法所谓分级轮转法就是将先前的一个就
13、绪队列。根据进程的优先数不同划分两个或两个以上的就绪队列,并赋给每个队列不同的优先数。以两个就绪队列为例,一个具有较高优先数,另一个具有较低优先数,前者称为前台队列,后者称为后台队列。 334优先数法 根据已占有处理 机的进程是否可被剥夺而分为优先占有法和优先剥夺法两种 。优先占有法的原理是:一旦某个最高优先数的就绪进程分得处理机之后,只要不是其自身的原因被阻塞(如要求I/O操作)而不能继续运行时,就一直运行下去,直至运行结束。优先剥夺法的原理是:当一个正在运行的进程即使其时间片未用完,无论什么时候,只要就绪队列中有一个比它的优先数高的进程,优先数高的进程就可以取代以前正在运行的进程,投入运行
14、 。34确定进程的优先数通常应考虑如下几个因素: (1)进程类型。 (2)运行时间。 (3)作业的优先数。 (4)动态优先数。 353.6.3 调度用的进程状态切换图 图3.5 调度用的进程状态切换图363.7 进程通信 3.7.1 临界资源和临界区 3.7.2 进程的通信方式之一 同步与互斥 3.7.3 两个经典的同步/互斥问题 3.7.4 结构化的同步/互斥机制管程 3.7.5 进程的通信方式之二消息缓冲 373.7.1 临界资源和临界区 在计算机中有许多资源只允许一个进程使用,如果有多个进程同时去使用这类资源就会产生严重的错误,这样的资源称为临界资源。 几个进程若共享同一临界资源,它们必
15、须以互斥的方式使用这个临界资源,即当一个进程正在使用临界资源且尚未使用完毕时,则其他进程必须推迟对该资源的进一步操作,在当前进程的使用完成之前,不能从中插进去使用这个临界资源,否则将会造成信息混乱和操作出错。 使用该临界资源的一段代码称为临界区或临界段。 383.7.2 进程的通信方式之一 同步与互斥 同步:我们把进程间的必须互相合作的协同工作关系,称为进程同步。 互斥:两个并行的进程A、B,如果当A进行某个操作时,B不能做这一操作,进程间的这种限制条件称为进程互斥,这是引起资源不可共享的原因。 393.7.3解决同步与互斥工具1、硬件实现2、软件实现 1)设置标志:flag 2)对信号量操作
16、(P、V操作)40P、V操作对信号量S操作的定义: P操作S=S-1If(S0)then status(q)=“blocked” /将进程q置为阻塞Insert(Q,q) /将q插入阻塞队列Q中return41 V操作S=S+1If (S0)thenRemove(Q,R) /将R移出阻塞队列QStatus=“ready” /将R置为“就绪”Insert(RL,R) /将R插入就绪队列RLreturn423.7.4 两个经典的同步/互斥问题 1生产者与消费者问题 2读者与写者问题 431生产者与消费者问题 Dijkstra把广义同步问题抽象成一种“生产者与消费者问题”(Producer-cons
17、umer-relationship)的抽象模型。事实上,计算机系统中的许多问题都可归结为生产者与消费者问题,生产者与消费者可以通过一个环形缓冲池(见图3.8)联系起来,环形缓冲池由几个大小相等的缓冲块组成,每个缓冲块容纳一个产品。每个生产者可不断地每次往缓冲池中送一个生产产品,而每个消费者则可不断地每次从缓冲池中取出一个产品。 44图3.6 环形缓冲池45下面给出基于环形缓冲区的生产者与消费者关系的形式描述,设:(1)公用信号量mutex:初值为1,用于实现临界区互斥。(2)生产者私用信号量empty:初值为n,指示空缓冲块数目。(3)消费者私用信号量full:初值为0,指示满缓冲块数目。(4
18、)整型量i和j初值均为0,i指示首空缓冲块序号,j指示首满缓冲块序号。模块 设计如下: 46 Var mutex:=1,empty=n,full:=0; i,j:integer;buffer:array0n-1; Procedure producer; 生产者进程begin produce a product; P(empty); P(mutex); buffer (i):Product; i:(i+1) mod n; V(mutex); V(full) end end;47procedure consumer; 消费者进程 begin While true do begin P(full);
19、 P(mutex) goods:buffer(j); j:(j+1) mod n; V(mutex); V(empty); Consume a product; end48 end;begin seminitial ; i:j:0; cobegin producer; consumer; coend end492读者与写者问题 设某航空公司有2个售票处,它们通过远程终端访问设在公司总部的航空订票系统,并要查询或修改系统中记录所有班机当前订票数的数据库B。设Bi为某班机的当前订票数,P1和P2分别代表2个售票处的售票进程,R1和R2为进程执行时使用的工作寄存器。由于售票进程并发执行,且各自访问数
20、据库B的时间是随机的,故有可能出现下面的访问序列(假定Bi的当前值为x):50P1:R1:=Bi;R1:=R1+1P2:R2=Bi;R2:=R2+1;P1:Bi:=R1;P2:Bi:=R2可见,Bi的新值是X+1,而不是X+2。这里的P1和P2均为写者,显然,对于写者Bi为临界资源,因此写者应该互斥。时间轴51下面给出读者进程与写者进程的一般结构。var mutex=1, wrt: semaphore;readcount: integer;begin seminit ;readcount:=0cobeginprocedure reader;beginP(mutex);Readcount:=re
21、adcount+1;If readcount=1 then P (wrt);V(mutex);Reading is performing;52P(mutex);readcount:=readcount-1if readcount=0 then V(wrt);V (mutex);End Procedure writer;Begin P(wrt);writing is performing;V(wrt);EndCoendEnd;533.7.5 进程的通信方式之二消息缓冲 1SEND(A)(发送消息)原语 2READ(A)(读取消息)原语 541SEND(A)(发送消息)原语 发送消息原语被进程用于
22、把消息发送到存放消息的缓冲区。A是原语的参数,表示发送区的地址。其工作原理是:首先调用“寻找目标进程的PCB”的程序查找接收进程的PCB,如果接收进程存在,申请一个存放消息的缓冲区,消息缓冲区为空时,接收此消息的进程因等待此消息的到来而处于阻塞状态,则唤醒此进程,并把消息的内容、发送原语的进程名和消息等,复制到预先申请的存放消息的缓冲区,且将存放消息的缓冲区连接到接收进程的PCB上;如果接收进程不存在,则由系统给出一个“哑”回答;最后控制返回到发送消息的进程继续执行,或转入进程调度程序重新分配处理机。如果消息缓冲区已满,则返回到非同步错误处理程序入口进行特殊处理。如图3.9所示。55图3.9
23、发送消息过程流图562READ(A)(读取消息)原语 READ(A)原语用来读取消息,接收进程读取消息之前,在自己的空间中确定一个接收区。当接收进程想要读取消息时,使用READ(A)原语,A是接收进程提供的接收区开始地址。如图3.10所示。57图3.10 读取消息583.8 死锁问题 3.8.1 死锁产生的原因和必要条件 3.8.2 预防死锁 3.8.3 发现死锁 3.8.4 解除死锁 593.8.1 死锁产生的原因和必要条件 死锁产生的原因 :当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊的现象死锁。在许多实时应用中,比如计算机
24、控制运输和监视系统方面,死锁问题也极为重要。 60死锁产生例子1:我们先来看一个申请不同类型资源的死锁例子,假定有两个进程Pl和P2都要修改文件F,修改时都需要一条暂时存放信息的磁带,而只有一台磁带机T可用。又假定由于某种原因,在进行修改之前,P2需要一暂存磁带(例如为了修改,要重新组织输入数据)。设F和T都是可重用资源,它们分别表示允许更新文件和允许使用磁带机。于是Pl和P2。可有如下形式:61分析:从上面的申请-释放过程可以看出,进程Pl和P2有可能“同时”分别到达rl和r2处,例如,P2首先得到T,然后Pl得到F,接着Pl到达r1,最后P2到达r2,此时,若Pl继续运行,则占有F的进程Pl将阻塞在T上,若P2继续运行,则占有T的进程P2将阻塞在F上,如果P2不能前进,则P1也不能继续下去,反之亦然。我们说这两个进程处在死锁状态。 62图3.11 简单的死锁例子63死锁产生例子2:现在我们再来看一个关于相同类型资源共享的死锁例子,假设有一类可再使用资源R,例如主存或外存,它包含有m个页面或扇区,由n个进程P1,P2,Pn(2mn)共享。假定每个进程按右图顺序申请和释放页面(或扇区):64分析:这里每次申请和释放只涉及R的一个分配单元(页或扇区)。因此,当把所有单元全部分配完毕时,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租车行业服务质量管理与顾客满意度考核试卷
- 新型材料在个人护理产品的温和性改进考核试卷
- 木工产业人才培养与引进考核试卷
- 公司钢材购销合同范例
- 临时房屋销售合同标准文本
- 上汽大众合同范本
- 共同购置房产合同范例
- 企业租地合同标准文本
- 低压配电房维保合同范例
- 代理劳务合同标准文本
- 20222023银行招聘考试题库1000题第4372期含答案解析
- 传染病报告卡
- 单片机原理及应用期末考试题试卷大全(含答案)
- 镇村信访矛盾纠纷实施方案及计划信访矛盾大排查大化解实施方案
- 2024年燃气报警器市场分析:燃气报警器年均增长率保持在约6.5%
- 国画基础知识题库单选题100道及答案解析
- DB34T 577-2021 葡萄炭疽病测报调查规范
- 区域地理之中国地理西北地区
- 部编小学语文单元整体作业设计二年级上册第五单元
- DB34T 4824-2024 地质标本登记著录规范
- 钢铁项目环评报告 - 6地下水环境影响评价
评论
0/150
提交评论