第一节:I/O设备的基本概念和分类 |
什么是I/O设备 | I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的 硬件部件。UNIX系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作。Write操作:向外部设备写出数据。Read操作:从外部设备读入数据 | ||||||
按使用特性分类 |
| ||||||
按传输速率分类 |
| ||||||
按信息交换的单位分类 |
|
第二节:I/O控制器 |
I/O设备 |
| ||||||||
概念 | CPU无法直接控制I/O设备的机械部件,因此I/O设备还要有一个电子部件作为CPU和I/O设备机械部 件之间的“中介”,用于实现CPU对设备的控制。这个电子部件就是I/O控制器,又称设备控制器。CPU可控制I/O控制器,又由I/O控制器来控制设备的机械部件 | ||||||||
I/O控制器功能 |
| ||||||||
I/O控制器的组成 |
|
值得注意的小细节: ①一个I/O控制器可能会对应多个设备; ②数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O;另一些计算机则采用I/O专用地址,即寄存器独立编址。
| ||||||
第三节:I/O控制方式 | ||||||
需要注意的问题:1.完成一次读/写操作的流程;2. CPU干预的频率;3.数据传送的单位;4.数据的流向;5.主要缺点和主要优点 | ||||||
程序直接控制方式 |
| |||||||
中断驱动方式 |
引入中断机制。由于I/O设备速度很慢,因此在CPU发出读/写命令后,可将等待I/O的进程阻塞,先切换到别的进程执行。当I/O完成后,控制器会向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。处理中断的过程中,CPU从I/O控制器读一个字的数据传送到CPU寄存器,再写入主存。接着,CPU恢复等待I/O的进程(或其他进程)的运行环境,然后继续执行。 |
注意: ①CPU会在每个指令周期的末尾检查中断; ②中断处理过程中需要保存、恢复进程的运行环境,这个过程是需要一定时间开销的。可见,如果中断发生的频率太高,也会降低系统性能。 |
|
DMA方式——直接存储器存取 |
与“中断驱动方式”相比,DMA方式(Direct Memory Access,直接存储器存取。主要用于块设备的I/O控制)有这样几个改进: ①数据的传送单位是“块”。不再是一个字、一个字的传送; ②数据的流向是从设备直接放入内存,或者从内存直接到设备。不再需要CPU作为“快递小哥”。 ③仅在传送一个或多个数据块的开始和结束时,才需要CPU干预。 |
DMA 控制器 |
|
|
通道控制方式 |
|
|
难点理解:通道=弱鸡版CPU 通道程序=任务清单 |
第四节:I/O软件层次结构 |
用户层软件 |
| ||||||||||||||
设备独立性软件 |
| ||||||||||||||
设备驱动程序 |
| ||||||||||||||
中断处理程序 |
|
总结 | 理解并记住I/O软件各个层次之间的顺序,要能够推理判断某个处理应该是在哪个层次完成的(最常考的是设备独立性软件、设备驱动程序这两层。只需理解一个特点即可:直接涉及到硬件具体细节、且与中断无关的操作肯定是在设备驱动程序层完成的;没有涉及硬件的、对各种设备都需要进行的管理工作都是在设备独立性软件层完成的) |
第五节:I/O核心子系统 |
|
注:假脱机技术(SPOOLing技术)需要请求“磁盘设备”的设备独立性软件的服务,因此一般来说假脱机技术是在用户层软件实现的,就类似打印机的打印队列,用户层软件实现。但是408大纲又将假脱机技术归为“I/O核心子系统”的功能,因此考试时还是以大纲为准。 |
I/O调度 | 用某种算法确定一个好的顺序来处理各个I/O请求【如磁盘调度(先来先服务算法、最短寻道优先算法、SCAN算法、C-SCAN算法、LOOK算法、C-LOOK算法)。当多个磁盘I/O请求到来时,用某种调度算法确定满足I/O请求的顺序,同理,打印机等设备也可以用先来先服务算法、优先级算法、短作业优先等算法来确定I/O调度顺序】 |
设备保护 | 操作系统需要实现文件保护功能,不同的用户对各个文件有不同的访问权限(如:只读、读和 写等)。 在UNIX系统中,设备被看做是一种特殊的文件,每个设备也会有对应的FCB。当用户请求访问 某个设备时,系统根据FCB中记录的信息来判断该用户是否有相应的访问权限,以此实现“设 备保护”的功能。(参考“文件保护”小节) |
第五节:假脱机技术(SPOOLing技术) |
什么是脱机技术,脱机技术可以解决什么问题? | ||||||
|
假脱机技术的实现原理 |
| |||||||
共享打印机的原理分析 |
|
第六节:设备的分配与回收(设备独立性软件的功能) |
设备分配时应考虑的因素 |
| ||||||||||||||||||||||||||||||||
静态分配与动态分配 |
| ||||||||||||||||||||||||||||||||
设备分配管理中的数据结构 |
| ||||||||||||||||||||||||||||||||
设备分配步骤的改进方法 | 设备分配的有缺陷的方法: ①根据进程请求的物理设备名查找SDT(注:物理设备名是进程请求分配设备时提供的参数)【通过匹配进程提供的物理设备名和SDT当中每个标目的设备标识符,来找到对应的物理设备的DCT】 ②根据SDT找到DCT,若设备忙碌则将进程PCB挂到设备等待队列中,不忙碌则将设备分配给进程 ③根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配 给进程 ④根据COCT找到CHCT,若通道忙碌则将进程PCB挂到通道等待队列中,不忙碌则将通道分配给进程
|
第七节:缓冲区管理 |
缓冲区 |
| |||||||||||
单缓冲 |
| |||||||||||
双缓冲 |
|
使用单/双缓冲在通信时的区别
|
循环 缓冲 |
| |||||||||
缓冲池 |
|