您好,欢迎访问三七文档
1、解:因为打印机是一种临界资源,所以这三个进程只能互斥使用这台打印机,即一个用户的计算结果打印完之后,另一个用户再打印。设三个进程分别为A、B和C。设一个互斥信号量mutex,其初值为1。A进程B进程C进程P(mutex)P(mutex)P(mutex)使用打印机使用打印机使用打印机V(mutex)V(mutex)V(mutex)2、解:①这个算法不对。因为A、B两进程共用一个缓冲区Q,如果A先运行,且信息数量足够多,那么缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能从Q中读出完整的信息。改正:A、B两进程要同步使用缓冲区Q。为此,设立两个信号量:empty表示缓冲区Q为空,初值为1;full表示缓冲区Q为满,初值为0。算法框图如图1所示。②这个算法不对。因为A、B两个进程是并发的,它们共享一个临界资源,所以二者应互斥地使用该临界资源,在进入临界区时不存在A先B后的时序关系,而是哪个进程先到一步就先进入自己的临界区。改正:A、B两个进程应互斥地进入临界区。为此,设立一个信号量:互斥信号量mutex,其初值为1。算法框图如图2所示。A进程B进程A进程B进程P(empty)P(full)P(mutex)P(mutex)向Q写入信息从Q中读出信息临界区代码CSa临界区代码CSbV(full)V(empty)V(mutex)V(mutex)图1图23、解:①系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。②R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:B1中信息放满后C进程才可从中取出它们,且B2被取空后C进程才可将加工结果送入其中;P进程受C进程的约束:B2中信息放满后P进程才可从中取出它们,进行打印。③信号量含义及初值:B1full——缓冲区B1满,初值为0;B1empty——缓冲区B1空,初值为0;B2full——缓冲区B2满,初值为0;B2empty——缓冲区B2空,初值为0;4、解:作业周转时间等待时间JOB173JOB253JOB342所有作业的平均周转时间5.335、解:(1)非抢占式优先级算法作业1作业3作业2||||t101317(2)和(3)作业到达时间运行时间完成时间周转时间带权周转时间101010101.021417164.032313113.7平均周转时间12.3平均带权周转时间2.96、解:480K+154。7、解:逻辑地址0A5C(H)所对应的二进制表示形式是:0000101001011100所对应的页号是:2(十进制)查页表,得到物理块号是:11(十进制)拼接后,得到物理地址:2E5C(H)8、解:FIFO淘汰算法:内存块为3时,缺页中断(或称缺页次数、页面故障)为9;内存块为4时,缺页中断为10。(这似乎是一个奇怪的现象,同时也告诉我们,操作系统是一个复杂的机构,直观是靠不住的!)LRU淘汰算法:内存块为3时,缺页中断为10;内存块为4时,缺页中断为8。9、答某航空公司为两旅行社a和b的顾客预订飞机票,飞机票是互斥内容。假设为a订完了机票,b就不能再订票。10、答一个生产者,一个消费者和一个产品之间关系是典型的进程同步问题。设信号量s为仓库内产品,p-v操作配对进行缺一不可。生产者进程将产品放入仓库后通知消费者可用;消费者进程在得知仓库有产品时取走,然后告诉生产者可继续生产。11、解UNIX系统中,进程的调度采用多级反馈队列轮转调度方式。引起进程调度的时机有:(1)当前进程的时间片用完,由核心将当前进程放入下一级的优先级队列的末尾,并调度另一进程运行;(2)在当前进程执行了sleep例程,进入睡眠状态而放弃处理机时;(3)进程通过核心执行了自我终止的系统调用exit时;(4)在执行完系统调用而返回到用户态时,如果此时系统中已出现了更高优先级的进程在等待运行,此时核心将剥夺当前进程的执行;(5)当核心完成中断处理,控制被返回到用户态而要执行原进程时,若有更高优先级的进程在等待运行,等等。12解:当用户要求对一个文件实施多次读/写或其他操作时,每次都要从检索目录开始。为了避免多次重复地检索目录,在大多数OS中都引入了“打开”(open)这一文件系统调用,当用户第一次请求对某文件进行操作时,先利用open系统调用将该文件打开。在UNIX文件系统,打开文件/home/user01/myfile的过程四步:(1)检索目录核心先调用检索目录过程namei从根目录或从当前目录开始,沿目录树查找指名文件的索引结点。在查找时,利用线性检索法,将文件路径名中的各分量名,与相应目录文件中的文件名逐一进行比较。若未找到指名文件,或者该文件不允许存取,便做出错处理;否则,进入第二步。(2)分配内在索引结点如果该文件已被其他用户打开,此时只需对在第一步中所找到的i结点,执行其引用计数加1的操作;否则,应为被打开文件分配一内存i结点,并调用磁盘读过程将磁盘i结点的内容拷贝到内存i结点中,并设置i.count为1。(3)分配文件表这是指为已打标开的文件分配一个文件表项,使文件表项中的f.node指向内存索引结点。通常还将读写指针f.offset置为0,以表示从头开始读/写此文件;置读写标志f.flag,及将文件的引用计数f.count加1,并记入该表项的首址fp。(4)分配用户文件描述表项在用户文件描述表中取得一空表项。若成功,便将fp填入该表项中,并把该表项的序号fd作为文件描述符,写入调用进程的U区中。13解:利用安全算法对该时刻资源分配情况进行分析,如下图所示:WorkNeedAllocationWork+AllocationFinishP01520000000121532trueP21532100213542886trueP3288600200632214118trueP4214118064200142141212trueP12141212075010003141212true由以上分析可知,在该时刻存在着一个安全序列{P0,P2,P3,P4,P1},故系统是安全的。如果进程P1要求(0,4,2,0),系统假定可为P1分配资源,由此形成的资源变化情况如图示:已分配资源矩阵需求资源矩阵最多资源矩阵可用资源向量P11420033017501100利用安全算法对该时刻资源分配情况进行分析,如下图所示:WorkNeedAllocationWork+AllocationFinishP01100000000121112trueP21112100213542466trueP324660020063221098trueP421098064200142101012trueP12101012033014203141212true由以上分析可知,可找到一个安全序列{P0,P2,P3,P4,P1},故系统能立即满足进程的要求。14、解:因为分页磁盘占95%,主要是考虑页表的存储问题,挂起某个进程,可扩大进程的存储空间;更换更大容量的分页磁盘,可增加页表的分页速度,从而改善CPU的利用率。所以应选择(2)和(4)。15、解:0.85*1μ+0.15*2μ=1.15μs16、解:varrmutex,wmutex:semaphore:=1,1;readcount:integer:=0;writer:beginrepeatwait(wmutex);performwriteoperation;signal(wmutex);untilfalse;endreader:beginrepeatwait(rmutex);ifreadcount=0thenwait(wmutex);readcount:=readcount+1;signal(rmutex);┇Performreadoperation;┇wait(rmutex);readcount:=readcount-1;ifreadcount=0thensignal(wmutex);signal(rmutex);untilfalse;end17、答:核心态是CPU运行操作系统代码。用户态是CPU运行用户程序代码的状态。通过系统调用、Trap、中断可以使得系统从用户态到核心态。特权指令指的是只能由操作系统而不是用户调用的指令。(1)是。(2)否(3)否(4)是(5)是(6)否18、答:经过三次中断后,在第4个队列中终止运行19、答:因为一张页表只能包含1024/4=256个页表项。而页的大小为210,所以共需要32-10=22位来表示页号。而每一级页表只能处理22位中的8位,所以共需要3级。有两级页表有28个页表项,另一级只有26个页表项20、答:18位21答:(a)3(b)229/28=221,因此为21页(c)8(d)3+21+8=3222、解:(1)FIFO算法总是淘汰最先进入内存页面,即选择在内存中驻留时间最长的页予以淘汰。算法如图所示:01420265123212621362000222555333211100011166644466622211缺页率=13/20=65%(2)LRU算法是最近最久未使用的页面予以淘汰。算法如图所示:01420265123212621362000222215363331110055111112444666222266缺页率=14/20=70%23、解:200ns内得到满足的访问占用全部访问的95%。5%的访问造成缺页,其中40%的需要7ms。因此,5%×40%=2%的访问需要7ms。类似地,5%×60%=3%的访问需要15ms。把所有的时间转换为us,结果如下:有效访问时间=0.95×0.2+0.02×7000+0.03×15000有效访问时间=590.19us24、答:(19456*16*1/5400+(19456-1)*2=3498ms25、答:(a)2182(b)1023(c)172426、答:如果电源突然切断,存储在磁盘上的文件系统可能还处在一个不一致的状态。例如,将空闲表中的一个块增加到一个文件的写操作结束之后将发生什么事情?假设磁盘中的文件的信息已经更新,记录了刚增加的块。但是假设常用的空闲表的信息被高速缓存存在主存中。虽然在主存中空闲表数据不再指向新增的块,但是磁盘上的空闲表信息仍然指向该块。如果系统的电源突然切断,当重启的时候,该块将既分配给了文件,又被包括在空闲表中。27、答:210×(10+28+216+254)=17247250432字节28、解:所谓死琐,是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。死锁预防的措施有:(1)屏弃“请求和保持”条件,优点是简单、易于实现且很安全;(2)屏弃“不剥夺”条件,在采用这种方法预防死锁时,进程是在需要资源时才提出请求。这样,一个已经保持了某些资源的进程,当它再提出新的资源要求而不能立即得到满足时,必须释放它已经保持的所有资源,待以后需要时再重新申请。这种预防死锁方法,实现起来比较复杂,且要付出很大代价。(3)摒弃“环路等待”条件,在这种方法中规定,系统将所有的资源按类型进行线形排队,并赋予不同的序号。这种预防死锁的策略与前两种策略比较,其资源利用率和系统吞吐量,都有较明显的改善。29、解:(1)执行完前3次申请后,尚有2个资源空闲,若第4次P1再申请1个资源,则还有1个资源空闲,这个资源无论分给那个进程都会使系统进入不安全状态。若不执行第4次而执行第5次申请,则没有空闲资源,系统也会进入不安全状态。(2)执行完前3次申请后,再执行完序号为6的申请,则进程P1资源数为4,P2资源数为6,P3资源数为2,这样,P2有足够的资源而完成,可释放6个资源;于是可用资源增至6个;以后可将4个资源分配给进程P1,使之运行,待P1完成后,将释放8个资源,P3便能获得足够的资源,从而使P1、P2、P3每个进程都能
本文标题:操作系统应用题答案
链接地址:https://www.777doc.com/doc-2454506 .html