《操作系统》模拟题
发布时间:2023-11-27 07:11:27浏览次数:39《操作系统》模拟题1.试说明操作系统与硬件、其他系统软件以及用户之间的关系。答:操作系统是覆盖在硬件上的第一层软件,它管理计算机的硬件和软件资源,并向用户提供良好的界面。操作系统与硬件紧密相关,它直接管理着硬件资源,为用户完成所有与硬件相关的操作,从而极大地方便了用户对硬件资源的使用,并提高了硬件资源的利用率。操作系统是一种特殊的系统软件,其他系统软件运行在操作系统基础之上,可获得操作系统提供的大量服务,也就是说,操作系统是其他系统软件和硬件的接口。而一般用户使用计算机除了需要操作系统支持外,还需要用到大量的其他系统软件和应用软件,以使其工作更加方便和高效。2. 某工厂有一个可以存放设备的仓库,总共有 8 个位置可以存放 8 台设备。生产部门生产的每一台设备都必须入库。销售部门可以从仓库提出设备供应客户。设备的出库和入库都必须借助运输工具。现在只有一套运输工具,每次只能运输一台设备,系统共使用三个信号量,S 代表互斥信号量,表示运输工具;S1和 S2 均为同步信号量,S1 表示仓库中可以存放设备的空闲位置,S2 表示仓库中已经被设备占用了的位置。请设计一个能协调工作的自动调度管理系统,并利用记录型信号量写出解决此问题的程序代码,请注明信号量的初值。答:Var S,S1,S2:semaphore:=1,8,0; buer:array[0,…,n-1] of item;parbeginA:beginrepeat 生产设备;
p(S1);p(S);把设备送入仓库v (S);v(S2);until false;endB:beginrepeat p(S2);p(S);从仓库取出一台设备v (S);v(S1); 把设备销售给客户until false; end parend end3. 简述产生死锁的四个必要条件是什么?答:产生死锁的四个必要条件是:(1)互斥条件。进程要求对所分配的资源进行排他性控制,即在一段时间内某资源仅为一进程所占有。(2)请求和保持条件。当进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不剥夺条件。进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完后由自己释放。(4)环路等待条件。在发生死锁时,必然存在一个进程—资源的环形链。4.生产者-消费者(Producer-Consumer)问题是著名的进程同步问题,它描述
一组生产者向一组消费者提供消息的过程。生产者和消费者共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。假设缓冲池中有 n 个缓冲区,每个缓冲区存放一个消息,可利用互斥信号量 mutex 使诸进程对缓冲池实现互斥访问;利用 empty 和 full 计数信号量分别表示空缓冲及满缓冲的数量。又假定这些生产者和消费者互相等效,只要缓冲池未满,生产者可将消息送入缓冲池;只要缓冲池未空,消费者可从缓冲池取走一个消息。请利用记录型信号量写出解决此问题的程序代码。答案: Var mutex,empty,full:semaphore:=1,n,0; buer:array[0,…,n-1] of item; in,out:integer:=0,0; beginparbeginProducer:beginrepeat …produce an item nextp;…p(empty);p(mutex);buer(in):=nextp;in:=(in+1) mod n; //in 指针后移,循环缓冲区v (mutex);v(full);until false; end Consumer:beginrepeat p(full);p(mutex);nextc:=buer(out);out:=(out+1) mod n; v (mutex);v(empty);
consume the item in nextc;until false; end parend end5. 在银行家算法中,若出现下面的资源分配情况:Process Allocation Need Available P0 1 0 2 2 1 0 5 4 1 6 2 3 P1 1 0 0 1 1 7 5 0 P2 1 3 5 4 0 3 5 10 P3 0 1 1 2 0 2 3 2 P4 0 0 2 4 0 0 2 2试问:(1)此刻该状态是否安全?(2)若 P1 发出请求 Request(1,3,2,0)后,系统能否将资源分配给它?答:(1)利用安全性算法对上面的状态进行分析,如下图所示,可以找到安全序列{P4,P3,P0,P2,P1},故系统是安全的。Process Work Need Allocation Work+ Allocation FinishP4 1623 0022 0024 1647 TrueP3 1647 0232 0112 1759 TrueP0 1759 1054 1022 277 11 TrueP2 277 11 035 10 1354 3 10 12 15 TrueP1 3 10 12 15 1750 1001 4 10 12 16 True(2)P1 发出请求 Request(1,3,2,0)后,系统按银行家算法进行检查:1)Request(1,3,2,0)<= Need(1750)2)Request(1,3,2,0)<= Available (1623)3)系统先假定可为 P1 分配资源,并修改 Available,Allocation 和 Need向量:Available= (0303)Allocation=(2321)Need=(0430)
4)进行安全性检查:此时对所有的进程,条件 Need〈= Available(0303)都不成立,即 Available 不能满足任何进程的请求,故系统进入不安全状态。因此,P1 发出请求 Request(1,3,2,0)后,系统不能将资源分配给它。