操作系统原理教程(第3版)第六章课件.ppt
《操作系统原理教程(第3版)第六章课件.ppt》由会员分享,可在线阅读,更多相关《操作系统原理教程(第3版)第六章课件.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 设备管理涉及计算机系统与外部世设备管理涉及计算机系统与外部世界进行数据交换的工作。界进行数据交换的工作。 这些工作的完成是这些工作的完成是通过通过各种各种I/O设设备备进行数据的采集、加工处理进行数据的采集、加工处理和和输出输出等实现的。等实现的。 操作系统的设备管理的主要工作是:操作系统的设备管理的主要工作是:提供用户及系统其它部分使用设备的简单提供用户及系统其它部分使用设备的简单方便的接口。方便的接口。负责设备的分配和回收负责设备的分配和回收向设备发送命令,启动设备传输;捕捉设向设备发送命令,启动设备传输;捕捉设备的中断,对设备进行中断处理。备的中断,对设备进行中断处理。控制设控制设备完
2、成备完成I/O任务任务 。还包括:实现其它功能还包括:实现其它功能,包括利用缓冲技术,改善系统的性能等。6.1 I/O硬件组成6.2 I/O软件的组成6.3 设备分配6.4 磁盘管理按信息交换的单位分类按信息交换的单位分类: 块设备块设备(Block Device):外部存储器/辅助存储器,如磁盘、磁带、光盘等。处理信息的基本单位是定长数据块。块的大小为512B4KB等。传输速率较高,几MB/秒; 字符设备字符设备(Character Device): 如输入型设备键盘、鼠标、图形扫描器等; 输出型设备显示器、打印机、绘图机。 网络接口等。传输速率较低,不可寻址。-网络通讯设备 网卡,调制解调
3、器。不全:时钟。按设备共享属性分类按设备共享属性分类: 独占设备独占设备: 如打印机等。 共享设备共享设备:指在一段时间内允许多个进程交叉访问的设备。如磁盘等。I IO O设备一般由机械和电子两部分组成。设备一般由机械和电子两部分组成。电子部分叫做设备控制器或适配器电子部分叫做设备控制器或适配器(adapter)(adapter)。在小型和微型机中,它常采在小型和微型机中,它常采用印刷电路卡插入计算机中。用印刷电路卡插入计算机中。机械部分是设备本身机械部分是设备本身。控制器卡上通常有一个插板,通过电缆与控制器卡上通常有一个插板,通过电缆与设备相连。通常设备相连。通常一个一个控制器可以连接两个、
4、控制器可以连接两个、四个,甚至八个相同的设备四个,甚至八个相同的设备。常常把这两部分分开处理,以提供更加模常常把这两部分分开处理,以提供更加模块化、更加通用的系统设计。块化、更加通用的系统设计。控制器与设备之间的接口通常是一个低级控制器与设备之间的接口通常是一个低级接口接口, ,它直接控制设备的读写。它直接控制设备的读写。每个控制器有几个寄存器每个控制器有几个寄存器(如如控制命令寄存控制命令寄存器、状态寄存器和数据缓冲寄存器器、状态寄存器和数据缓冲寄存器等等)用来用来与与CPUCPU进行通讯。进行通讯。各类设备及控制器需要使用和占用系统的各类设备及控制器需要使用和占用系统的某些资源,某些资源,
5、如如I/OI/O端口(端口(设备寄存器的设备寄存器的地地址)、存储器、中断请求号和址)、存储器、中断请求号和DMADMA(直接存储器访问 )通道等。)通道等。控制器主要两个作用:控制器主要两个作用:1 1。负责解释从。负责解释从I/OI/O接口接收到的高级命令,接口接收到的高级命令,并向设备发送适当的信号序列强制设备执并向设备发送适当的信号序列强制设备执行特定的操作行特定的操作2.2.负责转换和解释从设备接收到的电信号,负责转换和解释从设备接收到的电信号,并修改状态寄存器,以反映设备的工作状并修改状态寄存器,以反映设备的工作状态。态。数据寄存器控制/状态寄存器I/O逻辑控制器与设备接口1控制器
6、与设备接口i数据线数据线地址线地址线控制线控制线CPUCPU与控制器接口与控制器接口控制器与设备接口控制器与设备接口状态状态控制控制数据数据数据数据状态状态控制控制CPU设备控制器设备控制器I/O设备设备设备控制器设备控制器CPU存储器磁盘控制器打印机控制器其他设备控制器控制器与设备接口磁盘驱动器打印机系统总线系统总线图图6.1 一个连接一个连接CPU 、存储器、控制器存储器、控制器 和和 I/O设备的单总线模型设备的单总线模型几乎所有的微型机和小型机都利用如图几乎所有的微型机和小型机都利用如图6.1所示的所示的单总线模型单总线模型,实现,实现CPU与控制与控制器之间的通信。器之间的通信。中、
7、大型机通常中、大型机通常采用多总线采用多总线和专用和专用IO计计算机算机(又叫(又叫I/O通道通道),它承接主),它承接主CPU的的I/O负载。负载。CPU通过通过存储总线存储总线与内存连接,与内存连接,内存与多种内存与多种不同的不同的通道通道连接。连接。每个通道又分别与另一类每个通道又分别与另一类I/O总线相连总线相连I/O总线与具体的设备控制器接口相连,总线与具体的设备控制器接口相连,控制设备的控制设备的I/O操作。操作。 模型如图模型如图6.2所示。所示。读卡机磁盘控制器磁盘控制器磁盘控制器软盘控制器磁带控制器磁带控制器打印机终端控制器控制器控制器I/O通道主存储器CPU选择通道成组多路
8、通道字节多路通道磁盘图6.2 多总线多通道的系统组织程序查询程序查询(programmed)I/O(programmed)I/O Copy_from_user(buffer,p,Copy_from_user(buffer,p,count):count):For (i=0;icount;i+)For (i=0;icount;i+) while(while(* *printer_status_reprinter_status_reg!=READY);g!=READY);* *printer_data_reg=pi;printer_data_reg=pi; return_to_user();retu
9、rn_to_user(); CPUCPU与设备完全串行与设备完全串行工作。工作。CPUCPU直接控制设备进行数据传输有两种方式:直接控制设备进行数据传输有两种方式:1.1.程序查询方式和程序查询方式和 2.2.程序中断方式程序中断方式。设备进行信息传输传输完成,置状态标志设备工作方式设备工作方式向I/O控制器发命令读设备控制器的状态从数据缓冲寄存器读字向存储器中写字N出错出错 Y传送完成设备就绪?YN程序查询的下的程序查询的下的CPU工作方式工作方式执行下一条指令执行下一条指令 一旦启动设备成功,一旦启动设备成功,CPUCPU转去执行另一个转去执行另一个程序。程序。当设备完成时,向当设备完成时
10、,向CPUCPU提出中断请求,提出中断请求,CPUCPU执行完当前一条执行完当前一条指令,就响应中断,指令,就响应中断,转去执行中断处理转去执行中断处理程序。程序。CPUCPU与设备能够并行与设备能够并行操作。操作。程序中断程序中断(Interrupt(InterruptDriven )I/ODriven )I/OCPU向I/O控制器发读命令读I/O控制器的状态从I/O控制器中读数据向存储器中写数据出错出错N传送完成有错误?检查该设备是否还有要做的工作检查该设备是否还有要做的工作有有中中 断断处处理理设备传输数据,每送一设备传输数据,每送一个数据到数据缓冲寄存个数据到数据缓冲寄存器,器,提出中
11、断请求提出中断请求是是CPUCPU启动设备过程启动设备过程:Copy_from_user(buffCopy_from_user(buffer,p,count);er,p,count);Enable_interrupts();Enable_interrupts();while(while(* *printer_statprinter_status_reg!=READY);us_reg!=READY);* *printer_data_reg=pprinter_data_reg=pi;i;scheduler();scheduler();/调度程序程序中断程序中断(Interrupt(Interrup
12、tDriven )I/ODriven )I/O中断处理例程中断处理例程; ;if(count=0)if(count=0) unblock_user(); unblock_user(); else else* *printer_data_reg=pi;printer_data_reg=pi;count=count-1;count=count-1;i=i+1;i=i+1; Acknowledge_interrupt();Acknowledge_interrupt();returnreturn_from_from_interrupt();interrupt();判有无中断发生数据缓冲寄存器DR内存地
13、址寄存器MAR传输数据字节计数器DC命令/状态寄存器CRBuffer控制控制系统总线系统总线(地址和数据总线地址和数据总线)DMA控控制制器器Memory 主机主机控制器接口控制器接口CPU数据块缓冲区磁盘磁盘 数据传输基本单位是数据块在DMA控制器的控制下,设备直接与内存交换数据仅在开始和结束时才需CPU干预。首先首先,将磁头定位到磁盘的正确位置,磁盘控制器控制,将磁头定位到磁盘的正确位置,磁盘控制器控制磁盘驱动器串行地一位一位地读数据到数据缓冲寄存器磁盘驱动器串行地一位一位地读数据到数据缓冲寄存器组装成字节,放入控制器的内部缓冲区中。组装成字节,放入控制器的内部缓冲区中。其次其次,它计算检
14、查和,以核实没有读错误发生。,它计算检查和,以核实没有读错误发生。然后然后控制器从内部缓冲区中一次一个字节或一个字地读控制器从内部缓冲区中一次一个字节或一个字地读数据送主存储器中,直到一块读完。数据送主存储器中,直到一块读完。产生一个中断。等待产生一个中断。等待CPUCPU响应中断。响应中断。DMA工作过程(读):工作过程(读):磁盘一个数据磁盘一个数据字读入数据寄存字读入数据寄存器,器,DMA控制器取控制器取代代CPU接管地址总接管地址总线的控制权,线的控制权,与内存交换一个与内存交换一个字节或字字节或字CPU访问总线的访问总线的速度降低。速度降低。CPU与设备并行操与设备并行操作程度较程序
15、中断作程度较程序中断高。高。DMA 控制磁盘驱动器进行读数据,并将读的位组成字节挪用挪用CPU工作周期传送数据字字存储器地址MAR增1数据计数器DC减1DC=0 ?磁盘完成磁盘完成请求中断NYCPU向DMA控制器发启动读块命令(设置MAR数据源(磁盘地址)目标(主存缓冲区地址)和DC初值),启动成功后,CPU执行磁盘的中断处理程序:检查DMA控制器的状态,成功时唤醒等待进程。恢复中断现场,继恢复中断现场,继续执行下条指令续执行下条指令CPU转去做转去做其它事其它事与DMA方式相比,通道所需的CPU干预更少,一个通道控制多个设备控制器,CPU、通道和、通道和I/O设备并行工作设备并行工作主 存I
16、/O通道1I/O通道i控制器控制器控制器控制器设备设备CPU:1. 字节多路通道字节多路通道:一个通道可以同时控制多台设备并行传输,控制低速设备。2.2.选择通道选择通道:一个通道一次只能控制一台设备进行传输,控制高速设备。3.3.数组多路通道数组多路通道:利用上述两者的优点,控制中速设备。如磁盘设备:它可以先为一台设备执行一条通道指令,然后自动转接为另一台执行一条通道指令。这样就可以启动多台磁盘机同时移动磁臂定位,然后按需交叉地传输数据。数组多路通道实际上是对程序采用多道程序设计的硬件实现。通道的组成通道的组成:作为作为I/OI/O处理机的通道,与处理机的通道,与CPUCPU共享内存,其硬件
17、共享内存,其硬件至少包括至少包括CAW(CAW(C Channel hannel A Address ddress W Word):ord):存放通道程序存放通道程序内存地址的通道地址字内存地址的通道地址字寄存器寄存器; ;和和CCW(CCW(C Channel hannel C Command ommand W Word):ord):存放通道指令存放通道指令的通道命令字的命令的通道命令字的命令寄存器寄存器. .通道类型通道类型一种通道的指令格式如下字段一种通道的指令格式如下字段: 操作码、程序连接标志操作码、程序连接标志P P(标识该指令执行后是否还(标识该指令执行后是否还有通道指令)、记录
18、连接标志有通道指令)、记录连接标志R R(标识本条是独立记(标识本条是独立记录,还是与下一条同属一条记录)、传送数据的主存录,还是与下一条同属一条记录)、传送数据的主存地址和传送的数据字节个数:地址和传送的数据字节个数:通道类型通道类型操作码PR字节计数内存地址WRITEWRITEWRITEWRITEWRITEWRITE00000000111180140603002502508131034583020001850720这二块内容写这二块内容写成另一个记录成另一个记录最后一条通道指令最后一条通道指令例例 通道程序举例:通道程序举例:操作码、程序连接标志操作码、程序连接标志P、记录连接标志、记录连
19、接标志R和主存地址:和主存地址:这三块内容写这三块内容写成一个记录成一个记录CPU至少有三条控制IO的指令: 1)启动启动IOIO指令指令 2)测试测试IOIO指令指令 3)停止停止IOIO指令指令通道的通道的工作过程:工作过程: CPU向I/O通道发出一条I/O指令,给出所要执行的通道程序的首地址和要访问的I/O设备。 执行通道程序,控制指定设备完成CPU指定的I/O任务。 完成传输后向CPU请求中断。 CPUCPU可与设备并行操作的程度最高。可与设备并行操作的程度最高。 上述的四种设备控制方式,可总上述的四种设备控制方式,可总结出结出四种数据传输方式:四种数据传输方式:程序查询方式,程序查
20、询方式,程序中断方式,程序中断方式,DMA方式方式通道方式。通道方式。基本思想基本思想:I/O软件按分层的思想构建,较低层的软件为较高层软件提供调用接口和服务,使较高层软件独立于硬件,为用户提供使用设备的统一接口。 Linux系统的: ls 命令 各种存储器,磁盘,软盘,U盘都能正确工作。1。向用户提供设备的独立性。向用户提供设备的独立性。不受设备类型和具体设备型号以及台号的限制。如: SORT outputSORT output程序sort的数据不管来自硬盘,软盘,都可以正常工作。2。设备的统一命名。设备的统一命名。一个设备的名字是一个简单的字符串,如 DOS的PRN,是一个逻辑设备。 通常
21、用户程序中不直接使用物理设备名(或设备通常用户程序中不直接使用物理设备名(或设备的物理地址),而使用逻辑设备名。的物理地址),而使用逻辑设备名。逻辑设备是物理设备属性的抽象表示,对应逻辑设备是物理设备属性的抽象表示,对应一类设备如一类设备如print print 是是LK1600LK1600针式打印机还是针式打印机还是喷墨打印机。喷墨打印机。操作系统将逻辑设备映射为物理设备。这正操作系统将逻辑设备映射为物理设备。这正是系统提供设备独立性的一个具体体现。是系统提供设备独立性的一个具体体现。3.出错处理出错处理。数据传输中的错误应尽可能地在接近硬件层上处理,可重试多次。4.4.设备分配设备分配 根
22、据系统中设备各自的属性,制定分配策略。根据系统中设备各自的属性,制定分配策略。设备分配可以采用设备分配可以采用静态静态分配和分配和动态分配方式动态分配方式。 静态分配简单,不会引起死锁,但设备利用静态分配简单,不会引起死锁,但设备利用率低。率低。 动态分配设备利用率高,但分配不当会引起动态分配设备利用率高,但分配不当会引起死锁。死锁。5.5.提供设备的提供设备的I/OI/O缓冲缓冲。I/OI/O软件按层次构成:软件按层次构成:用户层用户层I/OI/O接口,独立于设备的软件,设备驱动程序,接口,独立于设备的软件,设备驱动程序,中断处理程序,中断处理程序,I/OI/O硬件。硬件。I/OI/O软件的
23、实现功能软件的实现功能 中断服务过程中断服务过程向用户透明(看不见)。 I/O操作完成后,产生一个中断中断。 CPU响应中断,保护被中断进程现场,分析中断原因,转去执行相应的中断处理程序中断处理程序。 中断处理这部分工作完全由操作系统完成,中断处理这部分工作完全由操作系统完成,用户进程根本不知道中断的产生和处理过程。用户进程根本不知道中断的产生和处理过程。 是与设备密切相关的代码。每个设备驱动程序处理一种类型设备。 接收来自与设备无关的上层软件的抽象请求抽象请求,并执行这个请求。 若驱动程序进程驱动程序进程空闲,则立即执行该请求;若忙,则将其排到等待处理的请求队列中。 将上层软件的抽象请求转换
24、成向控制器发送的命令向控制器发送的命令和设备的具体参数设备的具体参数,由设备控制器控制设备完成操作。有通道时,它能根据I/O要求,自动构成通道程自动构成通道程序序。 一般情况下,驱动程序进程等待命令完成,阻塞阻塞自己,直到中断处理时中断处理时将其唤醒唤醒;有时驱动进程不必等待,如滚屏操作,把几个字节写到控制器中即可。实现所有设备都共同需要的功能:实现所有设备都共同需要的功能: (1)向用户提供使用设备的统一接口)向用户提供使用设备的统一接口。 (2)负责把设备的符号名映射映射到正确的设备驱动上。负责设备命名负责设备命名。例如在Unix系统中,终端设备名/dev/tty01,唯一地说说明了一个特
25、别文件的i节点,这个节点包含主设备号,和次设备号。主设备号用来分配正确的终端设备的驱动程序,次设备号作为读写那个设备的参数。 (3)负责设备保护)负责设备保护。如, UNIX的I/O设备作为特别文件用“rw”位进行保护。 (4)提供与设备无关的块尺寸)提供与设备无关的块尺寸。如磁盘:较高层的软件只与抽象磁盘打交道,独立于物理扇区的尺寸而使用等长的逻辑块。 (5)缓冲技术缓冲技术。缓和CPU与I/O设备间速度不匹配的矛盾,减少对CPU的中断频率,提高CPU与I/O设备之间的并行性。 缓冲区种类有:硬缓冲和软缓冲 硬缓冲是在设备控制器中设置缓冲区,通常数量有限。 软缓冲是在内存中开辟一部分空间,数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 原理 教程 第六 课件
限制150内