现代操作系统第四版第二章答案

现代操作系统第四版第二章答案


2024年4月17日发(作者:)

现代操作系统第四版第二章答案

现代操作系统第二章进程与线程习题

1. 图2-2中给出了三个进程状态,在理论上,三个状态可以有六

种转换,每个状态两个。但是,图中只给出了四种转换。有没有可能

发生其他两种转换中的一个或两个

A:从阻塞到运行的转换是可以想象的。假设某个进程在I/O上阻

塞,而且I/O结束,如果此时CPU空闲,该进程就可以从阻塞态直接

转到运行态。而另外一种转换(从阻塞态到就绪态)是不可能的。一

个就绪进程是不可能做任何会产生阻塞的I/O或者别的什么事情。只

有运行的进程才能被阻塞。

2.假设要设计一种先进的计算机体系结构,它使用硬件而不是中

断来完成进程切换。CPU需要哪些信息请描述用硬件完成进程切换的

工作过程。

A:应该有一个寄存器包含当前进程表项的指针。当I/O结束时,

CPU将把当前的机器状态存入到当前进程表项中。然后,将转到中断

设备的中断向量,读取另一个过程表项的指针(服务例程),然后,

就可以启动这个进程了。

3.当代计算机中,为什么中断处理程序至少有一部分是用汇编语

言编写的

A:通常,高级语言不允许访问CPU硬件,而这种访问是必需的。

例如,中断处理程序可能需要禁用和启用某个特定设备的中断服务,

或者处理进程堆栈区的数据。另外,中断服务例程需要尽快地执行。

(补充)主要是出于效率方面的考量。中断处理程序需要在尽量短的

时间内完成所需的必要处理,尽量减少对线程/程序流造成的影响,因

此大部分情况下用汇编直接编写,跳过了通用编译过程中冗余的适配

部分。

4.中断或系统调用把控制转给操作系统时,为什么通常会用到与

被中断进程的栈分离的内核栈

A:内核使用单独的堆栈有若干的原因。其中两个原因如下:首先,

不希望操作系统崩溃,由于某些用户程序不允许足够的堆栈空间。第

二,如果内核将数据保留在用户空间,然后从系统调用返回,那么恶

意的用户可能使用这些数据找出某些关于其它进程的信息。

5.一个计算机系统的内存有足够的空间容纳5个程序。这些程序有

一半的时间处于等待I/O的空闲状态。请问CPU时间浪费的比例是多

A:^5 =%

6.一个计算机的RAM有4GB,其中操作系统占512MB。所有进

程都占256MB(为了简化计算)并且特征相同。要是CPU利用率达

到99%,最大I/O等待是多少A:内存中最多可放(4GB-

512MB)/256MB=14个进程,设每个进程的I/O等待占总运行时间的

比例为p,则CPU利用率=1-p^14>99%====>p<%

7.多个作业能够并行运行,比它们顺序执行完成的要快。假设有

两个作业同时开始执行,每个需要20分钟的CPU时间。如果顺序执

行,那么最后一个作业需要多长时间可以完成如果并行执行又需要多

长时间假设I/O等待占50%。

A: 每个进程的时间为40min。顺序执行时,最后一个作业需要

80min才能完成。并行执行时,cpu利用率为1-p^n = 75%, cpu计

算时间为40min,故总时间

t=40/75%=

8.考虑一个6级多道程序系统(内存中可同时容纳6个程序)。假

设每个进程的I/O等待占40%,那么CPU利用率是多少

A:利用率=1-p^n=1-^6 = =%

9.假设要从互联网上下载一个2GB大小的文件,文件内容可以从

一组镜像服务器获得,每个服务器可以传输文件的一部分。假设每个

传输请求给定起始字节和结束字节。如何用多线程优化下载时间

A:客户端进程可以创建单独的线程; 每个线程都可以从其中一个

镜像服务器获取文件的不同部分。这有助于减少停机时间。当然,所

有线程都共享一个网络链接。这个链接可以成为一个瓶颈,因为线程

的数量变得非常大。


发布者:admin,转转请注明出处:http://www.yc00.com/news/1713362075a2233905.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信