OS - I/O管理和磁盘调度

1. 有哪几种基本I/O控制方式,分别适用于哪些场合?

有4种基本的I/O控制方式,分别如下:

  1. 程序I/O控制方式, 适用于早期计算机无中断机构, 处理机对I/O设备的控制采用程序I/O方式或称忙等的方式. 即处理器代表一个进程给I/O模块发送一个I/O命令; 该进程进入忙等待, 直到操作完成才能继续执行.
  2. 中断驱动I/O控制方式, 适用于有中断机构的计算机系统. 处理器代表进程向I/O模块发出一个I/O命令. 若来自进程的I/O指令是非阻塞的, 则处理器继续执行发出I/O命令的进程的后续指令. 若I/O指令是阻塞的, 则处理器执行的下一条指令来自操作系统, 它将当前的进程设置为阻塞态并调度其他进程.
  3. 直接存储器访问(DMA) I/O控制方式, 适用于具有DMA控制器的计算机系统中. 一个DMA模块控制内存和I/O模块之间的数据交换. 为传送一块数据, 处理器给DMA模块发出请求, 且只有在整个数据块传送结束后, 它才被中断.
  4. I/O通道控制方式, 适用于具有通道程序的计算机系统中. 通道(Channel)也称为外围设备处理器、输入输出处理机,是相对于CPU而言的. 是一个处理器, 也能执行指令和由指令的程序,只不过通道执行的指令是与外部设备相关的指令, 是一种实现主存与I/O设备进行直接数据交换的控制方式.

 

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

处理器想读或写一块数据时,它通过向DMA模块发送以下信息来给DMA模块发出一条命令:

  1. 请求读操作或写操作的信号,通过在处理器和DMA模块之间使用读写控制线发送
  2. 相关的I/O设备地址,通过数据线传送
  3. 从存储器中读或向存储器中写的起始地址,在数据线上传送,并由DMA模块保存在其地址寄存器中
  4. 读或写的字数,也通过数据线传送,并由DMA模块保存在其数据计数寄存器中。

然后处理器继续执行其他工作,此时它已把这个I/O操作委托给DMA模块。DMA模块直接从存储器中或向存储器中逐字传送整块数据,并且数据不再需要通过处理器。传送结束后,DMA模块给处理器发送一个中断信号,因此,只有在传送开始和结束时才会用到处理器。

 

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

  1. 缓和CPU和I/O设备的不匹配
  2. 减少对CPU的中断频率
  3. 提高CPU和I/O设备的并行性 

 

4.逻辑I/O和设备I/O有什么区别?如何实现设备的独立性?

逻辑I/O模块把设备当作一个逻辑资源来处理,它并不关心实际控制设备的细节。

设备I/O请求的操作和数据,被转换为适当的I/O指令序列、通道命令和控制器指令。

为了实现设备的独立性,应引入逻辑设备和物理设备两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备,而系统执行时,使用物理设备名称。鉴于驱动程序是一个与硬件(设备)紧密相关的软件,必须在驱动程序之上设置一层软件,称为设备独立性软件,以执行所有设备的公有操作、完成逻辑设备名到物理设备名的转换(设计一张逻辑设备表)并向用户层或文件层软件提供统一接口,从而实现设备独立性。

 

5. 何谓虚拟设备?

虚拟设备即通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用,通常把经过这种虚拟的设备称为虚拟设备。

最典型的虚拟存储设备是独立磁盘冗余阵列(RAID)

 

6. 试说明SPOOLing系统的组成。

spooling系统由三大部分组成:

  1. 输入井和输出井
  2. 输入缓冲和输出缓冲
  3. 输入进程SPi和SPo

 

7.面向块和面向流的设备有何区别,举一些例子

面向块的设备将信息保存在块中,块的大小通常是固定的,传送过程中一次传送一块,通常可以通过块号访问数据。磁盘和USB智能卡都是面向块的设备。

面向流的设备以字节流的方式输入/输出数据,它没有块结构。终端、打印机、通信端口、鼠标和其他指示设备及其他大多数非辅存设备,都属于面向流的设备。

 

8.磁盘读或写时有哪些延迟因素?

磁盘读或写时的延迟因素有:

  1. 存取时间:到达读或写位置所需要的时间,包括寻道时间和旋转延迟。寻道时间为磁头定位到磁道所需要的时间。旋转延迟为磁头到达扇区开始位置的时间;
  2. 传输时间:指传输所需的时间。一旦磁头定位完成,磁头就通过下面旋转的扇区,开始执行读操作或写操作,即操作的数据传送部分;
  1. 排队延迟:进程发出一个I/O请求时,它须先在一个队列中等待该设备可用,时间合适时,会将设备分配给这个进程。

 

9.一个磁盘的参数如下:每个扇区512字节,每道96个扇区,每面110道,共8个面可用,计算存储300000条120字节长的逻辑记录需要多少磁盘空间(扇区、磁道和盘面),忽略文件头记录和磁道索引,并假设记录不能跨越两个扇区。

512120=4.267<5 ,所以每个扇区可以装下4条逻辑记录

扇区:3000004=75000

磁道:7500096=781.25,需要782条磁道

盘面:782110=7.109,需要8个盘面

 

10.考虑第9题中的磁盘系统,假设磁盘转速是360rpm,处理器处理一次I/O中断的时间是2.5µs

(1)处理器采用中断驱动I/O方式从磁盘读一个扇区,每个字节中断一次,则处理器用于处理I/O中断的时间占数据传输时间的百分比是多少?

中断时间:1203000002.5=90 000 000 微秒 =90s

数据传输时间: 782360r/m60s/m)=130.33s

百分比:90130.33=69.05%

 

(2)如果采用DMA方式从磁盘读数据,假设每个扇区中断一次,则处理器用于处理I/O中断的时间占数据传输时间的百分比是多少?

中断时间:75000️2.5=187500 微秒 =0.1875s

百分比:0.1875(782➗ (360➗60))=0.144%

你可能感兴趣的:(OS - I/O管理和磁盘调度)