进程管理作业
- 格式:doc
- 大小:91.00 KB
- 文档页数:10
《操作系统》课程作业(2013年春)姓名:学号:专业:年级:学校:日期:作业一:作业管理1、有三道程序A、B、C在一个系统中运行,该系统有输入、输出设备各1台。
三道程序A、B、C构成如下:A:输入32秒,计算8秒,输出5秒B:输入21秒,计算14秒,输出35秒C:输入12秒,计算32秒,输出15秒问:(1)三道程序顺序执行的总时间是多少?(2)充分发挥各设备的效能,并行执行上述三道程序,最短需多少时间(不计系统开销)?并给出相应的示意图。
2、假设一个单CPU系统,以单道方式处理一个作业流,作业流中有2道作业,共占用CPU计算时间、输入卡片数和打印输出行数如下:其中,卡片输入机速度为1000张/分钟,打印机输出速度为1000行/分钟,试计算:(1)不采用spooling技术,计算这两道作业的总运行时间(从第1道作业输入开始到最后一个作业输出完毕)。
(2)如采用spooling技术,计算这2道作业的总运行时间(不计读/写盘时间),并给出相应的示意图。
作业二:进程管理1、 请写出两程序S1和S2可并发执行的Bernstein 条件。
2、 有以下5条语句,请画出这5条语句的前趋图。
S1:y=x+1 R(x) W(y) S2:c=f-w R(f,w) W(c) S3:d=r-y R(r,y) W(d) S4:x=a+b R(a,b) W(x) S5:r=c+y R(c,y) W(r)3、 设在教材第62页3.6.4节中所描述的生产者消费者问题中,其缓冲部分为m 个长度相等的有界缓冲区组成,且每次传输数据长度等于有界缓冲区长度以及生产者和消费者可对缓冲区同时操作。
重新描述发送过程deposit(data)和接收过程remove(data)。
P P P iP ....12ik4、 设有k 个进程共享一临界区,对于下述情况,请说明信号量的初值、含义,并用P ,V操作写出有关互斥算法。
(1) 一次只允许一个进程进入临界区;(2) 一次允许m (m<k )个进程进入临界区。
操作系统的五大功能是什么操作系统的功能主要体现在对计算机资源――微处理器、存储器、外部设备、文件和作业五大计算机资源的管理,操作系统将这种管理功能分别设置成相应的程序管理模块,每个管理模块分管一定的功能。
即操作系统的五大功能。
1、微处理器管理功能在大型操作系统中.可存在多个微处理器,并同时可管理多个作业。
怎样选出其中一个作业进入主存储器难备运行,怎样为这个作业分配微处理器等等,都由微处理器管理模块负责。
微处理器管理模块,要对系统中各个微处理器的状态进行登记,还要登记各个作业对微处理器的要求。
管理模块还要用一个优化算法实现最佳调度规则。
把所有的微处理器分配给各个用户作业使用。
最终日的是提高微处理器的利用率。
这就是操作系统的微处理器管理功能。
2、内存管理功能内存储器的管理,主要由内存管理模块来完成。
内存管理模块对内存的管理分三步。
首先为各个用户作业分配内存空间;其次是保护已占内存空间的作业不被破坏;最后,是结合硬件实现信息的物理地址至逻辑地址的变换。
使用户在操作中不必担心信息究竟在四个具体空间――即实际物理地址,就可以操作,这样就方便了用户对计算机的使用和操作。
内存管理模块对内存的管理是使用一种优化算法对内存管理进行优化处理,以提高内存的利用率。
这就是操作系统的内存管理功能。
3、外部设备管理功能由于计算机的不断发展,其应用领域越来越广泛,应用技术越来越提高,应用方法越来越简便,与用户的界面越来越友好,随之外部设备的种类也日益增多,功能不断提高,档次日渐升级,因此,操作系统的设备管理模块的功能也必须跟上外部设备的发展而不断发展、不断升级以适应外部设备的日益发展的需要。
设备管理模块的任务是当用户要求某种设备时,应马亡分配给用户所要求的设备,并技用户要求驱动外部设备以供用户应用。
并且对外部设备的中断请求,设备管理模块要给以响应并处理。
这就是操作系统的外部设备管理功能。
4、文件管理功能操作系统对文件的管理主要是通过文件管理模块来实现的。
操作系统操作系统一般都具有以下功能:(1)进程管理:主要是对处理器(CPU)进行处理,又称为处理器管理。
CPU是计算机系统的核心部件,是最宝贵的资源,它的利用率高低将直接影响到计算机的处理效率。
当有一个(或多个)用户提交作业请求服务时,操作系统对进城的管理是协调各作业之间的运行,充分发挥CPU的作用,为所有的用户服务,提高计算机的使用效益,使CPU的资源得到充分利用。
(2)存储管理:是对内存储器管理,只有当程序和数据调入内存中,CPU才能直接访问和执行。
操作系统对内存储器的管理主要体现在两方面:①对内存储器资源的统一管理,以达到合理利用内存空间的目的,当程序和数据装入内存时,操作系统首先要分配存储空间,任务完成后要收回存储空间供其他程序使用。
②对内存中的程序和数据进行保护当程序和数据装入内存后,防止一个用户干扰或破坏另一个用户的程序和数据,存储管理使程序的运行和数据的访问相对对独立和安全。
(3)设备管理:设备管理是计算机外部设备与用户之间的借口。
其功能是对设备资源进行统一管理,负责分配、回收尾部设备和控制设备运行。
用户使用外部设备时不是直接调用该设备,而是通过输入命令或程序提出的要求向操作系统提出申请,由操作系统中的设备管理程序负责该任务分配设备并控制运行。
任务完成后,操作系统及时回收资源。
(4)文件管理:文件管理是对计算机系统软件资源的管理。
用户的程序和数据都是以文件的形式存放在外存储器上,使用时从外存储器中调入内存,机器才能执行。
操作系统负责对文件的组织、存取、删除、保护等管理,以便用户能方便、安全地访问文件。
(5)作业管理:作业就是用户提交给计算机的程序和处理的原始数据。
作业管理的功能表现为作业控制和作业调度,使用户的作业能顺利完成,同时为用户提供一个使用计算机系统的友好界面,使用户能方便地运行自己的作业。
操作系统五大管理功能包括哪些操作系统的五个基本管理功能你知道是什么呢?下面由店铺整理了操作系统五大管理功能包括哪些的相关知识,希望对你有帮助。
操作系统五大管理功能包括哪些1) 设备管理:主要是负责内核与外围设备的数据交互,实质是对硬件设备的管理,包括对输入输出设备的分配,初始化,维护与回收等。
例如管理音频输入输出。
2) 作业管理:这部分功能主要是负责人机交互,图形界面或者系统任务的管理。
3) 文件管理:这部分功能涉及文件的逻辑组织和物理组织,目录结构和管理等。
从操作系统的角度来看,文件系统是系统对文件存储器的存储空间进行分配,维护和回收,同时负责文件的索引,共享和权限保护。
而从用户的角度来说,文件系统是按照文件目录和文件名来进行存取的。
4) 进程管理:说明一个进程存在的唯一标志是pcb(进程控制块),负责维护进程的信息和状态。
进程管理实质上是系统采取某些进程调度算法来使处理合理的分配给每个任务使用。
5)存储管理:数据的存储方式和组织结构。
补充:操作系统的四大类操作系统的类型也可以分为几种:批处理系统,分时操作系统,实时操作系统,网络操作系统等。
下面将简单的介绍他们各自的特点:1) 批处理系统:首先,用户提交完作业后并在获得结果之前不会再与操作系统进行数据交互,用户提交的作业由系统外存储存为后备作业;数据是成批处理的,有操作系统负责作业的自动完成;支持多道程序运行。
2) 分时操作系统:首先交互性方面,用户可以对程序动态运行时对其加以控制;支持多个用户登录终端,并且每个用户共享CPU和其他系统资源。
3) 实时操作系统:会有时钟管理,包括定时处理和延迟处理。
实时性要求比较高,某些任务必须优先处理,而有些任务则会被延迟调度完成。
4) 网络操作系统:网络操作系统主要有几种基本功能(1) 网络通信:负责在源主机与目标主机之间的数据的可靠通信,这是最基本的功能。
(2) 网络服务:系统支持一些电子邮件服务,文件传输,数据共享,设备共享等。
操作系统原理第二章作业一、应用题1、进程之间存在哪几种制约关系?各是什么原因引起的?以下活动各属于哪种制约关系?(1)若干学生去图书馆借书(2)两队学生进行篮球比赛(3)流水线生产的各道工序(4)商品生产和消费进程之间存在两种制约关系,即同步和互斥。
同步是由于并发进程之间需要协调完成同一个任务时引起的一种关系,为一个进程等待另一个进程向它直接发送消息或数据时的一种制约关系。
互斥是由于并发进程之间竞争系统的临界资源引起的,为一个进程等待另一个进程已经占有的必须互斥使用的资源时的一种制约关系。
1)是互斥关系,同一本书只能被一个学生借阅,或者任何时刻只能有一个学生借阅一本书。
2)是互斥关系,篮球是互斥资源。
3)是同步关系,一个工序完成后开始下一个工序。
4)是同步关系,生产商品后才能消费。
2、设P、Q、R共享一个缓冲区,P、Q构成一对生产者-消费者,R既为生产者又为消费者,使用P、V操作实现其同步。
The P,V code Using Pascalvar mutex,full,empty:semaphore; full:=1; empty:=0; mutex:=1; cobeginProcedure P Procedure Q Procedure R begin begin begin while true while true if empty:=1 then p(empty); p(full); begin P(mutex); P(mutex); p(empty); Product one;consume one; P(mutex); v(mutex); v(mutex); product; v(full); v(empty); v(mutex);end end v(full); endif full:=1 thenbeginp(full); p(mutex);消费一个产品;v(mutex);v(empty); endcoend3、某工厂有两个生产车间和一个装配车间,两个生产车间分别生产A、B两种零件,装配车间的任务是把A、B两种零件组装成产品,两个生产车间每生产一个零件后都要分别把他们送到专配车间的货架F1、F2上,F1存放零件A,F2存放零件B,F1和F2的容量均可以存放10个零件。
操作系统的功能通过内部命令和外部命令,操作系统可以为用户提供5种主要功能,即任务管理、存储管理、文件管理、设备管理和作业管理。
1. 任务管理操作系统提供的任务管理有进程管理、分时处理和并行处理3种不同的方式。
(1) 进程管理进程是操作系统调度的基本单位,它可反映程序的一次执行过程(包括启动、运行并在一定条件下中止或结束)。
进程管理主要是对处理机资源进行管理。
由于CPU是计算机系统中最宝贵的硬件资源,为了提高CPU的利用率,一般采用多进程技术。
如果一个进程因等待某一条件而不能运行下去时,就将处理机占用权转给另一个可运行进程。
或者,当出现了一个比当前运行进程优先权更高的可运行进程时,后者应能抢占CPU资源。
操作系统按照一定的调度策略,通过进程管理来协调多个程序之间的关系,解决CPU资源的分配和回收等问题,使CPU资源得到最充分的利用。
(2) 分时处理在较大型的计算机系统中,如有上百个远程的或本地的用户同时执行存取操作,操作系统可采用分时方式进行处理。
分时的基本思想是将CPU时间划分成许多小片,称为"时间片",轮流去为多个用户程序服务。
如果在时间片结束时该用户程序尚未完成,它就被中断,等待下一轮再处理,同时让另一个用户程序使用CPU下一个时间片。
由于CPU速度很快,用户程序的每次要求都能得到快速的响应。
因此,每个用户都感觉好像自己在"独占"计算机一样。
不难看出,这是操作系统使用户轮流"分时"共享了CPU。
(3) 并行处理配置较高的一些计算机系统,都有不止一个处理器。
并行处理操作系统可以充分利用计算机系统中提供的所有处理器,让多个处理器同时工作,一次执行几条指令,以提高计算机系统的效率。
很明显,实现并行处理需要操作系统作合理的调度,并行处理系统能够把多项任务分配给不同的CPU同时执行,且保持系统正常有效地工作。
例如,有一个作业含有3个计算。
计算x:A + B计算y:C + D计算z:x + y这时,操作系统就可以安排CPU 1执行计算x,CPU2同时执行计算y,然后由CPU2执行计算z,这样的并行调度将比按序执行3个计算快大约33%。
实验四进程管理1.目的和要求(1)练习Linux进程管理命令(2)了解如何监视系统运行状态(3)掌握查看、删除进程的正确方法(4)掌握命令在后台运行的用法(5)掌握进程手工、调度启动的方法2.实验环境硬件:PC机软件:ubuntu操作系统、虚拟机3.实验步骤1)进入系统,用top命令察看当前系统的状态,并识别各进程的有关说明信息,给出相应截图和解释说明2)用ps命令察看系统当前的进程,并把系统当前的进程保存到文件process中。
ps aux>process 或者ps -ef3)查看当前进程树ps axf4)查看系统当前有没有init进程?用ps –aux|grep init查看5)找出bash进程的父进程是哪个进程。
6)杀死bash进程,发生了什么事?7)输入“cat <回车>”按<Ctrl>-z 键,出现什么情况?输入fg命令出现什么情况?按<Ctrl>-c 键,出现什么情况?按<Ctrl>-z 键转入后台运行,fg把后台命令移回前台按<Ctrl>-c 键终止命令8)输入“find / -name ls*>temp &”,该命令的功能是什么?再次查看该进程,有什么结果?接着输入killall find命令后,再查看该进程,有什么结果?查找所有硬盘中ls开头的文件,并把文件名定向到temp中9)在前台运行2个睡眠进程后,均挂起;列出所有正在运行的作业:jobs在前台运行睡眠进程sleep 100000使用Ctrl-z 挂起进程在前台运行睡眠进程sleep 200000使用Ctrl-z 挂起进程10)在前台运行1个vi进程后,挂起;ViCtrl-z11)在后台运行1个睡眠进程。
sleep 300000 &12)列出所有正在运行的作业,并查看进程PIDjobs -l13)将第二默认作业在后台继续运行。
查看当前作业情况。
OS概述、进程管理练习答案一、单项选择题(OS概述部分)1、UNIX O.S. 属于一种( A )操作系统。
A.分时B.批处理C.实时D.分布式2、计算机软件中,最靠近硬件层次的一类软件是(C )。
A.应用软件B.支撑软件C.系统软件D.编译软件3、下列四个操作系统中,是分时系统的为(C )。
A.CP/MB.MS-DOSC.UNIXD.WINDOWS NT4、在操作系统中,设计者往往编制了许多完成不同功能的子程序供用户程序中使用,这些子程序被称为(B )。
A.作业控制语言B.系统调用C.操作控制命令D.访管命令5、个人计算机操作系统也被称为( B )。
A.多用户操作系统B.单用户操作系统C.实时操作系统D.批处理操作系统6、批处理系统的主要缺点是( B )。
A.CPU的利用率不高B.失去了交互性C.不具备并行性D.以上都不是7、DOS操作系统主要的功能是(A )。
A.文件管理功能B.中断处理功能C.作业管理功能D.打印管理功能8、第一个在计算机上实现的操作系统是(C )。
A.分时操作系统B.实时操作系统C.单道批处理系统D.单用户操作系统9、操作系统的功能是进行处理器管理、作业管理、( B )管理、设备管理和文件管理。
A.进程B.存储器C.硬件D.软件10、设计实时操作系统时,首先应该考虑系统的(B )。
A.可靠性和灵活性B.实时性和可靠性C.灵活性和可靠性D.优良性和分配性11、操作系统是计算机系统的(B )。
A.应用软件B.系统软件C.硬件D.固件12、从工作的角度看操作系统,可以分为:单用户操作系统、批处理系统、(B )和实时系统。
A.单机操作系统B.分时操作系统C.面向过程的操作系统D.网络操作系统13、下列系统中,( B )是实时系统。
A.计算机激光照排系统B.航空定票系统C.办公自动化系统D.计算机辅助设计系统14、工业过程控制系统中运行的操作系统最好是( B )。
A.分时系统B. 实时系统C.分布式操作系统D.网络操作系统15、计算机发展到第三代,操作系统已成为软件的一个重要分支,最早的操作系统是(D )。
一、选择题1.在进程的组成部分之中,进程在运行中不可修改的部分是______。
A.私用程序段B.共享程序段C.数据段D.进程控制块2.响应比高者优先作业调度算法是以计算时间和______来考虑的。
A.输入时间B.完成时间C.周转时间D.等待时间3.在消息缓冲通信中,消息队列属于______资源。
A.临界B.共享C.永久D.可剥夺4.进程间的同步是指进程间在逻辑上的相互______关系。
A.联接B.制约C.继续D.调用5.最适合于分时系统的进程调度算法是______。
A.先来先服务(FCFS)B.最短作业优先(SSJF)C.优先数法D.轮转法(RR)6.进程A和进程B通过共享缓冲区协作完成数据处理,进程A负责生产数据并放入缓冲区,进程B从缓冲区中读数据并输出。
进程A和进程B之间的关系是______。
A.互斥关系B.同步关系C.互斥和同步D.无制约关系7.在优先级调度中,______类进程可能被“饿死”,即长时间得不到调度。
A.短进程B.长进程C.低优先级进程D.大内存进程8.进程从运行状态到阻塞状态可能是由于______。
A.进程调度程序的调度B.现运行进程的时间片耗尽C.现运行进程执行了wait操作D.现运行进程执行了signal操作9.银行家算法在解决死锁问题中是用于______的。
A.预防死锁B.避免死锁C.检测死锁D.解除死锁10.______不是进程调度算法。
A.时间片轮转法B.先来先服务方法C.响应比高者优先法D.均衡调度算法11.下面关于线程的叙述中正确的是______。
A.线程包含CPU现场,可以独立执行程序B.每个线程有自己独立的地址空间C.线程之间的通信必须使用系统调用函数D.进程只能包含一个线程12.并发进程之间______。
A.彼此无关B.必须同步C.必须互斥D.可能需要同步或互斥13.当一个进程运行时,系统可能基于某种原则强行将其撤下,把处理器分配给其他进程,这种调度方式是______。
A.非剥夺方式B.剥夺方式C.中断方式D.查询方式14.信号量S不能用于______操作。
A.signal B.wait C.赋初值D.运算表达式15.______是一种只能进行wait操作和signal操作的特殊变量A.调度B.进程C.同步D.信号量16.分配给进程占用处理机的时间到而强迫进程P让出处理器,或有更高优先级的进程要运行,迫使正在运行的进程P让出处理器,则进程P状态变化的情况为______ A.运行态->就绪态B.运行态->等待态C.就绪态->运行态D.等待态->就绪态17.下面关于进程的叙述中正确的是______。
A.进程获得CPU运行是通过调度得到的B.优先级是进程调度的重要依据,一旦确定就不能改变C.在单CPU的系统中,任何时刻都有一个进程处于运行状态D.进程申请CPU得不到满足时,其状态变为阻塞18.操作系统通过______对进程进行管理。
A.进程B.进程控制块C.进程启动程序D.进程控制区19. 若一个进程拥有100个线程,这些线程属于用户级线程,它们在系统调度执行时间上占用的时间片个数是______。
A.1 B.100 C.1/100 D.020. 解除死锁通常不采用的方法是______。
A.终止一个死锁进程B.终止所有死锁进程C.从死锁进程处抢夺资源D.从非死锁进程处抢夺资源21. 到其他3种状态的进程状态是______。
A.就绪B.阻塞C.完成D.执行22.信号量的初值为2,当前值为-3,则表示等待进程有______。
A.1个B.2个C.3个D.5个23.wait操作可能导致______。
A.进程就绪B.进程结束C.进程阻塞(等待)D.新进程创建24.在操作系统中为避免系统的死锁采用______。
A.银行家算法B.破坏占有并等待条件C.死锁检测和恢复D.破坏非剥夺条件25.下列的进程状态变化中不可能发生的变化是______。
A.等待→运行B.运行→等待C.运行→就绪D.等待→就绪26.如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置为______。
A. 3 B.1 C.2 D.027.进程之间交换数据不能通过______途径进行。
A.共享文件B.消息传递C.访问进程地址空间D.访问共享存储区域28.进程控制块PCB不包括的内容是______。
A.CPU现场B.进程优先级C.进程运行状态D.文件缓冲区29.PCB是描述进程状态和特性的数据结构,一个进程______。
A.可以有多个PCB B.可以和其他进程共用一个PCBC.可以没有PCB D.只能有唯一的PCB30.资源顺序分配法破坏了死锁发生的______必要条件。
A.互斥占用B.占有等待C.非剥夺D.循环等待31.进程和程序的本质区别是______。
A.内存和外存B.动态和静态特征C.共享和独占使用计算机资源D.顺序和非顺序执行指令32.设有两个进程共享3个同类资源,为使系统不死锁,每个进程最多可以申请______资源。
A.0 B.1 C.2D.333.作业调度中的先来先服务算法是以______为出发点考虑的。
A.作业执行时间B.作业的周转时间C.作业等待时间D.等待时间加运行时同34.设m为同类资源数,n为系统中的并发进程数。
当n个进程共享m个互斥资源时,每个进程的最大需求是w。
下列情况下,系统会死锁的是______。
A.m=2,n=l,w=2 B.m=2,n=2,w=1C.m=4,n=3,W=2 D.m=4,n=2,w=335.用于解决进程间互斥的方法是______。
①信号量及wait、signal操作②加锁与解锁③信箱方式④消息缓冲方式⑤特权指令方式A.③、④和⑤B.①和②C.①和③D.②和⑤36.在操作系统中,每个进程具有独立性,进程之间又具有相互制约性。
对于任何两个并发进程,它们______。
A.必定无关B.必定相关C.可能相关D.可能相同二、简答题1.什么是线程?进程和线程的关系是什么?2.进程能自己将自己唤醒吗?进程能自己将自己撤销吗?3.父进程创建子进程之后,父子进程间的关系是什么?4.简述引进线程的好处。
5.当一个进程的父进程被撤销时,该进程是撤销好还是不撤销好?6.为什么说进程同步问题关系到QS的成败?同步机制应遵循的准则是什么?7.进程之间存在哪几种相互制约关系?各是什么原因引起的?下列活动分别属于哪种制约关系?(1)若干同学去图书馆借书。
(2)两队举行篮球比赛。
(3)流水线生产的各道工序。
(4)商品生产和消费。
8.高级调度和低级调度的主要任务是什么?为什么引入中级调度?9.在剥夺调度中,有哪些剥夺原则?10.引起进程调度的主要因素。
11.何为死锁?产生死锁的原因和必要条件是什么?比较三种解决死锁的方法?12.试比较说明进程和程序的区别有哪些?三、应用题1. 有一个理发师,一把理发椅和n把供等候理发的顾客坐的椅子。
如果没有顾客,则理发师便在理发椅子上睡觉;当一个顾客到来时,必须唤醒理发师,进行理发;如果理发师正在理发时,又有顾客来到,则如果有空椅子可坐,他就坐下来等,如果没有空椅子,他就离开。
为理发师和顾客各编一段程序描述他们的行为,要求不能带有竞争条件。
2. 计算进程PC和打印进程P01、P02共享一个单缓冲区,计算进程负责计算,并把计算结果放入单缓冲中;打印进程P01、P02则负责从单缓冲中取出计算结果进行打印,而且对每个计算结果,P01和P02都需分别打印一次。
请用记录型信号量描述上述进程间的同步关系。
3. 设有三个进程,输入进程(input)、计算进程(compute)和输出进程(output),它们通过共享两个缓冲区buf1和buf2协作完成任务。
如下图所示三个进程之间的合作关系如下:(1)输入进程使用put()函数把数据送到buf1,供计算进程调用calculate()函数计算;(2)计算进程每次调用get()函数从buf1取出已输入的可计算的数据进行计算,并把计算结果使用put()函数把数据送到buf2送入buf供输出进程打印;(3)输出进程调用get()函数把buf2中的数据使用print()函数输出。
定义合适的信号量,并用伪代码完成实现过程。
4. 设系统中有三类资源A、B和C,又设系统中有5个进程P1,P2,P3,P4和P5。
在T0(2)如果进程P5申请1个资源类A和1个资源类C,能否实施分配?为什么?5. 设有五道作业,它们的提交时间和运行时间见下表,试给出在如下表所示的三种调度算法下,作业的执行顺序,以及平均周转时间和带权平均周转时间:(1) 先来先服务调度算法;(2) 短作业优先调度算法;(3) 响应比高优先调度算法。
作业提交和运行时间表6. 假设系统有同类资源10个,供P,Q、R三个进程共享,P、Q、R所需资源总数分别为8、4、9,它们申请资源的次序和数量如下表所示。
按银行家算法为它们分配资源:(1) 写出执行完序号为6的申请时,各进程的状态和已占的资源数。
(2) 请估计系统是否会出现死锁,并简要说明理由。
1)执行完序号为6的申请时,各进程的状态和己占的资源数如表9-3所示:表 9-3 进程状态表P等待己占用资源4个Q就绪或运行己占用资源4个R等待己占用资源2个根据单项银行家算法,过程为:① R申请2个资源时,剩余资源可使各进程运行结束,所以这个分配是安全的,故将2个资源分给R。
②同理,P、Q分别申请4、2个资源时,剩余资源可使各进程运行结束,所以这个分配也是安全的,故将4、2个资源分配给P、Q。
③申请2个资源时,系统此刻剩余资源数为2,如果将这两个资源分配给P,系统就没有资源了。
这时的P、Q、R都不需要资源才可运行完,这样,P、Q、R将进入阻塞状态。
所以P申请的这两个资源不能分配。
④同理,接下来R欲申请1个资源也是不安全的分配,故不能分给。
⑤ Q申请2个资源时,假定操作系统分给它。
Q进程将运行结束,Q释放的资源又可使P运行结束;P运行结束,释放的资源又可使R运行结束。
所以这个分配是安全的,故将2个资源分给Q。
(2) 不会死锁,因为银行家算法在任何时候均保证至少有一个进程能得到所需的全部资源,这样,得到资源的进程及时归还资源供其他进程使用。
7.下面给出的两个进程互斥的算法是安全的吗?为什么?#define true;# define false;Int flag[2];flag[1]=flag[2]=false;enter-crtsec(i)int i;{While(flag[1-i])flag[i]=true;}feave-crtsec(i)Int i;{flag[i]=false;}process I;…Enter-crtsec(i);In critical section;Leave-crtsec(i);这种算法不是安全的。