操作系统(第四版)第6章课件ppt

上传人:F****n 文档编号:88049880 上传时间:2019-04-17 格式:PPT 页数:46 大小:274KB
返回 下载 相关 举报
操作系统(第四版)第6章课件ppt_第1页
第1页 / 共46页
操作系统(第四版)第6章课件ppt_第2页
第2页 / 共46页
操作系统(第四版)第6章课件ppt_第3页
第3页 / 共46页
操作系统(第四版)第6章课件ppt_第4页
第4页 / 共46页
操作系统(第四版)第6章课件ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《操作系统(第四版)第6章课件ppt》由会员分享,可在线阅读,更多相关《操作系统(第四版)第6章课件ppt(46页珍藏版)》请在金锄头文库上搜索。

1、1,第6章 设备管理,2,目标和功能,I/O管理是操作系统的主要功能之一,负责管理所有I/O设备。 计算机系统中存在着大量的I/O设备,其性能和应用特点可能完全不同,所以要建立一个通用的、一致的设备访问接口,使用户能够方便地使用I/O设备。,3,6.1 I/O硬件组成 6.2 I/O软件的组成 6.3 磁盘管理,4,6.1 I/O硬件组成,6.1.1 I/O设备分类 字符设备:人机交互设备。是以字符为单位发送和接收数据的,通信速度比较慢。键盘和显示器、鼠标、扫描仪、打印机、绘图仪等。 块设备:外部存储器。以块为单位传输数据。常见块尺寸:512B32KB。如磁盘、磁带、光盘等。 网络通信设备:主

2、要用于与远程设备的通信。传输速度比字符设备快,比块设备慢。如网卡、调制解调器等。 时钟:按预先规定好的时间间隔产生中断。,5,驱动程序1,驱动程序2,驱动程序3,设备对象1a,设备对象1b,设备对象2a,设备对象2b,设备对象3a,文件对象1,文件对象2,6,6.1.2 设备控制器,1. I/O体系结构 I/O端口。是连接到I/O总线上的设备的I/O 地址集。每个设备寄存器有一个端口号。设备寄存器包括:控制寄存器、状态寄存器、数据缓冲寄存器等。 I/O接口。是处于一组I/O端口和对应的设备控制器之间的一种硬件电路。 I/O总线。是CPU与I/O设备之间的通路。,7,CPU,I/O端口,I/O端

3、口,I/O接口,I/O 控制器,I/O设备,I/O总线,PC的I/O 体系结构,8,I/O设备一般由机械和电子两部分组成。机械部分是设备本身。电子部分叫做设备控制器。 设备控制器处于CPU和I/O设备之间,接收从CPU发来的命令,控制I/O设备工作。 每个控制器有几个寄存器,用来与CPU通信。 控制寄存器:接收CPU发送的读写命令。 状态寄存器:包含设备的状态信息。 数据缓冲寄存器:通常为1B至4B。,2. 设备控制器,9,除了几个寄存器外,许多设备控制器还有一个操作系统可以读写的数据缓冲区。如在屏幕上显示像素的常规方法是使用一个视频RAM,该RAM基本上只是一个数据缓冲区。 磁盘控制器:从磁

4、盘驱动器出来的是一连串的位流,控制器把串行的位流组装为字节,存入控制器内部的缓冲区中,形成以字节为单位的块。对块验证后,再一次一个字节或字地存入内存。,10,6.1.3 I/O数据传输的控制方式,程序查询方式(polling) 中断方式 直接存储器访问(DMA)方式 通道控制方式,11,程序查询方式,向设备控制器发写命令,读设备控制器的设备状态,从存储器读数据,向设备控制器写入数据,N,出错,Y,传送完成,设备完成,Y,停止设备工作,N,重复执行,直到一批数据传输完成。,CPU忙等 串行工作,12,2. 程序中断方式,CPU/设备 并行工作,CPU响应中断,中断服务例程,CPU转去执行其他程序

5、,向设备控制器发写命令,处理中断,检查本次传输是否有错,设备驱动程序 启动设备工作,设备完成数据传输产生中断,有错?,完成?,重试或故障终止,中断返回,执行被中断的进程,N,Y,Y,13,传输数据量大和速度快的设备控制器,都支持DMA。 通常,CPU控制地址总线,与主存交换数据。 允许DMA控制器接管地址总线的控制权,直接控制控制器内部缓冲区与主存之间的数据交换。,3. 直接存储器访问(DMA),14,整块数据的传输是在DMA控制下完成的。仅在开始和结束时才需CPU干预。,CPU向DMA控制器发布读块命令,CPU读DMA控制器的状态,下条指令,CPU做其它事,中断,15,数据缓冲寄存器,主存地

6、址寄存器MAR,传送字节个数计数器DC,控制/状态寄存器,数据总线,地址总线,DMA控制器,主存,CPU,数据缓冲存储区,磁 盘,DMA控制器独立地进行数据传送,控制总线,16,DMA工作过程:,每当磁盘把一块数据读入控制器的数据缓冲区时,检验校验和。DMA控制器取代CPU,接管地址总线的控制权,直接控制与主存的数据交换。使CPU访问总线时速度会变慢。,17,与DMA方式相比,通道所需的CPU干预更少,且可以做到一个通道控制多台设备,进一步减轻了CPU的负担。 通道是一种专用的I/O处理机。 通道有自己的指令系统,若干条通道命令连接成通道程序。,4. 通道控制方式,18,CPU,主存储器,磁盘

7、控制器,软盘控制器,磁带控制器,读卡机,磁盘控制器,控制器,控制器,磁盘控制器,打印机,控制器,终端,数组多路通道,选择通道,字节多路通道,CPU、通道和I/O设备并行工作,总线,19,字节多路通道:以字节为单位传输信息,可以分时地执行多个通道程序,一个通道程序对应一台设备。主要用来连接大量慢速设备。 选择通道:每次传送一批数据,传送速度快。在一段时间内只能执行一个通道程序,只允许一台设备传输数据。可用于固定头磁盘等。 数组多路通道:结合了选择通道传送速度快和字节多路通道能够分时的优点。先为一台设备执行一条通道指令,再为另一台设备执行一条通道指令。可连接多台活动头磁盘机。,通道的三种类型,20

8、,工作过程: CPU向通道发出一条I/O指令,给出所要执行的通道程序的首地址和要访问的I/O设备。 通道执行通道程序便可完成CPU指定的I/O任务。 完成任务后,通道与设备一起发出中断请求,请求CPU处理。,21,6.2 I/O软件的组成,I/O软件的基本思想:按分层构建,较低层的软件为较高层的软件服务,使较高层软件独立于硬件,为用户提供统一接口。,22,设备独立性。用户程序中给出的设备名只是一个逻辑设备名,由OS实现逻辑设备与物理设备的映射。这样,无论系统设备如何改变,用户程序不受影响。 设备的统一命名。与设备独立性密切相关。一个设备的逻辑名只应是一个简单的字符串或一个整数,如 PRN,不依

9、赖于具体的设备。,6.2.1 I/O软件的目标,23,出错处理。数据传输中的错误应尽可能地在接近硬件层上处理,可重试多次。仅当低层软件无能为力时,才将错误上交高层处理。 缓冲技术。其目的就是设法使数据的到达率和离去率相匹配,以提高系统的吞吐量。 设备的分配。涉及到共享设备(磁盘)和独占设备(打印机)的分配问题。,24,6.2.2 I/O软件的功能,中断处理程序 设备驱动程序 独立于设备的软件 用户层的I/O接口,I/O软件的分层:,在I/O软件中,大部分软件是与设备无关的。,25,I/O系统的层次结构,用户层的I/O接口,独立于设备的软件,设备驱动程序,中断处理程序,硬件,I/O请求,I/O完

10、成后 的回答,26,1. 中断处理程序,进程在启动一个I/O操作后阻塞起来,I/O操作完成,控制器产生一个中断。 CPU响应中断,执行中断处理程序。 检查设备状态。 若正常完成,就唤醒等待的进程。然后检查是否还有待处理的I/O请求,若有就启动。 若传输出错,再发启动命令重新传输;或向上层报告“设备错误”的信息。 中断返回被中断的进程,或转进程调度。,27,每个设备驱动程序处理一种类型设备。由一些与设备密切相关的代码组成。提供一些与文件类似的API:open, close, read, write, control等。 是OS中唯一知道设备控制器的配置情况,如设置有多少个寄存器以及这些寄存器作用

11、。 通常包含三部分功能:设备初始化。启动设备传输数据的例程。中断处理例程。,2. 设备驱动程序,28,3. 独立于设备的软件,(1)基本任务:实现所有设备都需要的功能,且向用户提供一个统一的接口。 (2)设备命名。把设备的符号名映射到正确的设备驱动程序。 UNIX,/dev/tty01i节点主设备号(用来确定终端设备驱动程序),次设备号(作为参数用来确定要读/写的是哪一台终端)。,29,(3)设备保护。将所有的I/O指令作为特权指令。禁止用户对I/O设备直接访问,必须通过系统调用命令进行I/O操作。UNIX的I/O设备作为特别文件用“rw”位进行保护。 (4)提供与设备无关的块尺寸。应向上层软

12、件提供大小统一的块尺寸。上层软件只与抽象设备打交道,使用等长的逻辑块。,30,(5)缓冲技术,缓和CPU与I/O设备间速度不匹配的矛盾。 每个缓冲区有一个缓冲控制块。 以空间换取时间 单缓冲:OS为I/O请求分配一个缓冲区。 双缓冲:建立两个缓冲区,可以平滑I/O设备和进程之间的数据流,改善系统效率。 多缓冲和缓冲池:多进程共享缓冲池。,31,高速缓存-Linux,缓冲只保留数据仅有的一个现存拷贝。 有时一块内存区域可以同时用于两个目的。 例如,为了有效调度磁盘I/O,在内存开辟了缓冲区来保留磁盘数据。这些缓冲区也可以用作高速缓存,被多个进程共享。当内核收到I/O请求时,会首先检查高速缓存里是

13、否有。,32,(6)负责设备分配和调度,静态分配:进程运行前,将其所需的设备一次全部分配给它。简单,不死锁,但利用率低。 动态分配:在进程运行过程中,分配设备。设备利用率高,但易引起死锁。,33,独占设备:临界资源,如打印机。 共享设备:多个进程可交叉访问。如磁盘。 虚拟设备:是指设备本身是独占设备,而经过虚拟技术处理,可以把它改造成共享设备。 用可共享的高速设备来模拟独占的慢速设备,提高独占设备的利用率。 Spooling技术是实现虚拟设备的一种技术。它利用可共享磁盘的一部分空间,来模拟独占的I/O设备。以空间换时间,34,假脱机输出:以打印机为例,Spooling实际是一种缓冲技术。进程要

14、打印时,系统并不为它分配打印机,而是把待打印的数据缓冲到一个独立的磁盘文件上,形成待打印文件队列。之后,Spooling系统一次一个地将打印队列上的文件送打印机打印。这种技术又叫缓输出技术。,35,(7)出错处理,绝大多数错误是与设备密切相关的,一般由设备驱动程序来处理。 处理设备驱动程序处理不了的错误(重试几次操作后,仍有错误)。将错误信息报告调用者。,36,大部分I/O软件都包含在操作系统中,有一小部分是由与用户程序连接在一起的库函数构成的。 例 用户程序中的库函数: count=read(fd, buffer, nbytes); 程序运行期间,库函数read将与该程序连接在一起形成一个可

15、执行文件装入主存。 这些函数通常只是将系统调用时所需要的参数放在合适的位置,由系统调用实现真正的操作。如“Printf”将调用“write”系统调用。,4. 用户空间的I/O软件,37,读文件的I/O操作步骤,用户进程发出一个读文件的系统调用。 设备独立I/O软件检查参数的正确性。若正确,再检查高速缓存中有无要读的信息块。若有,则从缓冲区直接读到用户区。若无,转3) 执行物理I/O。独立于设备的I/O软件将设备的逻辑名转换成物理名,检查设备操作权限。将I/O请求排队,阻塞用户进程且等待I/O完成。 核心执行设备驱动程序,分配缓冲区,准备接收数据,且向设备控制寄存器发启动读命令。,38,设备控制

16、器控制设备,执行数据传输。 当采用DMA控制器控制传输时,一个块传输完成,硬件产生一个中断。 CPU响应中断,转磁盘的中断处理程序。检查中断原因和设备的执行状态,若出错,则向设备驱动程序发信号,若可重试,则再启动设备重传一次;否则,向上报告错误。若传输正确,将数据传输给指定的用户进程空间,将等待进程唤醒并且放入就绪队列,等待调度。 当用户进程被调度执行时,从I/O系统调用的断点恢复执行。,39,6.2.3 同步I/O和异步I/O,同步I/O:进程发出I/O请求后阻塞等待,直到数据传输完成后被唤醒,之后才能访问被传输的数据。 异步I/O:允许进程发出I/O请求后继续运行。将来I/O完成后的通知方式:设置进程地址空间内的某个变量;通过触发信号或软件中断;进程执行流之外的某个回调函数。 对于不必进行缓冲读写的快速I/O,使用同步I/O

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号