课后习题---输入输出系统

Part A

试着说明I/O系统的基本功能

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

简要说明I/O软件的四个层次的基本功能

用户层:实现与用户交互的接口,用户可以直接调用该层所提供的,与I/O操作有关的库函数对设备进行操作
设备独立性软件,用于实现用户程序与设备管理和数据传送提供必要的存储空间
设备驱动程序,与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序
中断处理程序,用于保护被中断程序进程的CPU环境,转入相应的中断处理程序进行处理,处理完毕再恢复被中断进程的现场后,返回到被中断的进程

I/O系统接口与软件硬件接口分别是什么接口?

系统接口:是I/O系统与上层系统之间的接口,向上层提供对设备进行操作的抽象I/O命令,以便于高层对设备的使用(库函数,上层为文件系统,虚拟存储器系统等)
软硬件接口:是中断处理程序和用于不同设备的设备驱动程序

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

基本含义:I/O软件独立于具体使用的物理设备
为了提高I/O系统的可适应性和可扩展性

试着说明设备控制器的组成?

设备控制器与处理机的接口(数据线,地址线,控制线),设备控制器与设备的接口,I/O逻辑

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

接收和识别命令,数据交换,标识和报告设备的状态,
地址识别,数据缓冲区,差错控制

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

在编址上不再分内存单元地址和设备控制器中的寄存器地址,都采用k,当k处于0到n-1范围内,被认为是内存地址,若k大于或等于n时候则认为是某个控制器的寄存器地址

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

中断是CPU对I/O设备发来的中断信号的一种响应,CPU暂停正在执行的程序,保留CPU环境后,自动地转去执行该I/O设备的中断处理程序

对多中断源的两种处理方式分别用于各种场合?

屏蔽中断,不能用于对实时性要求高的中断请求
嵌套中断,优先级控制

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

唤醒被阻塞的驱动程序进程,保护被中断进程的CPU,
分析中断原因,转入相应的设备处理程序,
中断处理,恢复被中断的程序

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

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

试着说明设备驱动程序具有哪些特点?

实现在与设备无关的软件和设备控制器之间通信和转换程序,
对不同类型的设备配置不同的驱动程序,
有一部分必须用汇编语言编写,允许可重入

设备驱动通常要完成哪些工作?

接收由与设备无关的软件发来的命令和参数,并将其转换为与设备相关的底层操作,
检查用户I/O请求的合法性,了解设备的工作状态,传递与设备操作相关的参数,设置设备的工作方式
发出I/O命令,及时响应设备控制器发来的中断请求

简要说明设备驱动程序的处理过程可分为哪些步骤?

将抽象要求转换为具体要求,对服务请求进行校验
检查设备的状态,传送必要的参数,启动I/O设备

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

尽量减少主机对I/O控制的干预,把主机从繁杂的I/O控制事务中解脱出来,以便更多地完成数据处理任务

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

轮询的可编程I/O:早期计算机无中断机构,处理机对I/O设备的控制采用程序I/O方式或称忙等的方式
中断的可编程I/O:适用于有中断机构的计算机系统中
DMA:具有DMA控制器的计算机系统中
I/O通道控制:具有通道程序的计算机系统中

试着说明DMA的工作流程?

设置MAR【内存地址寄存器】和CR【命令状态寄存器】,将要读数据的字节数送入DC【数据计数器】
还须将磁盘中的源地址直接送至DMA控制器的 I/O 控制逻辑上,然后启动DMA控制器进行数据传输
CPU则处理其他任务,整个数据传送过程中,由DMA控制器进行控制
当DMA控制器已从磁盘中读出相应数据,并送入DR【数据寄存器】,再挪用一个存储器周期将数据传送到MAR【内存地址寄存器】
随后MAR内容加1,将DC内容减1,若DC不为0,则表示为传送完毕

为何要引入与设备的无关性?如何是实现设备的独立性?

为了提高用户和提高OS的可适应性与可拓展性
通过以逻辑设备作为抽象的设备名称,设备的物理名称与逻辑设备名称进行映射

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

设备驱动程序的统一接口,缓冲管理,差错控制
对独立设备的分配与回收,独立于设备的逻辑数据块

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

为了避免诸进程对独占设备的争夺,必须由系统来统一分配,不允许进程自行使用
每当进程需要使用某设备时,必须先提出申请
OS接到对设备的请求后,先对进程所请求的独占设备进行检查,看该设备是否空闲
若空闲,才把该设备分配给请求进程,否则将被阻塞的放入该请求队列中

何为设备虚拟?实现设备虚拟时所依赖的关键技术是什么?

设备虚拟是指把独占设备经过某种技术处理改造成虚拟设备。
将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用

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

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

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

提高I/O速度,从对低速I/O设备进行的I/O操作变为输入井或输出井的操作
设备并没有分配给任何进程,在输入井或输出井中,分配给进程的是一存储区和建立一张I/O请求表
实现了虚拟设备功能,多个进程同时使用一个独享设备,而对每一个进程而言,都认为自己独占这个设备,不过,该设备是逻辑上的设备

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

缓和CPU与I/O设备间速度不匹配的矛盾,
减少对CPU的中断频率,放宽对CPU中断响应时间的限制
解决数据力度不匹配的问题
提高CPU和I/O设备之间的并行性

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

T:从磁盘把一块数据输入到缓冲区的时间
M:OS将该缓冲区中的数据传送到用户区的时间
C:CPU对这一块数据的处理时间
T和C是可以并行的,所以取其中最长的,加上数据传输时间M

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

在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区
即系统可以从第一缓冲区中移除数据,并送入用户进程,之后是第二缓冲区,以此类推

试着说明收容输入工作缓冲区和提取输出工作缓冲区的工作情况?

收容输入:输入进程可调用Getbuf过程,从空缓冲队列emq的队首摘下一空缓冲,把它作为收容输入工作缓冲区hin。然后,把数据输入其中,装满后再调用Putbuf(inq, hin)过程,将它挂在输入队列inq队列上
提取输出:输出进程可调用Getbuf过程,从输出队列的队首取得一装满输出数据的缓冲区,作为提取输出工作缓冲区sout。在数据提取完后,再调用Putbuf(emq, sout)过程,将它挂在空缓冲队列末尾

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

寻道时间T,启动磁臂的时间 s + 磁头移动 n 条磁道所花时间
旋转延迟时间T,扇区移动到磁头下所经历的时间
传输时间T

Part B

  • 在一般大型计算机系统中,主机对外围设备的控制可通过通道,控制器和设备三层次来实现,从下面选出描述正确的:

     1.控制器可控制通道,设备在通道控制下工作【错误】
     2.通道控制控制器,设备在控制器控制下工作【正确】
     3.通道和控制分别控制设备【错误】
     4.控制器控制通道和设备的工作【错误】
    
  • 从下面关于设备属性的论述中,选择一条正确的论述

     1.字符设备的一个基本特征是可寻址的,即能指定输入时的源地址和输出是的目标地址【错误】
     2.共享设备必须是可寻址的和随机访问的设备【正确】
     3.共享设备是指在同一时刻,允许多个进程同步访问的设备【错误】
     4.在分配共享设备和独占设备时,都可能引起进程死锁【错误】
    
  • 通道是一种特殊的【处理机】,具有【执行I/O指令集】能力,主机的CPU与通道可以通过并行工作,并通过【I/O指令和中断】实现彼此之间的通信和同步

  • 在I/O控制方式的发展过程中,最主要的推动因素是【减少主机对I/O控制的干预】。提高I/O速度和设备利用率,在OS中主要依靠【缓冲管理】。使用用户所编制的程序与实际使用的物理设备无关是由【设备独立性】功能实现的

  • 磁盘属于【块设备】,其信息的存取是以【固定长数据块】为单位的,磁盘的I/O控制主要采取【DMA】方式;打印机的I/O控制主要采取【程序中断】方式

  • 在程序I/O方式中,对于输出设备,准备就绪是指【输出缓冲区已空】

  • 在利用RS-232接口进行通信时,其通信速率为9.6KB/s。如果在通信接口中仅设置了一个8位寄存器为缓冲寄存器,这意味着大约每隔【0.8ms】的时间便要中断一次CPU,且要求CPU必须在【0.1ms】时间内予以响应

  • 假定把磁盘上一个数据块中的信息输入到一单缓冲的时间T为100us,将缓冲区中的数据传送到用户区的时间M为50us,而CPU对这一块数据进行计算的时间C为50us,这样,系统对每一块数据的处理时间为【150us】;如果将单缓冲改为双缓冲,则系统对每一块数据处理时间为【100us】

  • 操作系统中采用缓冲技术的目的是为了增强系统【并行操作】的能力;为了使多个进程能有效地同时处理输入和输出,最好使用【缓冲池】

  • 互斥信号量

procedure Getbuf(type)
begin
	[wait(RS[tpye])]
	[wait(MS[type]])
	B(n):=Takebuf(type)
	[signal(MS[type])]
end
procedure Putbuf(type,n)
begin
	[wait(MS[type])]
	Addbuf(type,n)
	[signal(MS[type])]
	[signal(RS[type])]
  • 从下面关于设备独立性的论述中,选择一条正确的论述

     1.设备独立性是指I/O设备具有独立执行I/O功能的一种特性【错误】
     2.设备独立性是指用户程序独立于具体使用的物理设备的一种特性【正确】
     3.设备独立性是指能独立实现设备共享的一种特性【错误】
     4.设备独立性是指设备驱动程序独立于具体使用的物理设备的一种特性【错误】
    
  • 设备独立性是指【用户程序】独立于【物理设备】

  • 在单用户系统中可为【整个系统】设置一张逻辑设备表,在多用户系统中应为【每个用户】设置一张逻辑设备表

  • 为实现设备分配,应为每个设备设置一张【设备控制表】,在系统中配置一张【设备分配表】;为了实现设备独立性,系统中应设置一张【逻辑设备表】

  • 从下面关于虚拟设备的论述中,选择一条正确的论述

     1.虚拟设备是指允许用户使用比系统中具有的物理设备更多的设备【错误】
     2.虚拟设备是指允许用户以标准方式来使用物理设备【错误】
     3.虚拟设备是指把一个屋里设备变换成多个对应的逻辑设备【正确】
     4.虚拟设备是指允许用户程序不必全部装入内存就可以使用系统中的设备【错误】
    
  • SPOOLing是对脱机I/O工作方式的模拟,SPOOLing系统中的输入井是对脱机输入中的【磁盘】进行模拟,输出井是对脱机输出中的【磁盘】进行模拟,输入进程是对脱机输入中的【外围控制机】进行模拟,输出进程是对脱机输出中的【外围控制机】进行模拟

  • 从下列关于SPOOLing系统的论述中,选择两条正确的

     1.构成SPOOLing系统的基本条件,是具有多外围输入机和外围输出机【错】
     2.构成SPOOLing系统的基本条件,是只要具有大容量,高速硬盘作为输入井和输出井【错】
     3.构成SPOOLing系统的基本条件,是只要操作系统中采用多道程序技术【错】
     4.SPOOLing系统是建立在分时系统中【错】
     5.SPOOLing系统是虚拟存储技术的体现【错】
     6.SPOOLing系统是在用户程序要读取数据时启动输入进程输入数据【错】
     7.当输出设备忙时,SPOOLing系统中的用户程序暂停执行,待I/O空闲时再被唤醒,去执行操作【错】
     8.SPOOLing系统实现了对I/O设备的寻你,只要输入设备空闲,SPOOLing可预先将输入数据从设备传送到输入井中供用户程序随时读取【对】
     9.在SPOOLing系统中,用户程序可随时将输出数据送到输出井中,待输出设备空闲时再执行数据输出操作【对】
    
  • 从下列论述中选出一条正确的论述?

     1.在现代计算机系统中,只有I/O设备才是有效的中断源【错】
     2.在中断处理过程中,必须屏蔽中断【错】
     3.同一用户所使用的I/O设备也可以并行工作【对】
     4.SPOOLing是脱机I/O系统【错】
    
  • 从下列关于驱动程序的论述中,选出一条正确的论述

     1.驱动程序与I/O设备的特性紧密相关,因此应为每个I/O设备配置一个专门的驱动【错】
     2.驱动程序与I/O控制方式紧密相关,因此对DMA方式应该以字节为单位去启动设备进行中断处理【错】
     3.由于驱动程序与I/O设备紧密相关,故必须全部用会标语言书写【错】
     4.对于一台多用户机,配置了相关的8个中断,此时可只配置了一个由多个中断共享的驱动程序【对】
    
  • 在下列磁盘调度算法中,平均寻道时间较短,但容易产生饥饿现象的是【SSTF】;电梯调度算法是指【SCAN】;能避免磁臂粘这现象的算法时【FSCAN】

Part C

  • 对打印机的I/O控制方式常常采用【中断驱动方式】,对磁盘的I/O控制方式常采用【DMA控制方式】
  • DMA是指允许【I/O设备】和【内存】之间直接交换数据的设备,在DMA中必须设置地址寄存器,用于存放【内存地址】,还必须设置【数据缓冲】寄存器用来暂存交换的数据
  • 设备控制器是【CPU】和【I/O设备】之间的接口,他接受来自【CPU】的I/O命令,并用于控制【I/O设备】的工作
  • 缓冲池中的每个缓冲区由【缓冲首部】和【缓冲体】两部分组成
  • I/O软件通常被组织成【用户层软件】,【设备独立性软件】,【设备驱动程序】和【I/O中断处理程序】四个层次
  • 驱动程序与【I/O设备的特性】紧密相关,如果计算机中连有3个同种类型的彩色终端和2个同种类型的黑白终端,可以为他们【2】个设备驱动程序
  • 为实现设备分配,系统中应配置【设备控制表】和【系统设备表】的数据结构,为实现控制器和通道的分配,系统中还应该配置【控制器控制表】和【通道控制表】的数据结构
  • 除了设备的独立性外,在设备分配时还要考虑【设备的固有属性】,【设备的分配算法】和【设备分配中的安全性】三种因素
  • 为了实现设备独立性,在系统中必须设置【逻辑设备表LUT】表,通常它还包括【逻辑设备名】,【物理设备名】和【设备驱动程序入口地址】三项
  • spooling系统是由磁盘中的【输入井】和【输出井】,内存中的【输入缓冲区】和【输出缓冲区】,【输入进程】和【输出进程】以及井管理程序构成的
  • 实现后台打印时,spooling系统中的输出进程,只为请求I/O的进程做两件事:1.为之在输出井中申请一【空闲缓冲区】,并将【要打印的数据】送入其中;2.为用户进程申请一张【用户打印请求表】,并将【用户的打印要求】填入其中,再将该表排在【假脱机文件】队列中
  • 磁盘的访问时间由【寻道时间】,【旋转延迟时间】和【数据传输时间】三部分组成,其中所占比重比较大的是【寻道时间】,故磁盘调度的目标为【使磁盘的平均寻道时间最短】
  • 磁盘调度中,选择优先为离当前磁头最近的磁道上的请求服务的算法为【最短寻道时间优先,SSTF】算法,这种算法的缺点是会产生【饥饿】现象;选择优先为当前磁头移动方向上,离当前磁头最近的磁道上的请求服务的算法为【电梯调度,SCAN】算法
  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值