5操作系统设备管理

上传人:cl****1 文档编号:589961057 上传时间:2024-09-12 格式:PPT 页数:51 大小:137.52KB
返回 下载 相关 举报
5操作系统设备管理_第1页
第1页 / 共51页
5操作系统设备管理_第2页
第2页 / 共51页
5操作系统设备管理_第3页
第3页 / 共51页
5操作系统设备管理_第4页
第4页 / 共51页
5操作系统设备管理_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《5操作系统设备管理》由会员分享,可在线阅读,更多相关《5操作系统设备管理(51页珍藏版)》请在金锄头文库上搜索。

1、第五章第五章 操作系统设备管理操作系统设备管理訾小超訾小超本章主要内容:n概述n设备管理的目标n设备的类型n设备和OS的通信方式n设备管理和分配n设备维护n设备分配n设备管理的向上接口n磁盘调度nLinux的设备管理21、概述n1-1、为何要引入设备管理n设备千差万别,即使同类设备也会存在实现细节和接口方面的区别。如果让使用者(应用程序)直接操纵设备。n会加重应用程序设计者的负担。n应用程序依赖于具体的设备,应用程序的移植性比较差。n设备利用率低。根源:n无法实现设备共享n对一些低速设备,难以协调处理器和外设的速率不匹配问题3n1-2、操作系统设备管理的要求和目标为用户提供方便、统一的设备使用

2、界面。n提高外部设备利用率,尽量提高并行程度n实现程序与设备的无关性。n要解决快速的处理器与慢速的I/O设备之间的操作匹配的问题:缓冲区、预读、缓写等手段。n设备管理要实现这些缓冲区的建立、分配、释放与回收。4n1-3、设备管理和使用的软件层次关系n底层通信(中断处理):n实现软件和硬件设备的通信。n设备驱动:n接受来自上层的抽象操作请求,并负责操作的具体实施。n主要组成:n与设备打交道的软件部分。n共享支持、缓冲区支持等。n对用户层的形式上统一的I/O接口:n每个I/O调用接口对应具体的设备抽象操作。n使用设备的用户级程序:n通过调用所提供的接口来实现对设备的使用或控制。5n1-4、设备的类

3、型n设备种类比较多,每种的特征差别很大。n分类方式不一,可以从多个角度进行分类。n设备外在功能(使用者的角度):n输入设备n输出设备n存储设备nn设备的数据传输方式上(设备研制者):n块设备n字符设备n流设备6n设备的存在形式上(OS角度):n物理设备n逻辑设备n设备的使用形式(使用和OS管理角度):n共享设备n独占设备72、设备和OS间的通信控制方式n2-1、通信的硬件原理:nI/O设备组成:n机械部件(实施部件):具体实现设备的操作。n电子部件(接口部件):又叫设备控制器,n直接外接用于控制和数据通信的电缆线。n操作系统与控制器直接打交道,发送操作命令,或收发数据。n控制器接收OS发来的操

4、作指令,控制机械部件完成相应操作。8n设备控制器的接口特征n简单的通信接口只要通过一根信号线的高低电平就能通信。n对复杂的设备,可能很多字节的内容需要访问(设置或查询),总的来讲分为两类:n控制类:一般称为控制寄存器。OS通过设置控制寄存器,向设备发出操作指令。或通过查询控制寄存器来获知设备的工作状态。n数据类:一般称为数据寄存器。OS通过设置数据寄存器传出控制参数,或进行数据I/O。数据寄存器可能包含多个。9n为每位或每个控制寄存器提供一根或一组信号线(太多的信号线)直接相连是不现实的。n为兼容CPU的体系结构,出现地址的概念。把所有寄存器统一进行编址,一般而言这种编址是连续的(假定0-50

5、字节)。访问时:n将设备的控制器与系统总线相连n先发地址信号,然后访问对应的寄存器。10n设备的I/O地址n设备内部的I/O编址:局限于单个设备n整个系统I/O编址:需要把单个设备的I/O编址映射到系统全局编址。一般利用偏移映射即可n与内存统一编址:同一般的内存访问操作。n与内存分开编址:需要使用专门的I/O指令访问设备控制器的寄存器n在设备接入之后,需要分配合适的I/O地址。设备内部的I/O地址要映射到所分配的I/O地址上。11n2-2、通信控制方式的类型n询问(轮询)方式:n询问方式又称程序直接控制方式。nOS发出操作指令(设置控制寄存器)后,设备控制器收到指令控制设备机械部件开始工作,工

6、作完成之后设置设备控制寄存器的相应状态位。nOS检查设备控制寄存器的状态位,才能确定硬件操作是否完成。n为了确定操作是否完成,需要不断进行询问。12n中断方式:n中断控制器引入后,外围设备有了反映其状态的硬件基础。n在操作完成之后,设备控制器在设置设备控制寄存器的相应状态位的同时,还要中断控制器发送信号。n中断控制器向CPU发送中断信号nCPU收到中断信号后,调用相应的处理程序:检查设备控制寄存器的状态位,进行相应处理。 n中断方式消除了程序查询方式的忙式测试,提高了CPU资源的利用率 。13n中断控制器支持的中断数量有限,每个进行了编号。设备接入系统后,需要分配中断号。一般情况下,多个设备不

7、能共享同一中断号。n中断是重要的资源,设备在接入到系统中,需要分配合适的中断编号。没有合适的中断编号设备就不能正常工作。14nDMA方式:n主存和I/O设备之间设计自动化的数据通路,在主存和I/O设备之间成块传送数据过程中,不需要CPU干预。 nI/O设备能直接与主存交换数据而不占用CPU,CPU资源的利用率再次得到提高 。nDMA不仅设有中断机构,而且,还增加了DMA传输控制机构。若出现DMA与CPU同时经总线访问主存,CPU把总线占有权周期性让给DMA。nDMA方式线路简单,价格低廉,但功能较差(只能实现单块数据传输),不能满足复杂的IO要求。 n系统中支持DMA的设备数量是有限的,一般为

8、四个。设备接入系统后,需要向DMA控制器申请。15nI/O通道技术:n工作方式:nI/O通道是一种硬件设施,带有专用处理器的,是有很强I/O处理功能的智能部件。n可以独立地完成系统处理器交付的I/O操作任务,通道具有自己专门的指令集,即通道指令。n通道执行来自处理器的通道程序,完成后向系统处理器发出中断,请求结束。n特征:nI/O通道能够一次实现多个离散的数据块的传输。nI/O通道又叫输入/输出处理器。n通道属于高端系统配置,一般只在大型机系统中存在。16n分类:n字节多路通道主要用于连接大量低、中速的I/O设备,每次传输一个字节:n以字节为单位交叉地工作,当为一台设备传送一个字节后,立即转去

9、为另一台设备传送一个字节。n选择通道主要用于支持高速设备(如磁盘),每次只对与一个设备进行数据传输。n数据传输是以块为单位,每次可以传输一批数据。n每当一个输入输出操作请求完成后,再选择与通道相连接的另一设备。n成组多路通道以分时方式同时执行几道通道程序,方别实现几个高速设备的数据传输。n数组多路通道的实质是:对通道程序采用多道程序设计技术的硬件实现。 17n2-3、中断处理n中断的基本类型:n一般PC机支持15个中断,具体类型主要有:n时钟中断:nI/O中断:磁盘、键盘等n系统请求中断:用于实现系统调用等的特殊功能n报警中断:n程序错误中断:除零等n机器错误中断:硬件设备故障或异常。18n中

10、断响应和实现的大致流程:n设备向中断控制器发送中断信号n中断控制器比较各个中断的优先级,如果有没有被屏蔽的中断。中断控制器向CPU发送中断信号。nCPU现场保存后,通过询问中断控制器,确定中断源(中断号)。n通过中断号,找到对应的中断处理程序。n中断处理结束后,n原运行在核心态:恢复现场,转向被中断的任务继续执行。n原运行在用户态:检查调度标志、信号设置标志。如果被设置,进行相应处理。否则恢复现场,继续执行。19n2-4、时钟中断和处理n时钟的概念和用途n系统时钟:相当于一个钟表,是进行与时间相关的活动的依据,如在时间片调度方式下,如何判断时间片是否用完,如何判断闹钟到期等。n闹钟:每个程序都

11、可以设置闹钟,通过倒计时的方式实现。倒计时时间为0,系统会自动调用所设置的闹钟函数。20n系统时钟的维护:n在计算机没有启动时。主板上包含了一个类似石英钟的物理时钟在记录时间的流逝和变化。n系统启动时,OS从物理时钟读取当前时间,保存在全局变量里。n时间度量单位为tick。n每过一个tick(一般是20毫秒),时钟芯片都会向CPU发送一个时钟中断。n中断处理程序:n时钟全局变量加1。n检查是否有与时间相关的任务。21n中断处理的技巧(时钟中断为例):n紧急任务:n时钟变量加1n非紧急任务:n当前进程运行时间统计量增加。n检查当前时间片是否用完。n计算所有进程的动态优先级。n闹钟是否到期,处理函

12、数。n睡眠时间是否到了,需要唤醒相应进程。22n技巧:n只把紧急任务放在时钟中断处理程序中。n把非紧急任务在中断处理程序外,延迟处理。n具体延迟处理时间在:核心态回到用户态时。nLinux采用就是这种方式,延迟的处理叫底半部处理。233、设备管理和分配n3-1、缓冲区和缓冲区管理:n缓存区存在的背景:n提高CPU和外设的并行度n缓解外设速度慢的瓶颈n缓冲区分类:n硬件缓冲:有些设备中会包含专门的硬件寄存器等用于缓冲。n软件缓冲:直接在主存中。24n软件缓冲的分类:n单缓冲:一个缓冲,外设和CPU互斥进行操作。n双缓冲:设置两个缓冲区,交替使用。 n循环缓冲:类似于循环队列,依次使用。n缓冲池:

13、系统维护一组大小相同的缓冲区,进程和设备按需要申请,使用完后重新归入缓冲池中。25n3-2 设备分配n功能和目标n为进程或作业分配所需的设备。n充分发挥设备的使用效率,尽可能避免死锁。n分配方式:n静态分配:n作业开始运行时,一次性分配给所有可能使用到的设备。n缺点:设备利用率低n优点:简单,不会出现死锁。n动态分配:n进程使用设备时再进行相应分配n设备利用高,可能会出现死锁。26n3-3、设备分配的原则n设备请求管理n要使用设备时必须提供进行I/O操作的有关信息,指出执行I/O的逻辑设备名(如设备号)、操作类型、传送数据的数目、信息源或目的地址等。n存放进行I/O操作的信息的结构称为I/O请

14、求块。如在UNIX系统中,系统的I/O请求块的内容是包含在缓冲区控制块buf中。n在请求I/O时,首先请求分配缓冲区,然后把与操作有关的信息写到buf中,并把这个buf挂到请求设备的I/O请求队列中去。27b_actfb_actlav_forw av_forw av_forw iobuf buf buf swbuf 图图5-13 设备设备I/O请求队列请求队列 28n先请求先服务n系统按先后次序组成I/O请求队列,每个设备一个队列。n当新的I/O请求块生成后,把该块挂在相应设备的I/O请求队列的队尾。n设备空闲时,从该设备的I/O请求队列的队首取出一个请求块,并按这个请求块的要求进行I/O操作

15、。29n进程优先级高的优先服务n系统按请求进程的优先级由高到低次序组成I/O请求队列,每个设备一个队列。n当新的I/O请求块生成后,根据请求优先级把该块挂在相应设备的I/O请求队列中的合适位置。n设备空闲时,从该设备的I/O请求队列的队首取出一个请求块,并按这个请求块的要求进行I/O操作。30n3-4、设备分配技术n独占设备:n同时只能分配给一个请求进程。n共享设备:n同时可以一个设备分配给多个请求进程。n虚拟设备:n用一个物理设备来同时模拟多个独占设备,达到设备共享的目的,提高设备利用率。31n3-5、SPOOLING技术n背景和目标:nSPOOLing系统可以进行作业的批处理。整个系统由三

16、部分组成:n第一部分输入作业和数据到输入井(磁盘)中,称为假脱机输入n第二部分是从磁盘输入井中提取作业交CPU执行,称为作业管理部分n第三部分是从磁盘输出井(磁盘)中选择一个作业的输出将其送往打印机输出,称为假脱机输出。三部分的工作在一定条件可以互相重叠执行32n3-6、设备独立性n背景:n同类设备有多台,如果作业申请设备时指定某一台具体的物理设备,当指定的某台设备有故障时该作业也就不能投入运行。n如果还有好的同类设备可以替代,这种设计显然不合理。n解决思路:n为了解决这一问题,通常用户不指定特定的设备,而指定逻辑设备,使得用户作业和物理设备独立开来,再通过其它途径建立逻辑设备和物理设备之间的

17、对应关系,我们称这种特性为“设备独立性”。n具有设备独立性的系统中,用户编写程序时使用的设备与实际使用的设备无关,亦即逻辑设备名。n设备管理的功能之一就是把逻辑设备名转换成物理设备名。33n设备独立性的好处:n用户与物理的外围设备无关,系统增减或变更外围设备时程序不必修改;易于对付输入输出设备的故障,例如,某台行式打印机发生故障时,可用另一台替换,甚至可用磁带机或磁盘机等不同类型的设备代替。n提高了系统的可靠性,增加了外围设备分配的灵活性,能更有效地利用外围设备资源,实现多道程序设计技术。344、设备管理的上层统一接口n4-1、背景nI/O设备数量很多,特性差别很大,应用程序难以直接操作设备n

18、操作系统的设备管理需要隐藏设备的操作细节。n需要解决两个问题:n如何用统一的方式来标示设备。n如何用同统一的方法来表示设备的不同操作35n4-2、设备的命名n在Linux/unix下,设备是以文件名的形式来表示的。如/dev/tty0,这些文件叫设备文件。n设备文件的名字供应用程序使用,把设备文件和对应的设备(或设备驱动程序)联系起来的是设备文件的两个属性:n主设备号:通过主设备号就可以找到相应的设备驱动程序 。同种类型的设备如果驱动相同,主设备号可以相同。n次设备号:它作为传给驱动程序的参数指定具体的物理设备 。36n4-3、设备操作的统一接口实现思路n操作系统对上提供若干高级I/O系统调用

19、:getc, putc, read , write ,seek, open, close等。这些调用接口同普通文件的调用接口。n这些I/O系统调用对应抽象的I/O操作,包含对I/O设备的控制:请求、相应、处理控制、缓冲等。n对这些抽象I/O操作请求,不同的设备具有不同的理解,对应不同的设备动作。n总之:通过抽象的I/O操作把应用程序与复杂的I/O设备控制隔离开来。n关键技术:如何把抽象I/O操作和具体的操作实现(设备控制)联系起来。37n4-4、设备控制表n设备控制表DCT包含多个表项,每个设备对应一个表项。n每个表项对应一个设备,内容包括:n设备描述符n设备地址n设备属性n设备状态38n4-

20、5、设备开关表n设备开关表实现抽象操作到设备具体操作的映射。n标准的文件操作接口-针对特定设备的具体实现函数395、磁盘调度n5-1、磁盘的物理特性n硬件组成:n磁盘驱动器:n是机械部分,包括:驱动电机,读写磁头,及相应的控制电路。n磁盘控制器:n实现与计算机的逻辑接口n接受来自CPU(或通道)指令,命令磁盘驱动器完成具体操作n一个磁盘控制器可以控制多个磁盘驱动器进行操作。n单个磁盘的存储组织n以块为单位进行存储组织,块大小一般为512字节,一块被称为一个扇区。n块是多维编址的:驱动器号、磁面号、磁道号、扇区号,四个参数才能唯一确定一个扇区。40n磁盘操作请求和响应n磁盘操作请求包含参数:操作

21、类型(输入或输出)、(首)扇区地址、数据长度、数据内存地址。n如果磁盘驱动器空闲,请求可以立即得到服务。否则排队等候。n一个请求完成后,检查是否有排队等候的请求,若有,开始为请求进行服务。n磁盘操作的时间消耗n寻道时间:把读写头移动到相应磁道上的时间;n等待时间:等待指定扇区旋转到读写头下面的时间;n数据传送时间:磁盘和内存之间发生数据传输的时间。n磁盘调度的目标n提高有效的数据吞吐率。n减少请求的平均等待时间。41n5-2、先来先服务调度算法n算法思想:n按请求的时间顺序,依次进行服务n优点:n实现简单n对每个请求看似“公平”n缺点:n寻道时间长,磁头移动幅度大。n例如:当前位置53,服务请

22、求队列98-183-37-122-14-124-65-67。总共需要移动640个磁道。42n5-3、最短寻道时间优先调度n算法思想:n寻道时间一般与磁头当前位置(所在磁道)和目标磁道间的差值成正比。n优先响应寻道时间最短的请求。该请求对应的磁道与其它请求对应的磁道相比,离当前磁头最近。n优点:n寻道时间较短,服务效率较高,服务平均等待时间较短。n例如:当前位置53,服务请求队列98-183-37-122-14-124-65-67。服务顺序53-65-67-37-14-98-122-124-183:总共需要移动236个磁道。n缺点:n公平性差,可能会出现服务请求长期得不到服务,甚至饿死。n寻道时

23、间并非最优。43n5-4、扫描法(电梯调度法)n算法思想:n磁头从一端出发向另一端移动,移动过程中,发现有请求对应磁头下的磁道,就对该请求提供服务。到另一端后,开始反向移动,遇到请求进行服务。n算法特点:n每个请求的等待时间不均匀,且平均等待时间长。n如到达另一端反向时,将扫描的是刚刚扫描过的磁道,这里的请求显然少,而另一端的请求多,且等待服务的时间长。n改进:循环扫描。n比较适合磁盘负载较重的系统。n算法优化:n磁头并不是每次扫描都移动到最远的磁道上,一旦在当前方向上前面没有请求,就开始反向移动。446、Linux系统的设备管理用户程序系统调用接口高速缓存文件系统字符设备块设备网络设备硬件设

24、备I/O子系统45n6-1、设备管理概述:n分为三类设备进行管理n块设备:n字符设备:n网络设备n设备管理和用户间的接口n每台设备用一个特殊设备文件来表示。/dev/hda表示第一个磁盘,/dev/hda1表示第一个磁盘的第一个分区。n通过访问文件的接口就能实现对设备的访问。46n6-2、Linux设备驱动程序的特点n代码运行在核心态。n对应用层提供标准接口:类似于文件操作。n灵活性好:n可配置,可以通过配置选择特定的驱动程序编译到内核中。n也可以编译成模块,实现动态加载。47n6-3字符设备的管理n字符设备矢量表n每一项对应一个设备。n每一项的信息包含设备控制块指针,以及各种抽象操作的实现函数n虚拟文件系统n能够实现文件操作到实现函数的映射48n6-4、块设备的管理n与字符设备的相同点n对上提供文件操作类似的接口n存在与字符设备矢量表功能类似的块设备矢量表n与字符设备的差别n与高速缓冲区间存在接口n需要管理相应的请求队列。49n作业:nP154/P135:1n简述各种I/O控制方式及其主要优缺点n现有如下请求队列:8,18,27,129,110,186,78,147,41,10,64,12;试用查找时间最短优先算法计算处理所有请求所需移动的总磁道数。假设磁头当前位置在磁道100。n上题中,分别按升序和降序移动,讨论电梯调度算法计算处理所有请求移动的总柱面数。 50谢谢51

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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