目录
IO设备的基本概念和分类
IO设备的分类
按使用特性分类
按传输速率分类
按信息交换单位分类
IO控制器
l/O设备的电子部件(I/O控制器)
l/O控制器的组成
内存映像I/o vs.寄存器独立编址
IO控制方式
程序直接控制方式
中断驱动方式
DMA方式
编辑通道控制方式
DMA与通道的区别
IO软件层次结构
用户层IO软件
设备独立性软件
主要功能
中断处理程序
输入/输出应用程序接口 & 设备驱动程序接口
输入/输出应用程序接口
阻塞/非阻塞I/O
设备驱动程序接口
IO核心子系统
假脱机技术(SPOOLing )
什么是脱机技术
输入井和输出井
共享打印机原理分析
设备的分配与回收
设备分配时应考虑的因素
静态分配和动态分配
设备分配管理中的数据结构
设备分配的步骤
编辑编辑
设备分配步骤的改进
缓冲区管理
什么是缓冲区? 有什么作用?编辑编辑
单缓冲
双缓冲
使用单/双缓冲在通信时的区别
高速缓存与缓冲区对比
相同点
不同
循环缓冲区
缓存池
磁盘管理
磁盘的结构
磁盘、磁道、扇区
如何在磁盘中读/写数据
盘面、柱面
磁盘的物理地址
编辑 磁盘的分类
磁盘调度算法
一次磁盘读/写操作需要的时间
先来先服务算法 (FCFS)
最短寻找时间优先 (SSTF)
扫描算法 (SCAN)
LOOK 调度算法
循环扫描算法 (CSCAN)
C-LOOK 调度算法
磁盘的管理
磁盘初始化
引导块
坏块管理
固态硬盘SSD
IO设备的基本概念和分类
“I/O”就是“输入/输出”(Input/Output)I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。
IO设备的分类
按使用特性分类
按传输速率分类
按信息交换单位分类
IO控制器
I/0设备的机械部件主要用来执行具体I/O操作。如我们看得见摸得着的鼠标/键盘的按钮:显示器的LED屏:移动硬盘的磁臂、磁盘盘面
l/0设备的电子部件通常是一块插入主板扩充槽的印刷电路板
l/O设备的电子部件(I/O控制器)
l/O控制器的组成
值得注意的小细节:
- 一个I/0控制器可能会对应多个设备;
- 数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像l/0;另一些计算机则采用I/0专用地址,即寄存器独立编址
内存映像I/o vs.寄存器独立编址
IO控制方式
程序直接控制方式
中断驱动方式
DMA方式
通道控制方式
DMA与通道的区别
DMA需要CPU来控制传输的数据块大小、传输的内存位置、而通道方式中这些信息是由通道控制的
DMA控制器对应一台设备与内存传递数据,通道可以控制多态设备与内存的数据交换
IO软件层次结构
用户层IO软件
设备独立性软件
用于实现用户程序与设备驱动器的统一接口、设备命令、设备保护、差错控制及设备分配与释放,同时为设备管理与数据传送提供必要的存储空间
设备独立性也称为设备无关性,使得应用程序独立于具体使用的物理设备(使用逻辑设备名)
使用逻辑设备名的好处:增加设备分配的灵活性;易于实现IO重定向
主要功能
- 执行所有设备的公有操作(设备的分配与回收,逻辑设备名映射为物理设备名,对设备进行保护,进制用户直接访问设备),屏蔽设备之间数据交换的速度差异等
- 向用户层(文件层)提供统一接口∶无论哪种设备,他们向用户提供的接口都是相同的
不同设备的内部硬件特性也不同,这些特性只有厂家才知道,因此厂家须提供与设备相对应的驱动程序,CPU执行驱动程序的指令序列,来完成设置设备寄存器,检查设备状态等工作
中断处理程序
输入/输出应用程序接口 & 设备驱动程序接口
输入/输出应用程序接口
阻塞/非阻塞I/O
- 阻塞I/O: 应用程序发出I/O系统调用,进程需转为阻塞态等待
eg:字符设备接口-一从键盘读一个字符 get
- 非阻寨I/O:应用程序发出I/O系统调用,系统调用可迅速返回,进程无需阻塞等待
eg:块设备接口--往磁盘写数据 write
设备驱动程序接口
- 不同的操作系统,对设备驱动程序接口的标准各不相同。
- 设备厂商必须根据操作系统的接口要求,开发相应的设备驱动程序,设备才能被使用
IO核心子系统
假脱机技术(SPOOLing )
什么是脱机技术
输入井和输出井
共享打印机原理分析
设备的分配与回收
设备分配时应考虑的因素
静态分配和动态分配
- 静态分配:进程运行前为其分配全部所需资源,运行结束后归还资源(破坏了“请求和保持”条件,不会发生死锁)
- 动态分配:进程运行过程中动态申请设备资源
设备分配管理中的数据结构
设备分配的步骤
根据进程请求的物理设备名查找SDT(注:物理设备名是进程请求分配设备时提供的参数)
根据SDT找到DCT,若设备忙碌则将进程PCB挂到设备等待队列中,不忙碌则将设备分配给进程。
根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配
给进程
根据COCT找到CHCT,若通道忙碌则将进程PCB挂到通道等待队列中,不忙碌则将通道分配给进
程。
设备分配步骤的改进
缓冲区管理
什么是缓冲区? 有什么作用?
单缓冲
结论:采用单缓冲策略,处理一块数据平均耗时 Max(C, T)+M
双缓冲
结论:采用双缓冲策略,处理一个数据块的平均耗时为 Max(T, C+M)
使用单/双缓冲在通信时的区别
显然,若两个相互通信的机器只设置单缓冲区,在任一时刻只能实现数据的单向传输。
高速缓存与缓冲区对比
相同点
都介于高速设备和低速设备之间
不同
-
存放数据
高速缓存:存放的是低速设备上的某些数据的复制数据
缓冲区:存放的是低速设备传递给高速设备的数据,这些数据在低速设备上不一定有备份,这些数据再从缓冲区传送到高速设备
-
目的
高速缓存∶高速缓存存放的是高速设备经常要访问的数据,如高速缓存中数据不在,高速设备就要访问低速设备
高速设备和低速设备的通信都要经过缓冲区,高速设备永远不会去直接访问低速设备
循环缓冲区
缓存池
磁盘管理
磁盘的结构
磁盘、磁道、扇区
如何在磁盘中读/写数据
需要把“磁头”移动到想要读/写的扇区所在的磁道磁盘会转起来,让目标扇区从磁头下面划过,才能完成对扇区的读/写操作。
盘面、柱面
磁盘的物理地址
磁盘的分类
磁盘调度算法
一次磁盘读/写操作需要的时间
操作系统的磁盘调度算法会直接影响寻道时间