北理工23春《操作系统》模拟题非答案

[复制链接]
查看: 271|回复: 0

2万

主题

3万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
72345
发表于 2023-4-4 09:40:23 | 显示全部楼层 |阅读模式

答案来源:www.ybaotk.com《操作系统》模拟题





1.试说明操作系统与硬件、其他系统软件以及用户之间的关系。


答:操作系统是覆盖在硬件上的第一层软件,它管理计算机的硬件和软件资源,并向用户提供良好的界面。操作系统与硬件紧密相关,它直接管理着硬件资源,为用户完成所有与硬件相关的操作,从而极大地方便了用户对硬件资源的使用,并提高了硬件资源的利用率。操作系统是一种特殊的系统软件,其他系统软件运行在操作系统基础之上,可获得操作系统提供的大量服务,也就是说,操作系统是其他系统软件和硬件的接口。而一般用户使用计算机除了需要操作系统支持外,还需要用到大量的其他系统软件和应用软件,以使其工作更加方便和高效。





2. 某工厂有一个可以存放设备的仓库,总共有8个位置可以存放8台设备。生产部门生产的每一台设备都必须入库。销售部门可以从仓库提出设备供应客户。设备的出库和入库都必须借助运输工具。现在只有一套运输工具,每次只能运输一台设备,系统共使用三个信号量,S代表互斥信号量,表示运输工具;S1和S2均为同步信号量,S1表示仓库中可以存放设备的空闲位置,S2表示仓库中已经被设备占用了的位置。请设计一个能协调工作的自动调度管理系统,并利用记录型信号量写出解决此问题的程序代码,请注明信号量的初值。


答:Var S,S1,S2:semaphore:=1,8,0;


          buffer:array[0,…,n-1] of item;


parbegin


A:begin


        repeat


        生产设备;


        p(S1);


        p(S);


        把设备送入仓库


        v (S);


        v(S2);


        until false;


end


B:begin


        repeat


        p(S2);


        p(S);


        从仓库取出一台设备


        v (S);


        v(S1);


    把设备销售给客户


        until false;


    end       parend


end





3. 简述产生死锁的四个必要条件是什么?


答:产生死锁的四个必要条件是:


(1)互斥条件。进程要求对所分配的资源进行排他性控制,即在一段时间内某资源仅为一进程所占有。


(2)请求和保持条件。当进程因请求资源而阻塞时,对已获得的资源保持不放。


(3)不剥夺条件。进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完后由自己释放。


(4)环路等待条件。在发生死锁时,必然存在一个进程—资源的环形链。





4.生产者-消费者(Producer-Consumer)问题是著名的进程同步问题,它描述一组生产者向一组消费者提供消息的过程。生产者和消费者共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。假设缓冲池中有n个缓冲区,每个缓冲区存放一个消息,可利用互斥信号量mutex使诸进程对缓冲池实现互斥访问;利用empty和full计数信号量分别表示空缓冲及满缓冲的数量。又假定这些生产者和消费者互相等效,只要缓冲池未满,生产者可将消息送入缓冲池;只要缓冲池未空,消费者可从缓冲池取走一个消息。请利用记录型信号量写出解决此问题的程序代码。


答案:


Var mutex,empty,full:semaphore:=1,n,0;


          buffer:array[0,…,n-1] of item;


    in,out:integer:=0,0;


    begin


                parbegin


Producer:begin


        repeat


        …


        produce an item nextp;


        …


        p(empty);


        p(mutex);


        buffer(in):=nextp;


        in:=(in+1) mod n; //in指针后移,循环缓冲区


        v (mutex);


        v(full);


        until false;


    end     


Consumer:begin


        repeat


        p(full);


        p(mutex);


        nextc:=buffer(out);


        out:=(out+1) mod n;


        v (mutex);


        v(empty);


        consume the item in nextc;


        until false;


    end      


      parend


end





5. 在银行家算法中,若出现下面的资源分配情况:


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     Finish


P4      1623        0022       0024          1647              True


P3     1647        0232       0112          1759              True


P0      1759       1054       1022         277 11            True


P2    277 11      035 10     1354          3 10 12 15          True


P1    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)后,系统不能将资源分配给它。













答案来源:www.ybaotk.com

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x





上一篇:北理工23春《材料科学概论》期末试卷(a卷)答案非答案
下一篇:北理工23春《成本会计》期末考试辅导非答案
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩课程推荐
|网站地图|网站地图