操作系统 |《操作系统设计与实现》课后习题 输入/输出系统

教材:《操作系统设计与实现》(第三版)

3、什么是存储器映射I/O?为什么在一些情况下要使用它?
解:每个控制器都有一些用来与CPU通信的寄存器及数据缓冲区。存储器映射I/O,将设备数据缓冲区按内存地址空间进行统一编址,I/O寄存器是内存地址空间的一部分,被分配唯一的一个内存地址,位于地址空间的顶端。这样可以在不使用基本I/O操作函数read和write的情况下执行I/O操作。

4、尝试解释什么是DMA。为什么要使用它?
解:DMA,直接存储器访问。将数据从一个地址空间复制到另外一个地址空间,CPU只需要干预I/O操作的开始和结束,而传输动作本身由DMA控制器完成,CPU可以去做其他工作,提高CPU的效率。适用于高速设备。

11、以下的工作各在4个I/O软件层的哪一层完成?
(a)为一个磁盘读操作计算磁道、扇区、磁头。
设备驱动程序
(b)维护一个最近使用的块的缓冲。
设备无关软件
©向设备寄存器写命令。
设备驱动程序
(d)检查用户是否有权使用设备。
设备无关软件
(e)将二进制整数转换成ASCII码以便迅速打印。
用户进程

补充:
(1)用户进程请求打印一个输出文件。
用户进程
(2)获得设备驱动程序的入口地址。
设备无关软件
(3)将终端输入的字符转换为ASCⅡ码。
设备无关软件
(4)设备驱动进程被唤醒。
中断处理程序

12、为什么打印的输出文件在打印前通常都假脱机输出在磁盘上?
解:
如果一个用户进程占用打开代表打印机的字符设备文件,但却长时间不使用,那么其他进程也不能打印任何东西。因此,将需要打印的文件假脱机输出在磁盘上,由守护进程打印文件,来防止用户进程直接使用打印机,可以解决某些进程不必要地长期空占打印机的问题。

14、考虑图3.10。假设在步骤(o)中C需要S而不是R,这将会导致死锁吗?如果既需要S又需要R呢?
解:
(1)如果C需要S而不是R,这不会导致死锁。因为进程A已经执行完成,资源S可以被释放分配给C。
(2)如果C既需要S也需要R仍不会导致死锁。因为进程A已经执行完成,资源S和R都可以释放分配给C,C执行完成后,再分配给进程B。

15、仔细观察图3.13(b)。如果D再多请求一个单位,将会导致一个安全的状态还是不安全的状态?如果请求来自C而不是D呢?
解:
(1)D再多请求一个单位,状态仍然是安全的。可用的两个单位可以先让C完成,然后释放出其占用的资源,再让D、B、A依次完成。
(2)C再多请求一个单位,状态不安全。此时可用资源只有两个单位,此时A、B、C、D四个都不能满足要求。

17、假设图3.15中的进程A请求最后一台磁带驱动器。这会导致死锁吗?
解:不会导致死锁;若立即满足A的请求,则可用资源向量减为A=(0020)。再将每个进程所需要的资源与可用资源向量作比较,进程D可以执行,执行结束后释放出它所占有的资源,进程A、B、C、E也可以依次执行结束。因此,所得到的系统状态仍然是安全的,不会导致死锁。

22、银行家算法在一个有m个资源类和n个进程的系统中运行。在m和n都很大的情况下,为检查状态是否稳定而进行的操作次数正比于manb。a和b的值为多少?
解:多种资源的银行家算法维护了两个矩阵分别记录每个进程每种资源的已分配数量和仍需要的数量。找出可执行的进程需要将每个进程仍需要的资源数量(对应矩阵的一行)与可用资源向量进行比较,需要比较m次,一共n个进程,则需要mn次操作找出可以执行的进程。因为一共有n个进程,故需要次操作。
所以, a = 1 , b = 2 a=1,b=2 a=

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值