操作系统第五章总结/
第五章 输入/输出管理
- I/O控制方式:程序直接控制方式,中断驱动方式,DMA方式,通道控制方式。
- 程序直接控制方式:cpu需要对外设进行循环检查,直到确定该字已经在IO控制器的数据寄存器中。CPU和iO设备只能串行。
- 中断驱动方式:允许io设备主动打断cpu运行并请求服务,从而解放cpu,使cpu向io控制器发送完读命令后可以继续做其他工作。以字传输,每个字需中断。
- DMA方式:在IO设备和内存之间开辟直接数据通路,彻底解放cpu,以数据块传输,仅在开始或结束时候才需要cpu干预,整块数据传送是在DMA控制器的控制下完成。
- DMA控制器中应设置包括四类寄存器:命令/状态寄存器(CR)接受从cpu发来的io命令或控制信息或设备的状态,内存地址寄存器(MAR)输入是存放内存的起始目标地址/输出时存放内存源地址,数据寄存器(DR)暂存内存到设备或设备到内存的数据,数据计数器(DC)存放本次传送的字数
- DMA方式工作过程:当cpu接受到io设备的DMA请求时候,它给DMA控制器发出一条命令,启动DMA控制器,由DMA控制操作数据,cpu去做其他事,DMA控制器和存储器交互,传送整个数据块,每次仅传一个字,这个过程不需cpu参与,当全部传送完成,DMA控制器发送中断信号给cpu。
- 通道控制方式:io通道是专门负责输入输出的处理机。一组数据块的读写为单位,实现cpu,通道,和io设备三者并行。
- 通道控制方式工作过程:cpu收到io设备请求,向通道发生一条io指令,给出所执行通道程序的首地址和访问的io设备,通道执行通道程序完成cpu指定io任务,数据传送结束后向cpu发中断请求。
- io通道和一般处理机的区别:通道指令单一,没有自己的内存,通道程序存放在主机内存和cpu共享内存。
- io通道和DMA方式区别:DMA方式需要cpu来控制传输的数据块大小,传输的内存位置,每DMA控制器对应一台设备和内存传递数据;通道控制传输的信息,可以控制多台设备和内存的数据交换。
- io子系统的层次:用户层io软件,设备独立性软件,设备驱动程序,中断处理程序,硬件设备
- I/O调度就是确定一个好的顺序来执行这些I/O请求。
- 磁盘高速缓存(Disk Cache)利用内存空间来暂存从磁盘中读出的一系列盘块中的信息。
- 磁盘高速缓存在逻辑上属于磁盘,物理上则是驻留在内存中的盘块。
- 高速缓存在内存中分为两种形式:一种是在内存中开辟一个单独的存储空间作为磁盘高速缓存,大小固定;另一种是把未利用的内存空间作为一个缓冲池,供请求分页系统和磁盘I/O时共享。
- 在设备管理子系统中,引入缓冲区的目的主要有:
1)缓和CPU与I/O设备间速度不匹配的矛盾。
2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
3)解决基本数据单元大小(即数据粒度)不匹配的问题。
4)提高CPU和I/O设备之间的并行性。 - 缓冲技术有:单缓冲(在设备和处理机之间设置一个缓冲区)双缓冲(缓冲区1满了再装填2,处理完1,2满了则处理2)循环缓冲(多个大小相等的缓冲区,每个缓冲区有链接指针到下个缓冲区,最后一个指向第一个)缓冲池(系统公用缓冲区,缓冲区分三个队列)
-
高速缓存和缓冲区的区别
- 设备分配是指根据用户的I/O请求分配所需的设备。分配的总原则是充分发挥设备的使用效率,尽可能地让设备忙碌,又要避免由于不合理的分配方法造成进程死锁。
- 设备的特性来看,采用下述三种使用方式的设备分别称为独占设备、共享设备和虚拟设备。
- SPOOLing技术是在批处理操作系统时代引入的,即假脱机I/O技术。这种技术用于对设备的操作,实质上就是对I/O操作进行批处理。
- SPOOLing技术实质上是一种以空间换取时间的技术,请求分页系统中的页面调度算法刚好相反,是以时间换空间的技术。
- 设备分配依据的主要数据结构:设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)和系统设备表(SDT)
- 设备分配先后访问的数据结构:SDT—DCT—COCT—CHCT
- 一个设备控制表就表征一个设备,而这个控制表中的表项就是设备的各个属性。每个设备都分为机械部件和电子部件两部分,其中负责解析上层传达的命令并控制解析部件运作的是电子部件(控制器),所以每个DCT,都需要一个表项来表示控制器,也就是需要一个指向控制器控制表(COCT),因此DCT与COCT有一一对应的关系。
-
系统设备表SDT:整个系统只有一张SDT。它记录已连接到系统中的所有物理设备的情况,每个物理设备占一个表目。
- 设备分配考虑因素:I/O设备的固有属性、I/O设备的分配算法、I/O设备分配的安全性以及I/O设备的独立性。
- 设备分配原则:设备分配应根据设备特性、用户要求和系统配置情况。分配的总原则:既要充分发挥设备的使用效率,又要避免造成死锁,还要将用户程序和具体设备隔离开。
- 对于独占设备,既可以用动态分配方式也可以采用静态分配方式,往往采用静态分配方式,即在作业执行前,将作业所要用的这一类设备分配给它。共享设备可被多个进程所共享,一般采用动态分配方式,但在每个I/O传输的单位时间内只被一个进程所占有,通常采用先请求先分配和优先级高者优先的分配算法。
- 为了提高设备分配的灵活性和设备的利用率、方便实现I/O重定向,因此引入了设备独立性。设备独立性是指应用程序独立于具体使用的物理设备。为了实现设备独立性,在应用程序中使用逻辑设备名来请求使用某类设备,在系统中设置一张逻辑设备表(LUT),用于将逻辑设备名映射为物理设备名。LUT表项包括逻辑设备名、物理设备名和设备驱动程序入口地址;当进程用逻辑设备名来请求分配设备时,系统为它分配相应的物理设备,并在LUT中建立一个表项,以后进程再利用逻辑设备名请求I/O操作时,系统通过查找LUT来寻找相应的物理设备和驱动程序。
-
在系统中可采取两种方式建立逻辑设备表:
1)在整个系统中只设置一张LUT。这样,所有进程的设备分配情况都记录在这张表中,故不允许有相同的逻辑设备名,主要适用于单用户系统中。
2)为每个用户设置一张LUT。当用户登录时,系统便为该用户建立一个进程,同时也为之建立一张LUT,并将该表放入进程的PCB中。 - SPOOLing系统的主要特点有:提高了I/O的速度:将独占设备改造为共享设备;实现了虚拟设备功能。
- 输入输出井是在磁盘上开辟存储空间,输入输出缓冲区是在内存中开辟。
- 用户打印数据首先被送到输出井,输出井在磁盘。