操作系统——4.设备管理

第四章 设备管理

4.1 I/O系统

★ 设备管理的基本功能

  • 为进程管理计算机系统提供接口;
  • 按照相关算法分配和释放I/O设备;
  • 实现CPU和I/O设备之间、I/O设备和I/O设备之间的并行操作;
  • 实现其它功能,如缓冲区的管理、实现设备的独立性、虚拟性等。

★ 设备的分类

  • 使用特性(存储设备、输入输出设备)
  • 传输速率(低速,中速,高速)
  • 信息交换单位(块设备、字符设备)
  • 共享属性(独占设备、共享设备、虚拟设备)

★ 块设备 vs 字符设备
块设备 :用于存储信息;信息存取的基本单位是数据块;传输速率高且可寻址
字符设备:用于数据的输入输出;基本单位是字符;传输速率较低且不可寻址

★ 设备控制器
概念:CPU与I/O设备之间的接口;可控制一个或多个设备;可编址设备,设备地址与设备一一对应
基本功能包括:接收和识别命令、数据交换、标识和报告设备的状态、地址识别、数据缓冲和差错控制。

4.2 I/O控制方式

★ 程序I/O方式
CPU代表进程给I/O模块发送I/O命令,该进程进入忙等待,等待操作完成,才可以继续执行。

★ 中断驱动I/O
CPU代表进程给I/O模块发送I/O命令,然后,如果该进程不需要等待I/O,则继续执行后续指令,否则当前进程阻塞,CPU调度其他进程。I/O模块完成操作后,处理器被该模块中断。

★ DMA控制方式
在外围设备和内存之间开辟直接的数据交换通路,成批地进行数据交换,减轻 CPU处理负担。(基本单位:数据块)
(即可以在没有处理器参与的情况下,从内存中移出或者往内存中移入一块数据,仅在传送开始和结束时要用到处理器)

. 无中断 使用中断
通过处理器实现I/O和内存间的传送 程序控制I/O 中断驱动I/O
I/O和内存间直接传送 直接存储器访问 (DMA)

★ DMA控制方式与中断控制方式的区别:

. DMA控制方式 中断驱动方式
中断频率 一块数据全部传送结束时才中断CPU 每次传输一个数据即产生中断
数据传输 数据传送在DMA控制器的控制下完成 数据传送在中断处理时由CPU控制完成

★ I/O通道控制方式
通道通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的。通道程序由一系列通道指令(或称为通道命令)所构成的。

与DMA控制方式的区别:
DMA控制方式需要CPU来控制传输的方向、数据块大小和传输的内存位置,而通道控
制程序中这些信息是由通道控制的。

4.3 缓冲管理

★ 缓冲的引入

(如果一个进程发出一个I/O命令并被挂起等待结果,然后在开始I/O操作前被换出,那么该进程被阻塞,其等待I/O事件的发生,I/O操作也被阻塞,它等待该进程被换入。为避免死锁,在发出I/O请求前,参与I/O操作的用户存储空间必须被立即锁定在内存中,即使这个I/O操作正在排队,并且在一段时间内不会执行。同样的考虑也适用于输出操作。所以,为避免这些开销和低效操作,在输入请求发出前就开始执行输入传送,并且在输出请求发出一段时间之后才开始执行输出传送。)

  • 缓和CPU与I/O设备之间速度不匹配的矛盾
  • 减少对CPU的中断频率
  • 提高CPU和I/O设备之间的并行性

★ 缓冲的类型

无缓冲:
在这里插入图片描述
单缓冲:
输入传送的数据被放到系统缓冲区中。当传送完成时,进程把该块移到用户空间,并立即请求另一块(这叫做预读或预先输入)。这样做的原因时期望这块数据最终会被使用。由于输入发生在系统内存中而不是用户进程内存,因此操作系统可以将该进程换出。
在这里插入图片描述
双缓冲/缓冲对换:
在这里插入图片描述
多缓冲(循环缓冲、多缓冲队列)

★ SPOOLing技术(磁盘中的缓冲)

在磁盘中建立I/O缓冲区,缓和CPU的高速性与I/O设备低速性间的矛盾。

在联机(即CPU控制)情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作;

通过SPOOLing技术便可将一台独占物理I/O设备虚拟为多台逻辑I/O设备,从而允许多个用户共享一台物理I/O设备。
组成:输入(输出)进程;输入(输出)井;输入(输出)缓冲
在这里插入图片描述

4.4 设备管理软件层次结构

(1)用户进程
(2)设备硬件无关层:实现设备映射功能,把逻辑I/O设备映射到物理I/O设备
设备独立性/设备无关性:应用程序独立于具体使用的物理设备
(3)设备硬件相关层:实现设备驱动功能,控制物理I/O设备以便完成实际的I/O操作
(4)设备硬件

4.5 设备分配

设备分配算法:

  • 先来先服务
  • 优先级高者优先

安全性: - 安全分配方式

  • 不安全分配方式

4.6 磁盘存储器管理

磁盘访问时间 = 寻道时间 + 旋转延迟时间 + 传输时间
寻道时间TS = m * n + s (m-常数,n-移动磁道数,s-启动磁臂时间)
旋转延迟Tr = 1/(2r) (r-磁盘转速-单位:转数/单位时间)
传输时间Tt= b/(rN) (b-每次读写的字节数,r-磁盘转速,N-一条磁道上的字节数)
磁盘调度算法:
在这里插入图片描述

4.7 RAID

由来:辅存性能的提高速度远远低于处理器和内存性能的提高速度,那么可以通过使用多个并行的组件来获得额外的性能。-------> 独立并行运行的磁盘阵列的开发
独立磁盘冗余阵列(Redundant Array of Independent Disks)RAID

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章