第2章习题答案Word文档下载推荐.docx
《第2章习题答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第2章习题答案Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
作业的响应比(())选作业运行。
作业到完成。
最后运行作业。
运行到,全部结束。
各个作业的周转时间计算如下:
各个作业的平均周转时间计算如下:
()
.已知作业需要的运行时间分别为分钟,优先级分别为。
()轮转法(假定时间片分钟)
作业完成的顺序为
开始作业轮转一周需分钟,
作业的周转时间:
分钟(分)
完成后,剩下四个作业,轮转一周需分钟,
×
()分钟(分)
完成后,剩下三个作业,轮转一周需分钟,
(6-2-2)分钟(分)
完成后,剩下两个作业,轮转一周需分钟,
分钟(分)
完成后,只剩下作业,
平均周转时间:
()分(分)
()优先级调度法
作业完成顺序为:
分,分,分,分,
分。
()分
.系统中有个进程。
其中、、…、分别通过缓冲区向进程发送消息。
相互之间的制约关系为:
发送进程、、…、要互斥地向中送消息,当接收进程还未将消息接收完之前,任何一个发送不能再送。
同样,不能重复接收同一个消息。
为此,应设置两个信号量和。
设系统只有容纳一个消息的缓冲区,用信号量表示,其初值为,它用来制约发送进程。
信号量用来制约接收进程,其初值为。
现可用操作描述如下:
进程、…、执行的过程为:
进程执行的过程为:
准备消息()
()从缓冲区取消息
将消息送入()
()消耗消息
若缓冲区容量为个,这个问题就变为生产者和消费者问题。
.首先这里的和分别表示读写指针,而不是信号量。
在系统初启时,环行缓冲区为空,此时和都初始化为。
当并发进程通过环行缓冲区通信时,写进程不断地写,读进程不断地读,使得读写指针不断变化。
写进程的速度太快,缓冲区会满;
读进程的速度太快,缓冲区会空。
已知循环缓冲区的容量为。
则
当()时,说明缓冲区已满。
当时,说明缓冲区已空。
初始化时,。
一段时间以后:
.为描述阅览室,用一个登记表来记录使用情况。
表中共有项。
每当有读者进入阅览室时,为了正确地登记,各读者应互斥使用。
为此设两个信号量。
:
互斥信号量,用来制约各读者互斥地进行登记,其初值为;
同步信号量,用来制约各读者能同时进入阅览室的数量,初值为。
下面用两个过程描述对表格应执行的动作:
登记过程:
擦除过程:
()()
()找到自己的登记项擦除
找到一个登记项登记()
为了正确地描述读者的动作,我们可以将读者看成进程。
若干读者希望进入阅览室时,调用登记过程,退出阅览室时,调用擦除过程。
可见一个程序可对应多个读者。
可设的进程数由读者数决定。
其动作如下:
调用登记过程
进入阅览室阅读
准备退出
调用擦除过程
.有个同类资源,个进程,每个进程的最大申请为,系统不会发生死锁。
最不利原则:
个进程都各自获得了一个资源,都还需申请第二个资源。
此时,因系统还有一个剩余资源,所以能满足任一个进程的剩余需求。
.有个磁带机和个进程。
每个进程的最大申请为,问取什么值时,系统不会死锁?
答:
为了使系统不发生死锁,应该满足:
证明:
假定会死锁,则根据死锁定义,个进程之间相互等待,至少需要个单位资源,又系统个资源已分完,故所有进程需求总和大于或等于,这与题中的所有进程需求总和小于矛盾,故假设不成立。
因此,在这种情况下不会死锁。
.
……
();
附加:
个同类资源,个进程,每个进程的对资源的最大需求量:
当>
时,每个进程最多可以请求
个该类资源
当时,每个进程最多可以请求个该类资源
当<
时,每个进程最多可以请求个该类资源
(当>
时,每个进程最多可以请求()个该类资源)
解答:
这是进程之间的同步问题。
、和必须在接收到的消息后才能运行。
同理,必须在和之后运行,必须在,之后运行,必须在、之后运行。
如何保证呢?
需设置相应的信号量来保证:
,,,用来制约、和的运行;
,,用来制约的运行;
,用来制约的运行。
各进程的制约关系描述如下。
;
:
:
();
();
.叉子是临界资源,在一段时间内只允许一个哲学家使用。
一个信号量表示一把叉子,五个信号量构成信号量数组,这些信号量的初值为。
[][]…[];
第个哲学家所执行的程序:
{
([]);
([()]);
吃饭
([]);
([()]);
}();
()公平竞争(无写者时,读者仍遵循多个读者可以同时读)
互斥共享;
读写互斥,写写互斥;
读写进程在上排队。
;
读写进程在上排队。
()();
无写者时,多个读者可以同时读.
读
写
(();
…
()写者优先
:
当来了一个写进程时,通过()禁止其后读进程读,直到写进程写完为止。
(){
();
其他读进程在上排队
一个读进程与一个写进程在上竞争
读进程互斥访问
()();
临界区
}
写进程互斥访问
一个写进程与一个读进程在上竞争
其他写进程在上排队
临界区
写进程都写完时,通过()允许读进程读
附加题:
读者优先,规定仅允许个进程同时读,怎样修改程序?
解:
增加一个资源信号量,初值为。
;
()();
;
顾客进程:
坐椅子等理发
理发师进程:
给顾客理发
读写管程
两个计数器和分别对读进程和写进程计数,用和分别表示允许读和允许写的条件变量,于是管理该文件的管程可如下设计:
:
:
,,;
>
(,);
(,);
.
任何一个进程读(写)文件前,首先调用(),执行完读(写)操作后,调用()。
即:
……
上述程序能保证在各种并发执行的情况下,读写进程都能正确工作,请读
.()和()会发生死锁。
剩余
系统剩余
(不安全)
()占有个资源,剩余个资源请求。
占有个资源,剩余个资源请求。
系统剩余个资源。
()的请求最先满足。
进程完成序列:
,,。
最大需求矩阵:
分配矩阵:
剩余请求矩阵:
剩余资源向量:
()
()当前系统是安全的。
判断系统是否安全,只要检查系统剩余资源向量能否对各进程的剩余请求向量找到一个进程完成序列,当按照这个序列为各进程分配资源时,各进程都能成功完成。
若能找到,则系统是安全的,否则,为不安全。
先找到,因为已满足最大资源请求,它可以完成,释放其占有的资源,使系统剩余资源向量为()
之后,系统剩余资源向量(),可满足进程,使可以完成,释放其占有的资源,使系统剩余资源向量为()。
之后无论选哪一个进程都可成功完成。
故找到的进程完成序列可为:
或等,故系统是安全的。
()因系统剩余可用向量为(),的剩余请求向量为(),即()>
()。
故,当提出()请求时,能满足。
第章习题答案
内存有如下顺序排列的空闲块:
,,,,,,和,有如下的请求序列:
()若采用首次适应法:
●的请求:
将分配的空闲块,变为剩余的(),空闲队列变为:
,,,,,,和;
将分配的空闲块,空闲队列变为:
,,,,,和;
(),,,,,和;
()若采用最佳适应法:
,,,,和;
()若采用最坏适应法:
●的请求,将分配的空闲块,空闲队列变为:
,,,,和;
,,,,,和。
有如下图所示的页表中的虚地址与物理地址之间的关系,即该进程分得个内存块。
页的大小为。
给出对应下面虚地址的物理地址:
();
();
().
()虚地址变为页号和页内偏移
由页号查页表得页对应内存块号为,可计算得
物理地址块号*页的大小页内偏移*
()虚地址变为页号和页内偏移()
>页号越界
一个作业在执行过程中,按如下顺序依次访问各页,作业分得四个主存块,问分别采用、和算法时,要产生多少次缺页中断?
设进程开始运行时,主存没有页面。
页访问串顺序为:
采用淘汰算法,产生次缺页中断。
采用算法时,产生次缺页中断。
考虑如图所示的段表,给出如下所示的逻辑地址所对应的物理地址。
段始址
段的长度
(),
(),>段内地址越界
(),>段内地址越界
一台计算机含有字节的存储空间,这一空间被分成许多长度为字节的页。
有一程序,其代码段为字节,数据段为字节,栈段为字节。
试问该机器的主存空间适合这个作业吗?
如果每页改成字节,适合吗?
存储空间每块为个字节,共可分成块。
程序代码段占块,数据段占块,栈段占块,合计为块,故该机器的主存空间不适合这个作业。
当存储空间每块为个字节,共可分成块。
程序代码段占块,数据段占块,栈段占块,合计为块,故该机器的主存空间是适合这个作业的。
逻辑地址中,用位表示页号,用位表示页内地址。
()缺页中断次;
次
×
(×
)×
级页表
第5章文件系统
.文件存贮空间管理可采用成组自由块链表或位示图。
若一磁盘有个盘块,其中有个自由块。
若盘块号用位表示。
试给出使用自由块链表比使用位示图占用更少的空间的条件。
当为时,给出满足条件的自由空间占整个空间的百分比。
一磁盘有个盘块,用位图表示要使用位
现有个自由块,若表示一个盘块需用位。
则采用链表接连个盘块,需要个链指针,共占*位。
使用自由块链表比使用位示图占用更少的空间的条件是*<
。
当时,满足条件的自由空间占整个空间的百分比为
.文件系统的执行速度依赖于缓冲池中找到盘块的比率。
假设盘块从缓冲池读出用毫秒,从盘上读出用毫秒。
从缓冲池找到盘块的比率为,请给出一个公式计算读盘块的平均时间,并画出从到的函数图像。
读一个盘块的平均时间()
……,因此,要访问文件的第个记录内的处。
每个块放两个记录,所要访问的字节处在第个逻辑块内,其对应的物理块号为,应访问号块内的第个字节。
要访问次磁盘才能将该字节的内容读出。
.共需要次磁盘操作
.,,,每个磁盘块号需要个字节表示,即。
()<
所以,只占用个磁盘块。
()需一个索引块和个数据块,共个盘块。
(),(个索引项)<
所以,需个一级索引表和一个个二级索引表,个数据块。
共需个磁盘块。
第章设备管理
.下列工作各是在四层软件的哪一层上实现的?
()对于读磁盘,计算柱面、磁头和扇区(设备驱动)
()维持最近所用块而设的高速缓冲(独立于设备的软件层)
()向设备寄存器写命令(设备驱动)
()查看是否允许用户使用设备(独立于设备的软件层)
()为了打印,把二进制整数转换成码(用户进程)
.假设移动头磁盘有个磁道(从号到号)。
目前正在处理号磁道上的请求,而刚刚处理结束的请求是号,如果下面给出的是按到达时间的先后排成的等待服务队列:
,,,,,,,,。
那么,用下列各种磁盘调度算法来满足这些请求所需的总磁头移动量是多少?
(1):
满足这些请求所需的总磁头移动量()()()()()()()()()
(2):
满足这些请求所需的总磁头移动量
()()()
():
满足这些请求所需的总磁头移动量()()
—满足这些请求所需的总磁头移动量()()()