计算机操作系统第四版第六章输入输出系统—课后题答案

news2025/1/19 13:14:55

4cf609bf21e249f99adeac30f8b1703c.png

4cfa53a19ec740068263c76645850f20.png

 

1.试说明I/O系统的基本功能。

隐藏物理设备的细节、与设备的无关性、提高处理机和I/O设备的利用率、对I/O设备进行控制、确保对设备的正确共享、错误处理

2.简要说明I/O软件的4个层次的基本功能。

用户层I/O软件:实现与用户交互的接口,用户可直接调用该层所提供的、与I/O操作有关的控制流;

设备独立性软件:用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备分配与释放等,同时为设备管理和数据传送提供必要的存储空间。

设备驱动程序:与硬件直接有关,用来具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。

中断处理程序:用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完毕再恢复中断进程的现场后,返回到被中断的进程。

3.I/O系统接口与软件/硬件(RW/HW)接口分别是什么接口?

I/O系统接口:是I/O系统与上层系统之间的接口,向上层提供对设备进行操作的抽象I/O命令,以方便高层对设备的使用;
软件/硬件(RW/HW)接口:上面是中断处理程序和用于不同设备的设备驱动程序,它的下面是各种设备的控制器。

4.与设备无关性的基本含义是什么?为什么要设置该层?

为了提高OS的可适应性和可扩展性,在现代OS中都毫无例外地实现了设备独立性,也称设备无关性。
基本含义:应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备两概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。
优点:1. 设备分配时的灵活性
2.易于实现I/O重定向(用于I/O操作的设备可以更换(即重定向),而不必改变应用程序。

5.试说明设备控制器的组成。

设置控制器与处理机的接口;

设备控制器与设备的接口;

I/O逻辑。

6.为了实现CPU与设备控制器之间的通信,设备控制器应该具备哪些功能?

基本功能:接收和识别命令;数据交换;标识和报告设备的状态;地址识别:数据缓冲区;差错控制。

7.什么是内存映像I/O?它是如何实现的?

驱动程序将抽象I/O命令转换出的一系列具体的命令、参数等数据装入设备控制器的相应寄存器,由控制器来执行这些命令,具体实施对I/O设备的控制。
方式:利用特定的I/O指令、内存映像I/O。

8.为什么说中断是OS赖以生存的基础?

中断在操作系统中有着特殊重要的地位,它是多道程序得以实现的基础,没有中断,就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。
另一方面,中断也是设备管理的基础,为了提高处理机的利用率和实现CPU和I/O设备并执行,也必需有中断的支持。中断处理程序是整个I/O系统中最低的一层。

9.对中断源的两种处理方式分别用于哪种场合?

1) 屏蔽(禁止)中断:当处理机正在处理一个中断时,将屏蔽掉所有的中断,直到处理机已处理完本次中断,再去检查是否有中断产生。所有中断按顺序处理,优点是简单,但不能用于实时性要求较高的中断请求。
2)嵌套中断:在设置了中断优先级的系统中,当同时有多个不同优先级的中断请求,CPU优先响应优先级最高的中断请求,高优先级的中断请求可以抢占正在运行的低优先级中断的处理机。

10.设备中断处理程序通常需完成哪些工作?

1、唤醒被阻塞的驱动进程。
2、保护被中断进程的CPU环境。
3、转入相应的设备处理程序。
4、中断处理。
5、恢复被中断进程的现场。

11.简要说明中断处理程序对中断进行处理的几个步骤。

1、测定是否有未响应的中断信号
2、保护被中断进程的CPU环境
3、转入相应的设备处理程序
4、中断处理
5、恢复CPU的现场并退出中断

12.试说明设备驱动程序具有哪些特点。

(1)驱动程序是实现在与设备无关的软件和设备控制器之间通信和转换的程序;
(2)驱动程序与设备控制器以及I/O设备的硬件特性紧密相关,对于不同类型的设备,应配置不同的驱动程序。但可以为相同的多个终端设置一个终端驱动程序;
(3)驱动程序与I/O设备所采用的I/O控制方式紧密相关,常用的I/O控制方式是中断驱动和DMA方式;
(4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写;
(5)驱动程序应允许可重入。

13.设备驱动程序通常需要完成哪些工作?

(1)接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列;
(2)检查用户I/O请求的合法性,了解I/0设备状态,传递有关参数,设置设备工作方式;
(3)发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者的请求块挂在设备队列上等待;
(4)及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。

14.简要说明设备驱动程序的处理过程可分为哪几步。

(1)将抽象要求转换为具体要求;
(2)对服务请求进行校验;
(3)检查设备的状态;
(4)传送必要的参数。

15.试说明I/0控制发展的主要推动因素是什么?

促使I/0控制不断发展的几个主要因素如下:
  a.尽量减少CPU对I/O控制的干预,把CPU从繁杂的I/O控制中解脱出来,以便更多地去完成数据处理任务。
  b.缓和CPU的高速性和设备的低速性之间速度不匹配的矛盾,以提高CPU的利用率和系统的吞吐量。
        c.提高CPU和I/O设备操作的并行程度,使CPU和I/O设备都处于忙碌状态,从而提高整个系统的资源利用率和系统吞吐量。

16.有哪几种I/O控制方式?各适用于何种场合?

程序I/O方式:适用于早期的计算机系统中,并且是无中断的计算机系统;
中断驱动I/O控制方式:普遍用于现代的计算机系统中;
DMA I/O控制方式:适用于I/O设备为块设备时在和主机进行数据交换的一种I/O控制方式;
I/O通道控制方式:当I/O设备和主机进行数据交换是一组数据块时通常采用I/O通道控制方式,但此时要求系统必须配置相应的通道及通道控制器。

17.试说明DMA的工作流程。

以从磁盘读入数据为例,说明DMA的工作流程。当CPU要从磁盘读入数据块时,先向磁盘控制器发送一条读命令。该命令被送到命令寄存器CR中。同时还发送本次要读入数据的内存起始目标地址,送入内存地址寄存器MAR;本次要读数据的字节数送入数据计数器DC,将磁盘中的源地址直接送DMA控制器的I/O控制逻辑上。然后启动DMA 控制器传送数据,以后CPU便处理其它任务。整个数据传送过程由DMA控制器控制。


18.为什么要引入与设备的无关性?如何实现设备的独立性?

引入设备独立性,可使应用程序独立于具体的物理设备,使设备分配具有灵活性。另外容易实现I/0重定向。为了实现设备独立性,必须在设备驱动程序之上设置一层设备独立性软件,用来执行所有I/0设备的公用操作,并向用户层软件提供统一接口。

19.与设备的无关的软件中,包括了哪些公有操作的软件?

1、设备驱动程序的统一接口

2、缓冲管理

3、差错控制

4、对独立设备的分配与回收

5、独立于设备的逻辑数据块

20.在考虑到设备的独立性时,应如何分配独占设备?

(1)进程以逻辑设备名提出I/0请求。
(2)根据逻辑设备表相应表项获得I/0请求的逻辑设备对应类型的物理设备在系统设备表中的指针。
(3)从指针所指位置起顺序检索系统设备表,直到找到一个属于对应I/0请求所用类型、空闲可用且基于设备分配安全性算法验证为安全分配的设备的设备控制表,将对应设备分配给请求进程;如果未找到安全可用的空闲设备,则把请求进程的进程控制块挂到相应类型设备的等待队列上等待唤醒和分配。
(4)系统把设备分配给I/0请求进程后,再到该设备的设备控制表中找出与其相连接的控制器的控制器控制表,根据其状态字段判断该控制器是否忙碌,若忙则把请求进程的进程控制块挂到该控制器的等待队列上;否则将该控制器分配给进程。
(5)系统把控制器分配给I/0请求进程后,再到该控制器的控制器控制表中找出与其相连接的通道的通道控制表,根据其状态字段判断该通道是否忙碌,若忙则把请求进程的进程控制块挂到该通道的等待队列上:否则将该通道分配给进程。
(6)只有在设备、控制器和通道三者都分配成功时,这次的设备分配才算成功,然后便可启动设备进行数据传送。

21.何谓设备虚拟?实现设备虚拟式所依赖的关键技术是什么?

通过虚拟技术可将一台独占设备变换成若干台逻辑设备,供若干个用户(进程)同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。其实现所依赖的关键技术是SPOOLING技术。

22.在实现后台打印时,SPOOLing 系统应为请求I/0的进程提供哪些服务?

1、由输出进程在输出井中为之申请一空闲盘块区,并将要打印的数据送入其中;
2、输出进程再为用户进程申请一张空白的用户打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。
3、一旦打印机空闲,输出进程便从请求打印队列的队首取出一张请求打印表,根据表中的要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。

23.假脱机系统向用户提供共享打印机的基本思想是什么?

对每个用户而言,系统并非即时执行其程序输出数据的真实打印操作,而只是即时将数据输出到缓冲区,这时的数据并未真正被打印,只是让用户感觉系统已为他打印;
真正的打印操作,是在打印机空闲且该打印任务在等待队列中已排到队首时进行的;以上过程是对用户屏蔽的,用户是不可见的。

24.引入缓冲的主要原因是什么?

缓和CPU与I/0设备之间速度不匹配的矛盾;

减少对CPU的中断频率,放宽对中断响应时间的限制;

解决数据力度不匹配的问题;

提高CPU和I/0设备之间的并行性。

25.在单缓冲情况下,为什么系统对一块数据的处理时间为max(C,T)+M?

在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为T;操作系统将缓冲区数据传送给用户区的时间为M;而CPU对这一块数据进行计算得时间为C。
在单缓冲情况下,由于设备的输入操作和CPU的处理操作可以并行,所以系统对每一整块数据的处理时间为max(C,T)+M。

26.为什么在双缓冲情况下,系统对一块数据的处理时间为max(C,T)?

该方式又称缓冲对换方式,在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。此时操作系统可以从第一缓冲区移出数据,并送入用户进程。
接着由CPU对数据进行计算。在双缓冲区中,不仅设备的输入操作和CPU的处理操作可以并行,设备的输入操作和数据的传送操作也可以并行,因此耗时大约为max(C+M,T)。考虑到M是内存中数据块的“搬家”耗时,非常短暂可以省略,因此近似地认为是:max(C,T)。

27.试绘图说明把多缓冲用于输出时的情况。


b9674ce0c6f94faf860db60b86c345a6.png 

28.试说明收容输入工作缓冲区和提取输出工作缓冲区的工作情况。

①收容输入工作缓冲区的工作情况为:在输入进程需要输入数据时,调用GetBuf(EmptyQueue)过程,从EmptyQueue队列的队首摘下一个空缓冲区,作为收容输入工作缓冲区Hin。然后把数据输入其中,装满后再调用PutBuf(InputQueue,Hin)过程,将该缓冲区挂在输入队列InputQueue的队尾。
②提取输出工作缓冲区的工作情况为:当要输出数据时,调用GetBuf(OutputQueue)过程,从输出队列的队首取得一装满输出数据的缓冲区作为提取输出工作缓冲区Sout。在数据提取完后,再调用PutBuf(EmptyQueue,Sout)过程,将该缓冲区挂到空缓冲队列EmptyQueue的队尾。

29.何谓安全分配方式和不安全分配方式?

①安全分配方式是指每当进程发出I/0请求后,便进入阻塞状态,直到其I/0操作完成时才被唤醒。在采用这种分配策略时,一旦进程已获得某种设备资源后便阻塞,使它不可能再请求任何资源,而在它运行时又不保持任何资源。这种分配方式已经摒弃了造成死锁的“请求和保持”条件,分配是安全的。缺点是进程进展缓慢,CPU与I/0设备串行工作。
②不安全分配方式是指进程发出I/0请求后仍继续执行,需要时又可发出第二个I/0请求、第三个I/0请求。仅当进程请求的设备已被另一个进程占有时,进程才进入阻塞状态。优点是一个进程可同时操作多个设备,进程推进迅速。缺点是分配不安全,可能具有“请求和保持”条件,可能造成死锁。因此,在设备分配程序中需增加一个功能,用于对本次的设备分配是否会发生死锁进行安全性计算,仅当计算结果表明分配安全的情况下才进行分配。

30.磁盘访问时间由哪几部分组成?每部分时间应如何计算?

磁盘访问时间由寻道时间Ts、旋转延迟时间Tr、传输时间Tt三部分组成。
(1)Ts是启动磁臂时间s与磁头移动n条磁道的时间和,即Ts=m×n+s。
(2)Tr是指定扇区移动到磁头下面所经历的时间。硬盘15000r/min时Tr为2ms;软盘300或600r/min时Tr为50~100ms。
(3)Tt是指数据从磁盘读出或向磁盘写入经历的时间。Tt的大小与每次读/写的字节数b和旋转速度有关:Tt=b/rN。

31.目前常用的磁盘调度算法有哪几种?每种算法优先考虑的问题是什么?

目前常用的磁盘调度算法有先来先服务、最短寻道时优先级扫描等算法。
(1)先来先服务算法优先考虑进程请求访问磁盘的先后次序;
(2)最短寻道时间优先算法优先考虑要求访问的磁道与当前磁头所在磁道距离是否最近:
(3)扫描算法考虑欲访问的磁道与当前磁道间的距离,更优先考虑磁头当前的移动方向。

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/414834.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4.8、socket介绍

4.8、socket1. socket介绍1. socket介绍 所谓 socket(套接字),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位…

阿里云centos7搭建ChatGPT网站

需要的环境 有一台外网的服务器 拥有一个OpenAI API Key Centos7(其他服务器也行) nodejs 前端github上 大神写的 https://github.com/ddiu8081/chatgpt-demo/ 一.安装node.js centos7 安装node.js 二.安装pnpm npm i -g pnpm三.下载web前端项目从…

【2023最新】超详细图文保姆级教程:App开发新手入门(3)

上文回顾,我们已经完成了一个应用项目创建、导入、代码更新、代码同步和代码提交,本章继续我们的新手开发之旅,讲述一下如何将开发完成的应用进行编译,生成可供他人安装、可上架的应用安装包。 6 应用打包 应用打包,…

27个必备的Python技巧,你一定要知道!

目录 01. 为什么使用缩进来分组语句? Guido van Rossum 认为使用缩进进行分组非常优雅,并且大大提高了普通 Python 程序的清晰度。大多数人在一段时间后就学会并喜欢上这个功能。 由于没有开始/结束括号,因此解析器感知的分组与人类读者之间…

免费英文在线翻译-英文自动翻译

免费的自动翻译器 作为一款免费的自动翻译器,我们的产品可以为全球用户提供高质量、高效率的翻译服务,帮助他们更好地沟通和交流。 现在,随着数字化的进一步发展,人们之间的跨文化交流越来越频繁。然而,语言偏差和文…

22-JavaScript

目录 1.什么是JavaScript? 1.1.JS、HTML、CSS关系 1.2.JS是如何运行的? 2.JS前置知识 2.1.第一个JS程序 PS:JS书写位置 2.2.JS书写格式 2.2.1.行内格式 ​2.2.2.内嵌格式 ​2.2.3.外部格式 2.3.注释(script标签中&…

【软件测试】测试用例

目录 🌷1. 测试用例的基本要素 🌷2. 测试用例的设计方法 🌳2.1 基于需求进行测试用例的设计 ⭐️(1)功能需求测试分析 ⭐️(2)非功能需求测试分析 🌳2.2 具体的设计方法 &#…

【Python搞笑游戏】因蔡徐坤打篮球动作超火,被某程序员写成了一款游戏,画面美到不敢看,成功学到了精髓~(附源码免费)

导语 之前网络最火的梗,非“C徐坤打篮球”莫属。个人感觉,只有多年前的“春哥纯爷们”堪与匹敌! 虽然说C徐坤打篮球是一个老梗了,但是确实非常搞笑,今天就跟着小编一起来回忆一下吧! “我是练习两年半的…

qt - 隐式共享与d-pointer技术

文章目录前言1. 隐式共享2. d-pointer在隐式共享中的应用3. 二进制代码兼容4. d-pointer模式的实现5. QObject中的d-pointer前言 一般情况下,一个类的多个对象所占用的内存是相互独立的。如果其中某些对象数据成员的取值完全相同,我们可以令它们共享一块…

ESP32学习二-更新Python版本(Ubuntu)

一、简介 在一些场景里边,因为Python的版本过低,导致一些环境无法安装。这里来介绍以下,如何升级自己已安装的Python版本。例如如下情况: 二、实操 1.查看本地版本 python --version 2.添加源 sudo add-apt-repository ppa:jona…

FPGA时序知识点(基本方法总结就两点:1.降低时钟频率2.减小组合逻辑延迟(针对Setup Slack公式来的)

1.我们说的所有时序分析都是建立在同步电路的基础上的,异步电路不能做时序分析(或者说只能做伪路径约束(在设伪路径之前单bit就打拍,多bit就异步fifo拉到目的时钟域来))。——FPGA 设计中寄存器全部使用一个…

逐一解释一下四个 “内存屏障” 是什么

什么是内存屏障?硬件层⾯,内存屏障分两种:读屏障(Load Barrier)和写屏障(Store Barrier)。内存屏障有两个作⽤: 阻⽌屏障两侧的指令重排序;强制把写缓冲区/⾼速缓存中的…

Matplotlib绘图

1.散点图 X1 [[3.393533211, 2.331273381], [3.110073483, 1.781539638], [1.343808831, 3.368360954], [3.582294042, 4.679179110], [2.280362439, 2.866990263], [7.423436942, 4.696522875], [5.745051997, 3.533989803], [9.172168622, 2.51…

面试官:说说MySQL主从复制原理

MySQL Replication(主从复制)是指数据变化可以从一个MySQL Server被复制到另一个或多个MySQL Server上,通过复制的功能,可以在单点服务的基础上扩充数据库的高可用性、可扩展性等。 一、背景 MySQL在生产环境中被广泛地应用&…

第十四届蓝桥杯题解

声明:以下都无法确定代码的正确性,是赛时代码,希望大家见谅!思路可以参考,等后续可以评测之后再去修改博客内错误,也希望大家能够指正错误! 试题A:日期统计 分析:这道题…

Linux工具——yum和vim

目录🍏Linux软件包管理器-yum🍎yum简介🍎rzsz工具🍎注意事项🍎软件包查看🍎如何安装和卸载软件🍏Linux编辑器-vim🍎vim的基本概念🍎vim的基本操作🍎vim正常模…

uniapp中canvas绘制图片内容空白报错原因总结

uniapp中canvas绘制图片内容空白报错原因总结,看完需要10分钟 问题图: 效果图: 目录 🧨🧨🧨首先定义画布canvas canvas画布初始值没有,导致没有绘制成功 🧨🧨🧨2.绘制图…

【二叉树】全家桶-管饱,你敢吃吗?

【二叉树扩展学习】💯💯💯1.【二叉树的创建】2.【二叉树的销毁】3.【二叉树的前序遍历】4.【二叉树的中序遍历】5.【二叉树的后序遍历】6.【二叉树的层序遍历】7.【二叉树的高度】8.【二叉树结点的个数】9.【第K层二叉树的结点个数】10.【二叉…

C语言之结构体内存对齐与内存的简单理解

文章目录 内存单元的理解结构体中内存对齐的规则为什么会存在内存对齐一、内存单元的理解 首先先要介绍一下C语言中一些常见的存储单元 bit 存放一个二进制位 Byte 1Byte 8 bit KB 1KB 1024 Byte MB 1MB 1024 KB GB 1GB 1024 M…

Linux对文件夹操作(复制,移动)

Linux对文件夹操作(复制,移动) 复制文件夹cp cp -a vue vue-copy将vue 文件夹下面的所有文件,复制到同目录下vue-copy文件夹下面 -a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;-d:如果源文件为软链接(…