操作系统第四章
- 格式:doc
- 大小:72.00 KB
- 文档页数:5
第四章一、问答题1、同步机制应遵循的准则是什么?2、死锁产生的4个必要条件是什么?它们是彼此独立的吗?3、简述死锁的定义和死锁产生的原因。
4、简述死锁定理和解除死锁的方法。
5、什么是安全状态?怎么判断系统是否处于安全状态?6、同步机制应遵循的准则是什么?7、死锁产生的4个必要条件是什么?它们是彼此独立的吗?二、计算题(共20分)1、当前系统中出现下述资源分配情况:利用银行家算法,试问如果进程P2提出资源请求Request(1,2,2,2)后,系统能否将资源分配给它?答:Request(1,2,2,2)<=(2,3,5,6)申请合法Request(1,2,2,2)<=Available,开始试探性分配,Available=(0,4,0,0) 测试系统是否安全:work= Available,finish=1没有进程的need满足<=work系统处于不安全状态,系统拒绝此次资源分配。
2、当前某系统有同类资源7个,进程P,Q所需资源总数分别为5,4。
它们向系统申请资源的次序和数量如表所示。
回答:问:采用死锁避免的方法进行资源分配,请你写出系统完成第3次分配后各进程占有资源量,在以后各次的申请中,哪次的申请要求可先得到满足?答:第1次申请,Q申请资源2,系统安全,分配第2次申请,P申请资源1,系统安全,分配第3次申请,Q申请资源1,系统安全,分配资源剩余3个,P占有1个资源,Q占有3个资源,第4次分配不安全,拒绝,第5分配系统安全,满足。
3、一个计算机系统有6个磁带驱动器和4个进程。
每个进程最多需要n个磁带驱动器。
问当n为什么值时,系统不会发生死锁?并说明理由答:n=2理由同第4题(进程资源最大需求-1)×进程数量+1≤系统资源数量4、若系统有某类资源m×n+1个,允许进程执行过程中动态申请该类资源,但在该系统上运行的每一个进程对该资源的占有量任何时刻都不会超过m+1个。
第四章存储器管理第0节存储管理概述一、存储器的层次结构1、在现代计算机系统中,存储器是信息处理的来源与归宿,占据重要位置。
但是,在现有技术条件下,任何一种存储装置,都无法从速度、容量、是否需要电源维持等多方面,同时满足用户的需求。
实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。
2、各种存储器•寄存器、高速缓存Cache:少量的、非常快速、昂贵、需要电源维持、CPU可直接访问;•内存RAM:若干(千)兆字节、中等速度、中等价格、需要电源维持、CPU可直接访问;•磁盘高速缓存:存在于主存中;•磁盘:数千兆或数万兆字节、低速、价廉、不需要电源维持、CPU 不可直接访问;由操作系统协调这些存储器的使用。
二、存储管理的目的1、尽可能地方便用户;提高主存储器的使用效率,使主存储器在成本、速度和规模之间获得较好的权衡。
(注意cpu和主存储器,这两类资源管理的区别)2、存储管理的主要功能:•地址重定位•主存空间的分配与回收•主存空间的保护和共享•主存空间的扩充三、逻辑地址与物理地址1、逻辑地址(相对地址,虚地址):用户源程序经过编译/汇编、链接后,程序内每条指令、每个数据等信息,都会生成自己的地址。
●一个用户程序的所有逻辑地址组成这个程序的逻辑地址空间(也称地址空间)。
这个空间是以0为基址、线性或多维编址的。
2、物理地址(绝对地址,实地址):是一个实际内存单元(字节)的地址。
●计算机内所有内存单元的物理地址组成系统的物理地址空间,它是从0开始的、是一维的;●将用户程序被装进内存,一个程序所占有的所有内存单元的物理地址组成该程序的物理地址空间(也称存储空间)。
四、地址映射(变换、重定位)当程序被装进内存时,通常每个信息的逻辑地址和它的物理地址是不一致的,需要把逻辑地址转换为对应的物理地址----地址映射;地址映射分静态和动态两种方式。
1、静态地址重定位是程序装入时集中一次进行的地址变换计算。
物理地址= 重定位的首地址+ 逻辑地址•优点:简单,不需要硬件支持;•缺点:一个作业必须占据连续的存储空间;装入内存的作业一般不再移动;不能实现虚拟存储。
第四章一、单项选择题1.为了根据进程的紧迫性做进程调度,应采用(B )。
A.先来先服务调度算法 B. 优先数调度算法 C.时间片轮转调度法 D.分级调度算法2.采用时间片轮转法调度是为了( A)。
A.多个终端都能得到系统的及时响应 B.先来先服务C. 优先数高的进程先使用处理器 D.紧急事件优先处理3.采用优先数调度算法时,对那些具有相同优先数的进程再按( A )的次序分配处理器。
A 先来先服务 B. 时间片轮转 C. 运行时间长短 D.使用外围设备多少4. 当一进程运行时,系统强行将其撤下,让另一个更高优先数的进程占用处理器,这种调度方式是( B )。
A. 非抢占方式B.抢占方式 C. 中断方式 D.查询方式5.( B)必定会引起进程切换。
A.一个进程被创建后进入就绪态B.一个进程从运行态变成阻塞态C.一个进程从阻塞态变成就绪态6.( B)只考虑用户估计的计算机时间,可能使计算时间长的作业等待太久。
A.先来先服务算法B.计算时间短的作业优先算法C.响应比最高者优先算法 D.优先数算法7.先来先服务算法以( A )去选作业,可能会使计算时间短的作业等待时间过长。
A.进入的先后次序 B.计算时间的长短 C.响应比的高低 D.优先数的大小8.可以证明,采用( C )能使平均等待时间最小。
A.优先数调度算法 B.均衡调度算法C.计算时间短的作业优先算法 D.响应比最高者优先算法9.在进行作业调度时.要想兼顾作业等待时间和计算时间,应选取(D )。
A均衡调度算法 B.优先数调度算法C.先来先服务算法D.响应比最高者优先算法10.作业调度算法提到的响应比是指( B )。
A.作业计算时间与等待时间之比B.作业等待时间与计算时间之比C.系统调度时间与作业等待时间之比 D.作业等待时间与系统调度时间之比11.作业调度选择一个作业装入主存后,该作业能否占用处理器必须由( D )来决定。
A.设备管理 B.作业控制 C.驱动调度D.进程调度12.系统出现死锁的根本原因是( D )。
第四章线程1. 引入线程的原因①创建一个进程花费的时间少②个线程的切换花费的时间少③同一进程内的线程共享内存和文件,通信无需调用内核④适合多处理机系统2. 定义:轻量级进程(lightweight process LWP)是进程中的一个运行实体,一个执行单元,是一个CPU调度单位3.线程组成:PC TCB(线程控制块) 栈4.线程调度:Loop {RunThread();ChooseNextThread();SaveStateOfCPU (curTCB); 系统耗费调度延迟LoadStateOfCPU (newTCB);}何时调度:内部:①I/O阻塞②等待信号或其他线程③线程执行field()外部:中断定时器5、内核级线程依赖于OS核心,由内核的内部需求进行创建和撤销,执行一个指定的函数。
• 内核维护进程和线程的上下文信息;• 线程切换由内核完成;• 一个线程发起系统调用而阻塞,不会影响其他线程的运行;• 时间片分配给线程,所以多线程的进程获得更多CPU时间。
❉内核线程的创建和管理要慢于用户线程的创建和管理❤优点:①对于多处理器,内核可以同时调度同一进程的多个线程②阻塞是在线程一级完成③核心例程是多线程的❤缺点:同一进程内的线程切换调用内核,导致速度下降6、用户级线程不依赖于OS核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。
如:数据库系统informix,图形处理AldusPageMaker。
调度由应用软件内部进行,通常采用非抢先式和更简单的规则,也无需用户态/核心态切换,所以速度特别快。
一个线程发起系统调用而阻塞,则整个进程在等待。
时间片分配给进程,多线程则每个线程就慢。
•用户线程的维护由应用进程完成;• 内核不了解用户线程的存在;• 用户线程切换不需要内核特权;• 用户线程调度算法可针对应用优化;❤优点:①线程切换不用调用内核②调度是应用程序特定的,可以选择最好的算法③可以运行在任何操作系统上(只需要线程库)❤缺点:①一个线程发起系统调用而阻塞,则整个进程在等待②内核只将处理器分配给进程,同一进程中的两个线程不能同时运行于两个处理器上7、轻量级线程(LWP)是一种由内核支持的用户线程。
第3章进程描述和控制复习题:什么是指令跟踪?答:指令跟踪是指为该进程而执行的指令序列。
通常那些事件会导致创建一个进程?答:新的批处理作业;交互登录;操作系统因为提供一项服务而创建;由现有的进程派生。
(详情请参考表3.1)对于图3.6中的进程模型,请简单定义每个状态。
答:运行态:该进程正在执行。
就绪态:进程做好了准备,只要有机会就开始执行。
阻塞态:进程在某些事件发生前不能执行,如I/O操作完成。
新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中。
退出态:操作系统从可执行进程组中释放出的进程,或者是因为它自身停止了,或者是因为某种原因被取消。
抢占一个进程是什么意思?答:处理器为了执行另外的进程而终止当前正在执行的进程,这就叫进程抢占。
什么是交换,其目的是什么?答:交换是指把主存中某个进程的一部分或者全部内容转移到磁盘。
当主存中没有处于就绪态的进程时,操作系统就把一个阻塞的进程换出到磁盘中的挂起队列,从而使另一个进程可以进入主存执行。
为什么图3.9(b)中有两个阻塞态?答:有两个独立的概念:进程是否在等待一个事件(阻塞与否)以及进程是否已经被换出主存(挂起与否)。
为适应这种2*2的组合,需要两个阻塞态和两个挂起态。
列出挂起态进程的4个特点。
答:1.进程不能立即执行。
2.进程可能是或不是正在等待一个事件。
如果是,阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即被执行。
3.为了阻止进程执行,可以通过代理把这个进程置于挂起态,代理可以是进程自己,也可以是父进程或操作系统。
4.除非代理显式地命令系统进行状态转换,否则进程无法从这个状态中转移。
对于哪类实体,操作系统为了管理它而维护其信息表?答:内存、I/O、文件和进程。
列出进程控制块中的三类信息。
答:进程标识,处理器状态信息,进程控制信息。
为什么需要两种模式(用户模式和内核模式)?答:用户模式下可以执行的指令和访问的内存区域都受到限制。
这是为了防止操作系统受到破坏或者修改。
操作系统第4章习题带答案第四章⼀、问答题1、同步机制应遵循的准则是什么?2、死锁产⽣的4个必要条件是什么?它们是彼此独⽴的吗?3、简述死锁的定义和死锁产⽣的原因。
4、简述死锁定理和解除死锁的⽅法。
5、什么是安全状态?怎么判断系统是否处于安全状态?6、同步机制应遵循的准则是什么?7、死锁产⽣的4个必要条件是什么?它们是彼此独⽴的吗?⼆、计算题(共20分)1、当前系统中出现下述资源分配情况:利⽤银⾏家算法,试问如果进程P2提出资源请求Request(1,2,2,2)后,系统能否将资源分配给它?答:Request(1,2,2,2)<=(2,3,5,6)申请合法Request(1,2,2,2)<=Available,开始试探性分配,Available=(0,4,0,0) 测试系统是否安全:work= Available,finish=1没有进程的need满⾜<=work系统处于不安全状态,系统拒绝此次资源分配。
2、当前某系统有同类资源7个,进程P,Q所需资源总数分别为5,4。
它们向系统申请资源的次序和数量如表所⽰。
回答:问:采⽤死锁避免的⽅法进⾏资源分配,请你写出系统完成第3次分配后各进程占有资源量,在以后各次的申请中,哪次的申请要求可先得到满⾜?答:第1次申请,Q申请资源2,系统安全,分配第2次申请,P申请资源1,系统安全,分配第3次申请,Q申请资源1,系统安全,分配资源剩余3个,P占有1个资源,Q占有3个资源,第4次分配不安全,拒绝,第5分配系统安全,满⾜。
3、⼀个计算机系统有6个磁带驱动器和4个进程。
每个进程最多需要n个磁带驱动器。
问当n为什么值时,系统不会发⽣死锁?并说明理由答:n=2理由同第4题(进程资源最⼤需求-1)×进程数量+1≤系统资源数量4、若系统有某类资源m×n+1个,允许进程执⾏过程中动态申请该类资源,但在该系统上运⾏的每⼀个进程对该资源的占有量任何时刻都不会超过m+1个。
操作系统第四章习题及答案第四章进程管理1、⼀个由3个页⾯每页有2048个字节组成的程序,将它装⼊⼀个8个物理块组成的存储器中,装⼊的情况如下表所⽰:给出下列逻辑地址,请计算出2617对应的物理地址:2、某请求页式存储管理,允许⽤户编程空间为32个页⾯(每页1KB),主存为16KB, 如有⼀个⽤户程序有10页长,且某时刻该⽤户页⾯映射表如表所⽰。
如果程序执⾏时遇到以下的虚地址:0AC5H ,1AC5H 试计算对应的物理地址。
3、假设某分页系统中,主存储器的容量为1MB ,被分为256块,回答:1)主存地址应该⽤位来表⽰。
2)作业每⼀页的长度为;逻辑地址中的页内地址应该为位。
4、在段式管理系统中,段表为求下⾯逻辑地址对应的物理地址。
12 7 1 4 0 块号页号 95 1938 4 590 13503 90 100 220 2350 1 500 210 0 段长内存起始地址段号(1,10);(2,500);(3,400);(5,32)5、在⼀分页存储管理系统中,逻辑地址长度为16位,页⾯⼤⼩为4096字节,分别计算逻辑地址14AAH,235BH,3B4CH,78DDH所对应的物理地址,并指出可能发⽣何种中断?(8分)注:1表⽰可寻址,0表⽰在外存。
6、在⼀个请求分页系统中,假定系统分配给作业的物理块数为3,并且此作业的页⾯⾛向为2、3、2、1、5、2、4、5、3、2、5、2。
试⽤LRU算法计算出程序访问过程所发⽣的缺页次数和被替换的页⾯序列。
答案:1、P=int(2617/2048)=1 d=569物理地址=4*2048+569=87612、0AC5H的页号是2,对应的物理页号是4,所以物理地址应该为12C5H,1AC5H的页号是6,超过了页表的范围,所以该地址⾮法,产⽣越界中断3、假设某分页系统中,主存储器的容量为1MB,被分为256块,回答:1)主存地址应该⽤ 20 位来表⽰。
2)作业每⼀页的长度为 2048 ;逻辑地址中的页内地址应该为 12 位。
第四章处理机调度与死锁4.1 知识点汇总1、处理机调度级别⑴调度:选出待分派的作业或进程⑵处理机调度:分配处理机⑶三级调度:高级调度(作业调度)、中级调度(内存对换)、低级调度(进程调度)2、作业状态⑴作业状态分为四种:提交、后备、执行和完成。
⑵作业状态变迁图:图4-1 作业状态及变迁3、作业调度和调度的功能⑴. 作业调度的任务后备状态→执行状态执行状态→完成状态⑵作业调度的功能①记录系统中各个作业的情况②按照某种调度算法从后备作业队列中挑选作业③为选中的作业分配内存和外设等资源④为选中的作业建立相应的进程⑤作业结束后进行善后处理工作4、进程调度和调度的功能1). 进程调度:后备状态→执行状态2). 进程调度时机:任务完成后、等待资源时、运行到时了、发现重调标志3). 进程调度的功能:保存现场、挑选进程、恢复现场5、两级调度模型 作业调度和进程调度的区别6、评价调度算法的指标调度性能评价准则:CPU利用率、吞吐量、周转时间、就绪等待时间和响应时间(1)吞吐量:单位时间内CPU完成作业的数量(2)周转时间:1) 周转时间=完成时刻-提交时刻2) 平均周转时间=周转时间/n3) 带权周转时间=周转时间/实际运行时间4) 平均带权周转时间=带权周转时间/n7、作业与进程调度算法(1)先来先服务(FCFS)调度算法的实现思想:按作业(进程)到来的先后次序进行调度,即先来的先得到运行。
用于作业调度:从作业对列(按时间先后为序)中选择队头的一个或几个作业运行。
用于进程调度:从就绪队列中选择一个最先进入该队列的进程投入运行。
例如设有三个作业,编号为1,2,3。
各作业分别对应一个进程。
各作业依次到达,相差一个时间单位。
①图示出采用FCFS方式调度时这三个作业的执行顺序②算出各作业的周转时间和带权周转时间(2)时间片轮转(RR)调度算法的实现思想:系统把所有就绪进程按先进先出的原则排成一个队列。
新来的进程加到就绪队列末尾。
操作系统第四章课后答案第四章存储器管理1. 为什么要配置层次式存储器?这是因为:a.设置多个存储器可以使存储器两端的硬件能并行工作。
b.采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。
c.在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。
增加CPU中寄存器的数量,也可大大缓解对存储器的压力。
2. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?将程序装入内存可采用的方式有:绝对装入方式、重定位装入方式、动态运行时装入方式;绝对装入方式适用于单道程序环境中,重定位装入方式和动态运行时装入方式适用于多道程序环境中。
3. 何为静态链接?何谓装入时动态链接和运行时动态链接?a.静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。
b.装入时动态链接是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的一种链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找相应的外部目标模块,把它装入内存中,并修改目标模块中的相对地址。
c.运行时动态链接是将对某些模块的链接推迟到程序执行时才进行链接,也就是,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。
4. 在进行程序链接时,应完成哪些工作?a.对相对地址进行修改b.变换外部调用符号6. 为什么要引入动态重定位?如何实现?a.程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。
引入重定位的目的就是为了满足程序的这种需要。
b.要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。
程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。
第四章1.为什么说多级反馈队列调度算法能较好地满足各类用户的需要(来自百度):答案一:多级反馈队列调度算法能较好地满足各种类型用户的需要。
对终端型作业用户而言,由于他们所提交的大多属于交互型作业,作业通常比较短小,系统只要能使这些作业在第1级队列所规定的时间片内完成,便可使终端型作业用户感到满意;对于短批处理作业用户而言,他们的作业开始时像终端型作业一样,如果仅在第1级队列中执行一个时间片即可完成,便可以获得与终端型作业一样的响应时间,对于稍长的作业,通常也只需要在第2级队列和第3级队列中各执行一个时间片即可完成,其周转时间仍然较短;对于长批处理作业用户而言,它们的长作业将依次在第1,2,…,直到第n级队列中运行,然后再按时间片轮转方式运行,用户不必担心其作业长期得不到处理。
答案二:(惠州学院操作系统课后题)与答案一基本相似,可看做精简版。
答:(1)终端型作业用户提交的作业大多属于较小的交互型作业,系统只要使这些作业在第一队列规定的时间片内完成,终端作业用户就会感到满足。
(2)短批处理作业用户,开始时像终端型作业一样,如果在第一队列中执行一个时间片段即可完成,便可获得与终端作业一样的响应时间。
对于稍长作业,通常只需在第二和第三队列各执行一时间片即可完成,其周转时间仍然较短。
(3)长批处理作业,它将依次在第1 ,2 ,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。
所以,多级反馈队列调度算法能满足多用户需求。
2.分别对以上两个进程集合,计算使用先来先服务(FCFS)、时间片轮转法(时间片q=1)、短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第1个队列的时间片为1,第i(i<1)个队列的时间片q=2(i-1))算法进行CPU调度,请给出各进程的完成时间、周转时间、带权周转时间,及所有进程的平均周转时间和平均带权周转时间。
第四章
一、问答题
1、什么叫临界资源?什么叫临界区?对临界区的使用应符合哪些规则?(同步机制应遵循的准则是什么?)
2、死锁产生的4个必要条件是什么?它们是彼此独立的吗?
3、何谓死锁?为什么将所有资源按类型赋予不同的序号,并规定所有进程按资源序号递增的顺序申请资源后,系统便不会产生死锁?
4、什么是安全状态?怎么判断系统是否处于安全状态?
5、简述死锁定理和解除死锁的方法。
二、计算和证明
1、当前系统中出现下述资源分配情况:
利用银行家算法,试问如果进程P2提出资源请求Request(1,2,2,2)后,系统能否将资源分配给它?
2、若系统有某类资源m×n+1个,允许进程执行过程中动态申请该类资源,但在该系统上运行的每一个进程对该资源的占有量任何时刻都不会超过m+1个。
当进程申请资源时只要有资源尚未分配完则满足它的申请,但用限制系统中可同时执行的进程数来防止发生死锁,你认为进程调度允许同时执行的最大进程数应该是多少?并说明原因。
3、n个进程共享某种资源R,该资源共有m个,每个进程一次一个地申请或释放资源。
假设每个进程对该资源的最大需求量均小于m,且各进程最大需求量之和小于m+n,试证明在这个系统中不可能发生死锁。
4、当前某系统有同类资源7个,进程P,Q所需资源总数分别为5,4。
它们向系统申请资源的次序和数量如表所示。
回答:
问:采用死锁避免的方法进行资源分配,请你写出系统完成第3次分配后各进程占有资源量,在以后各次的申请中,哪次的申请要求可先得到满足?
5、一个计算机系统有6个磁带驱动器4个进程。
每个进程最多需要n个磁带驱动器。
问当n为什么值时,系统不会发生死锁?并说明理由
6、n个进程共享某种资源R,该资源共有m个可分配单位,每个进程一次一个地申请或释放资源单位。
假设每个进程对该资源的最大需求量均小于m,问各进程最大需求量之和至少小于多少,系统不会发生死锁,并证明。
7. 考虑某一系统,它有4类资源R1,R2,R3,R4,有5个并发进程P0,P1,P2,P3,P4。
请按照银行家算法回答下列问题;
⑴各进程的最大资源请求,已分配的资源矩阵和当前资源剩余向量如下图所示,计算各进程的需求向量组成的矩阵。
⑵系统当前是处于安全状态吗?
⑶当进程P2申请的资源分别为(0,3,2,0)时,系统能立即满足吗?
8、假定系统有4个同类资源和3个进程,进程每次只申请或释放一个资源。
每个进程最大资源需求量为2。
请问,这个系统为什么不会发生死锁?
9、考虑这样一种资源分配策略:对资源的申请和释放可以在任何时刻进行。
如果一个进程的资源得不到满足,则考查所有由于等待资源而被阻塞的进程,如果它们有申请进程所需要的资源,则把这些资源取出分给申请进程。
例如,考虑一个有3类资源的系统,Avai1ab1e=(4,2,2)。
进程A申请(2,2,1),可以满足;进程B申请(1,0,1),可以满足,若A再申请(0,0,1),则被阻塞(无资源可分)。
此时,若C申请(2,0,0),它可以分得剩余资源(1,0,0),并从A已分得的资源中获得一个资源,于是,进程A的分配向量变成:Available=(1,2,1),而需求向量变成:Need=(1,0,1)。
⑴这种分配方式会导致死锁吗?若会,举一个例子;若不会,说明死锁的哪一个必要条件不成立。
⑵这种分配方式会导致某些进程的无限等待吗?
10、.有3个进程P1、P2和P3并发执行。
进程P1需使用资源r3和r1,进程P2需使用资源r1和r2,进程P3需使用资源r2和r3。
⑴若对资源分配不加限制,会发生什么情况,为什么?
⑵为保证进程能执行到结束,应采用怎样的资源分配策略?
11、设有A B、C三个进程,它们共享十个资源,每个进程最大需求量分别为4,7,8,它们对资源请求的序列如下表:(8分)
⑴请画出执行完序号4时的资源分配矩阵;
⑵为使系统不发生死锁,执行完序号6时,3个进程各处于什么状态,获得多少
同类资源?
⑶按照上题时的状态,系统会发生死锁吗?为什么?
三、综合题
1、如果有三个进程R、W1、W2共享一个缓冲器B,而B中每次只能存放一个数。
当缓冲器中无数时,进程R可以将从输入设备上读入的数存放到缓冲器中。
若存放到缓冲器中的是奇数,则允许进程W1将其取出打印;若存放到缓冲器中的是偶数,则允许进程W2将其取出打印。
同时规定:进程R必须等缓冲区中的数被取出打印后才能再存放一个数;进程W1或W2对每次存入缓冲器的数只能打印一次;W1和W2都不能从空缓冲中取数。
写出这三个并发进程能正确工作的程序。
2、设计一种可以避免死锁的资源分配算法,要求写明数据结构和相应方案或算法。
3、写一个管程,用于实现读者——写着问题,要求写者优先。
4、生产者消费者问题
5、请设计检测资源分配时系统是否安全的安全检测方案。
6、有一个仓库,可以存放A和B两种产品,但要求:1)每次只能存入一种产品(A或B);2)-N<A产品数量—B产品数量<M。
其中,N和M是正整数。
试用同步算法描述产品A与产品B的入库过程。
7、在一个系统中,不采用死锁避免和预防措施,但当死锁发生后需要能够检测出来,请设计一个可行的死锁检测方案。
8、一个数据文件或记录(统称数据对象),可被多个进程共享。
有些读进程要求读,而另一些写进程对数据对象进行写或修改。
允许多个写进程同时读一个共享对象,决不允许一个写进程和其他读进程或写进程同时访问共享对象。
请用信号量或管程为工具,实现读写进程并发的正确管理。
9、假定有一个信箱可存放N封信,当信箱不满时发信者可把信件送入信箱;当信箱中有信时收信者可从信箱中取信。
用指针R,K分别表示可存信和取信的位置,请用信号量来管理这个信箱,使发信者和收信者能正确工作。
10、考虑三个吸烟者进程和一个经销商进程的系统。
每个吸烟者连续不断地做烟卷并抽他做好的烟卷,做一支烟卷需要烟草、纸和火柴三种原料。
这三个吸烟者
分别掌握有烟草、纸和火柴。
经销商源源不断地提供上述三种原料,但他只将其中的两种原料放在桌上,具有另一种原料的吸烟者就可以做烟卷并抽烟,且在做完后给经销商发信号,然后经销商再拿出两种原料放在桌上,如此反复。
试设计一个同步算法来描述他们的活动。
11、现有四个进程R1、R2、W1、W2,它们共享可以存放一个数的缓冲器B。
进程R1每次把来自键盘的一个数存入缓冲器B中,供进程W1打印输出;进程R2每次从磁盘上读一个数存放到缓冲器B中,供进程W2打印输出。
为防止数据的丢失和重复打印,问怎样用信号量操作来协调这四个进程的并发执行。
12、信号量方法控制进程的执行顺序。
13、a,b两点之间是一段东西向的单行车道,现要设计一个自动管理系统,管理规则如下:当ab之间有车辆在行驶时同方向的车可以同时驶入ab段,但另一方向的车必须在ab段外等待;当ab之间无车辆在行驶时,到达a点(或b点)的车辆可以进入ab段,但不能从a点和b点同时驶入,当某方向在ab段行驶的车辆驶出了ab段且暂无车辆进入ab段时,应让另一方向等待的车辆进入ab段行驶。
请用信号量机制为工具,对ab段实现正确管理以保证行驶安全。
14、哲学家就餐问题
15、某寺庙有小和尚和老和尚各若干人,水缸一只,由小和尚提水入缸给老和尚饮用。
水缸可容水10桶,水取自同一口水井中。
水井径窄,每次仅能容一只水桶取水,水桶总数为3个。
若每次入、取水仅为1桶,而且不可同时进行。
试用一种同步工具写出小和尚和老和尚的活动过程。