- 5
- 0
- 约3.93千字
- 约 56页
- 2020-07-06 发布于浙江
- 举报
第6章 设备管理;教学内容
6.1 I/O系统组成
6.2 数据传输控制方式
6.3 中断技术
6.4 缓冲技术
6.5 设备分配
6.6 SPOOLING系统
6.7 I/O控制过程
6.8 磁盘I/O
6.9 LINUX系统的设备管理
本章小结
;6.1 I/O系统组成;6.1.1 I/O设备;6.1.2 设备控制器;2. 设备控制器的组成;6.1.3 I/O通道;6.2 数据传输控制方式;6.2.2 中断控制方式;6.2.3 DMA方式;6.2.4 通道控制方式;6.3 中断技术;6.3.2 中断源;6.3.3 中断响应; 中断响应的过程:;6.4 缓冲技术;6.4.2 单缓冲;6.4.3 双缓冲;6.4.4 循环缓冲;6.4.5 缓冲池;6.5 设备分配;2. I/O设备的分配算法;3. 设备分配的安全性;6.5.2 虚拟设备技术;6.6 SPOOLING系统;6.6.2 SPOOLING系统的组成;6.7 I/O控制过程;6.8 磁盘I/O;6.8.2 磁盘I/O性能;(3)传输时间Tt
这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。由读写的字节数和磁盘旋转速度决定。
其中,b为一次读写的字节数,r为磁盘每秒的转数,N为每条磁道的字节数
对磁盘的访问时间为三部分时间之和:T=Ts + Tr + Tt。在这三个时间中,寻道时间和旋转延迟与读写的字节数无关,寻道时间所占比例最大。
;6.8.3 磁盘调度;2. 最短寻道时间优先算法;3. 扫描算法;4. 循环扫描算法;6.8.4 磁盘高速缓存;6.9 LINUX系统的设备管理;6.9.2 LINUX设备驱动程序的接口;2. 设备开关表
LINUX系统把块设备和字符设备又分别细分为若干类。如:块设备可分为硬盘、软盘、磁带、光盘等类,字符设备可分为终端设备、打印机等。为指定一类设备,将设备类从0开始顺序编号,称为主设备号;同一类的设备可能有许多,为了指定一台具体设备,需要一个次设备号来标识。因此,在指定一台具体设备时要给出:块设备/字符设备、主设备号、次设备号。
; 设备开关表相当于一个二维矩阵,每一行含有同一类设备的驱动程序入口地址,主设备号与行号一一对应;每一列是完成不同操作(open、close、read、write)的驱动程序的入口地址。
;6.9.3 LINUX的磁盘高速缓存;当从磁盘中读数据时,文件系统先从磁盘高速缓存中读,如果数据已在高速缓存中,则可以不必启动磁盘I/O,如果数据不在高速缓存中,则启动磁盘I/O,从磁盘读取数据送往高速缓存,进程再从高速缓存中读取数据。
当进程往磁盘上写数据时,先往高速缓存中写,以便随后又读它时,能从高速缓存中读取,而不必启动磁盘读取。LINUX采取了“延迟写”策略,即:如果缓冲区还没有写满,则不急于把缓冲区的内容写到磁盘上,而是在缓冲管理数据结构中对该缓冲区设置延迟写标志,当高速缓存中的数据延迟到必须往磁盘上写的时候才进行写盘操作。
;2. 磁盘缓冲管理的数据结构; 忙标志位BUSY:缓冲区当前是否正忙。
有效位AVE:缓冲区包含的数据是否有效。
延迟写位DELWR:是否延迟写。
写标志位WRITE:是否正在把缓冲区的内容写到磁盘上。
读标志位READ:是否从磁盘往缓冲区读取信息。
等待位WAIT:是否有一个进程正在等待该缓冲 区。
设备缓冲区队列前向指针b-forw
设备缓冲区队列后向指针b-back
空闲缓冲区队列前向指针av-forw
空闲缓冲区队列后向指针av-back
;要对所有缓冲区进行管理,必须将所有缓冲首部组织成一定的数据结构,LINUX建立了两个缓冲区队列:空闲缓冲区队列和设备缓冲区队列。
为了对缓冲区进行分配,把所有的空闲缓冲区组织成一个队列。此队列中的所有缓冲区的忙标志位BUSY均为0。该队列是一个双向循环链表。
;对于每类设备都建立一个设备缓冲区队列,是与该类设备有关的所有缓冲区构成的队列。此队列中的所有缓冲区首部的忙标志位BUSY均为1。该队列是一个双向循环链表。
任何缓冲区首部,要么位于空闲缓冲区队列中,要么位于设备缓冲区队列中。
;3. LINUX磁盘缓冲区管理算法;当缓冲区的信息读到相应进程的内存区后,或进程信息写到缓冲区后,便释放进程使用的缓冲区,将flag中的BUSY位置0,送入空闲缓冲区队尾,即使置为延迟写的缓冲区也送入空闲缓冲区队列。这样可以使有限的缓冲区得到充分利用,满足多个并发进程的需求。
当一个缓
原创力文档

文档评论(0)