《操作系统》全套PPT电子课件教案-第五章 设备管理.ppt_第1页
《操作系统》全套PPT电子课件教案-第五章 设备管理.ppt_第2页
免费预览已结束,剩余213页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章 设备管理,青岛黄海职业学院,第五章 设备管理,5.1 概 述 5.2 i/o软件的组成 5.3 i/o硬件特点 5.4 i/o控制技术 5.5 设备有关技术 5.6 设备分配与设备处理 5.7 磁盘存储器管理 5.8 典型外部设备,第五章 设备管理,5.1 概 述,1.i/o性能经常成为系统性能的瓶颈 (1)cpu性能不等于系统性能 响应时间也是一个重要因素 (2)cpu性能越高,与i/o差距越大 弥补:更多的进程 (3)进程切换多,系统开销大,5.1.1 i/o的特点,2.操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自i/o 外设种类繁多,结构各异 输入输出数据信号类型不同 速度差异很大 3.理解i/o的工作过程与结构是理解操作系统的工作过程与结构的关键 4.与其他功能联系密切,特别是文件系统,1.按使用特性分 存储型设备 输入型设备(外设主机) 输出型设备(主机外设) 输入输出型设备(交互型设备) 2.按数据组织分 块设备 以数据块为单位存储、传输信息 字符设备 以字符为单位存储、传输信息,5.1.2 设备的分类,系统设备 指操作系统生成时,登记在系统中的标准设备 (如终端、打印机、磁盘机等) 用户设备 指在系统生成时,未登记在系统中的非标准设备。对于这类设备的处理程序由用户提供,并将其纳入系统,由系统代替用户实施管理。 (如a/d,d/a转换器,cad所用专用设备),3.按外部设备的从属关系分,1)独占设备 在一段时间内只能有一个进程使用的设备,一般为低速i/o设备。(如打印机,磁带等) 2)共享设备 在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。(如硬盘) 3)虚设备,4.按资源分配角度分,在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备 目的:将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率 实例:spooling技术,利用虚设备技术 用硬盘模拟输入输出设备),3)虚设备,为解决独立设备数量少,速度慢,不能满足众多进程的要求,而且在进程独占设备期间,设备利用率比较低而提出的一种设备管理技术,spooling技术,5.从程序使用角度分 逻辑设备 物理设备 6.按数据传输率分 高速设备 低速设备,设备的分类(续),5.1.3 设计目标与任务,提高方便性 实现并行性 均衡性 设备独立性,1.设计目标,(1)设备分配与回收 记录设备的状态 根据用户的请求和设备的类型,采用一定的分配算法,选择一条数据通路 (2)建立统一的独立于设备的接口 (3)完成设备驱动程序,实现真正的i/o操作 (4)处理外部设备的中断处理 (5)管理i/o缓冲区,2. 设备管理的功能,1)按照用户的请求,控制设备的各种操作,完成i/o设备与内存之间的数据交换(包括设备分配与回收;设备驱动程序;设备中断处理;缓冲区管理),最终完成用户的i/o请求,3.设备管理的目标和任务,2)向用户提供使用外部设备的方便接口,使用户摆脱繁琐的编程负担 方便性 友好界面 透明性 逻辑设备与物理设备、屏蔽硬件细节(设备的物理细节,错误处理,不同i/o的差异性) 3)充分利用各种技术(通道,中断,缓冲等)提高cpu与设备、设备与设备之间的并行工作能力,充分利用资源,提高资源利用率( 并行性、 均衡性),设备管理的目标和任务(续),4)保证在多道程序环境下,当多个进程竞争使用设备时,按一定策略分配和管理各种设备,使系统能有条不紊的工作 5)保护 设备传送或管理的数据应该是安全的、不被破坏的、保密的,设备管理的目标和任务(续),6)与设备无关性(设备独立性) 用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备的转换 用户能独立于具体物理设备而方便的使用设备 用户申请使用设备时,只需要指定设备类型,而无须指定具体物理设备,系统根据当前的请求,及设备分配的情况,在相同类别设备中,选择一个空闲设备,并将其分配给一个申请进程,设备管理的目标和任务(续),统一性: 对不同的设备采取统一的操作方式,在用户程序中使用的是逻辑设备。 优点: 设备忙碌或设备故障时,用户不必修改程序 改善了系统的可适应性和可扩展性,第五章 设备管理,5.2 i/o软件的组成,io软件的基本思想是按分层的思想构成,较低层软件要使较高层软件独立于硬件的特性,较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口,1. i/o软件的组成,在设计io软件时的一个关键概念是设备独立性。用户在编写使用软盘或硬盘上文件的程序时,无需为不同的设备类型而修改程序就可以使用 与设备独立性密切相关的是统一命名这一目标。一个文件或一个设备的名字只应是一个简单的字符串或一个整数,不应依赖于设备 出错处理是io软件的另一个目标。一般来说,数据传输中的错误应尽可能地在接近硬件层上处理 最后一个问题是可共享设备和独占设备的处理问题,2. io软件的目标,每个进程在启动一个io操作后阻塞 直到io操作完成并产生一个中断 由操作系统接管cpu后唤醒该进程为止,3. 中断处理程序,与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型 每一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数。设备驱动程序负责释放这些命令,并监督它们正确执行 一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求,4. 设备驱动程序,在设备驱动程序的进程释放一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成,4. 设备驱动程序(续),虽然io软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的,5. 设备独立的软件,1)独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口 2)如何给文件和设备这样的对象命名是操作系统中的一个主要课题。独立于设备的软件负责把设备的符号名映射到正确的设备驱动上 3)设备保护 系统如何防止无权存取设备的用户存取设备呢?,4)不同的磁盘可以采用不同的扇区尺寸。向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块 5)缓冲技术 6)设备分配 7)出错处理,尽管大部分io软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。系统调用,包括io系统调用,通常由库过程实现 这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的io过程实际实现真正的操作,6. 用户空间的io软件,(1)用户进程层执行输入输出系统调用,对io数据进行格式化,为假脱机输入输出作准备 (2)独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配 (3)设备驱动程序设置设备寄存器、检查设备的执行状态 (4)中断处理程序负责io完成时,唤醒设备驱动程序进程,进行中断处理 (5)硬件层实现物理io的操作,第五章 设备管理,5.3 i/o硬件特点,设备组成 io设备一般由机械和电子两部分组成, 把这两部分分开处理,以提供更加模块化,更加通用的设计 物理设备 机械部分是设备本身(物理装置) 设备控制器 电子部分叫做设备控制器或适配器。在小型和微型机中,它常采用印刷电路卡插入计算机中(接口) 完成设备与主机间的连接和通讯,1. i/o硬件特点,控制器卡上通常有一个插座,通过电缆与设备相连 控制器和设备之间的接口是一个标准接口,它符合ansi、ieee或iso这样的国际标准,cpu,外 部 设 备,控 制 逻 辑 电 路,控制寄存器,状态寄存器,数据寄存器,(1)操作异步性 (2)设备自治性 (3)接口通用性 关注点:对该硬件如何进行程序设计,不考虑设备内部如何工作 程序员:软件接口 即硬件所接受的命令,它所完成的功能,报回的错误,1.i/o设备特点(续),一个i/o过程由四步组成: 准备 启动 测试和等待 结果检查和错误处理 通过对设备接口寄存器组的读写完成 设备接口复杂繁琐,2. 设备接口,操作系统将命令写入控制器寄存器中,以实现输入输出 例如:ibm pc的软盘控制器可接收15条命令,read、write、format、seek、recalibrate,命令可以带参数。它们被一起送入控制器的寄存器中 当控制器接受一条命令后,可独立于cpu完成指定操作,cpu可以转去执行其它运算。命令完成时,控制器产生一个中断,cpu响应中断,控制转给操作系统。cpu通过读控制器寄存器中的信息,获得操作结果和设备状态,控制器与设备之间的接口常常是一个低级接口。例如磁盘,可以按每个磁道8扇区,每个扇区512个字节进行格式化。然而,实际从驱动器出来的却是一连串的位流,以一个头标(preamble)开始,然后是一个扇区的4096位(5128),最后是检查和或错误校验码(errorc一c:ecc)。头标是在对磁盘格式化时写上的,它包括柱面和扇区数,扇区的大小和类似的一些数据 控制器的任务是把串行的位流转换为字节块,并进行必要的错误修正。首先,控制器按位进行组装,然后存入控制器内部的缓冲区中形成以字节为单位的块。在对块验证检查和并证明无错误时,再将它复制到主存中,指i/o设备与cpu之间的连接方式,亦即将设备连接到一个计算机系统上的方式 在一个确定的连接模式下,从i/o设备到cpu间的所有连接成分构成了一条i/o路径(i/o链),3. 设备连接模式,四个要素: 设备接口形式 i/o指令形式 i/o地址空间分配及译码 连线问题,4.设备与主机间最基本的连接方式,端口地址译码 按照主机与设备的约定格式和过程接受或发送数据和信号 计算机 设备 设备 计算机 将计算机的数字信号转换为机械部分能识别的模拟信号,或反过来 实现一些诸如设备内部硬件缓冲存储、数据加工的提高性能或增强功能的任务,1) 设备接口形式,接口电路中:多个寄存器 一个寄存器有唯一的一个地址,每个地址为i/o端口,该地址称为i/o端口地址。 i/o指令形式与i/o地址是相互关联的,主要有两种形式: 内存映像编址(内存映像i/o模式) i/o独立编址(i/o专用指令),2) 端口编址方法,3) i/o独立编址,分配给系统中所有端口的地址空间是完全独立的,与内存的地址空间没有关系 主机使用专门的i/o指令对端口进行操作 优点 外部设备不占用内存的地址空间 程序设计时,易于区分是对内存操作还是对i/o端口操作 缺点:对i/o端口操作的指令类型少,操作不灵活 例子:8086/8088,分配给i/o端口的地址空间64k,0000h0ffffh,只能用in和out指令对其进行读写操作,4) 存储映像编址,分配给系统中所有端口的地址空间与内存的地址空间统一编址 主机把i/o端口看作一个存储单元,对i/o的读写操作等同于对存储器的操作 优点 凡是可对存储器操作的指令都可对i/o端口操作 不需要专门的i/o指令 i/o端口可占有较大的地址空间 缺点:占用内存空间,设备完成技术:系统如何知道设备的一次i/o操作是否完成? 对cpu编程的i/o技术:cpu必须亲自完成i/o的启动与完成的处理,亲自执行所有数据在内存和设备之间的实际物理传送,5. 要考虑的几个问题,一次i/o 传送过程: 准备传送后处理 例:一个打印机有两个i/o设备寄存器 状态寄存器 数据寄存器 设备的一次操作是否完成? 测试设备的一个硬件信号 几种测试模式: (1)i/o测试指令 (2)中断技术,1) 设备完成技术,使cpu利用率尽可能不被i/o降低使cpu尽可能摆脱i/o 提高i/o本身的绝对速度 减少或缓解速度差距 使cpu不等待i/o 提高设备利用率 在设备与主机的硬连接上,引入总线,节省连线并提供配置扩充与改变时的灵活性;引入控制器,扩大设备与主机间的相互适用范围 小结:控制器与设备的分离,循环测试到中断,对cpu编程式的i/o到dma,联机i/o到假脱机,进一步改善,第五章 设备管理,5.4 i/o控制技术,i/o控制的四种技术,程序控制 中断驱动 直接存储器存取(dma) 通道,1.程序控制i/o技术,由处理器提供i/o相关指令来实现 i/o处理单元处理请求并设置i/o状态寄存器相关位 不中断处理器,也不给处理器警告信息 处理器定期轮询i/o单元的状态,直到处理完毕 i/o软件包含直接操纵i/o的指令 控制指令: 用于激活外设,并告诉它做什么 状态指令: 用于测试i/o控制中的各种状态和条件 数据传送指令: 用于设备和主存之间来回传送数据 主要缺陷:处理器必须关注i/o处理单元的状态,因而耗费大量时间轮询信息,严重地降低了系统性能,2.中断驱动i/o技术,为了解决程序控制i/o方法的主要问题 应该让处理器从轮询任务中解放出来 使i/o操作和指令执行并行起来 具体作法: 当i/o处理单元准备好与设备交互的时候 通过物理信号通知处理器,即中断处理器,3. dma技术,中断的引入大大地提高了处理器处理i/o的效率 当处理器和i/o间传送数据时,效率仍旧不高 解决方法: 直接存储器访问(dma:direct memory access) 通过系统总线中一独立控制单元dma控制器 自动控制成块数据在内存和i/o单元间的传送 大大提高处理i/o的效能,dma技术(续1),当处理器需要读写一整块数据时 给dma控制单元发送一条命令 包含:是否请求一次读或写,i/o设备的编址,开始读或写的主存编址,需要传送的数据长度等信息 处理器发送完命令后就可处理其它事情 dma控制器将自动管理数据的传送 当这个过程完成后,它会给处理器发一个中断 处理器只在开始传送和传送结束时关注一下就可,处理器和dma传送不完全并行 有时会有总线竞争的情况发生 处理器用总线时可能稍作等待 不会引起中断 不引起程序上下文的保存 通常过程只有一个总线周期 在dma传送时,处理器访问总线速度会变慢 对于大量数据i/o传送,dma技术是很有价值,dma技术(续2),程序i/o,中断i/o,dma,4.通道,独立于中央处理器,专门负责数据i/o传输的处理机 它对外设实现统一管理 代替cpu对i/o操作进行控制 使cpu和外设可以并行工作 通道又称为i/o处理机 引入通道的目的: 为了使cpu从i/o事务中解脱出来 同时为了提高cpu与设备、设备与设备之间的并行度,第五章 设备管理,5.5 设备有关技术,5.5.1 spooling(虚拟设备)技术,一个虚拟设备 一个资源转换技术 (用空间,如输入,输出等换取cpu时间) 解决问题: 在进程所需物理设备不存在或被占用时使用该设备,假若进程打开打印机特殊文件后几小时内无所事事,其他进程什么都打印不了! 解决方案: 创建值班进程、spooling目录 进程首先生成要打印的文件,放入spooling目录 值班进程:唯一获准使用打印机特殊文件的进程,用以打印spooling目录里的文件 通过禁止对特殊文件的直接使用、提高了使用效率,1.打印机的spooling值班进程,2. 网络的spooling值班进程,spooling技术今天仍被广泛使用 网络文件传送 先把文件送到网络spooling目录,然后网络值班进程把它取出并传递到目标地址 internet电子邮件系统 为了寄邮,调用电子邮件程序 待发信存在spooling中供以后传输 注意:spooling只提高设备利用率,缩短用户程序执行时间,并不提高cpu利用率,5.5.2.中断技术,1. 中断的概念: cpu对系统发生的某个事件作出的一种反应 cpu暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序 特点: 1) 中断随机的 2) 中断是可恢复的 3) 中断是自动处理的,从用户角度看中断,解决主机与外设的并行工作问题 提高可靠性 实现多机联系 实现实时控制,2. 引入中断的目的,3 中断类型,强迫性中断 正在运行的程序所不期望的,由于某种硬件故障或外部请求引起的 自愿性中断 用户在程序中有意识安排的中断,是由于用户在编制程序时因为要求操作系统提供服务,有意使用“访管”指令或系统调用,使中断发生,1)强迫性中断,输入/输出(i/o)中断:主要来自外部设备通道 程序性中断:运行程序中本身的中断 (如溢出,缺页中断,缺段中断,地址越界) 时钟中断 控制台中断 硬件故障,2)自愿性中断,执行i/o 创建进程 分配内存 信号量操作 发送/接收消息,4. 微机中的中断,1. 可屏蔽中断(i/o中断) 2. 不可屏蔽中断(机器内部故障、掉电中断) 3. 程序错误中断(溢出、除法错等中断) 4.软件中断(trap指令或中断指令int),有的计算机中,为了区分和不丢失中断信号,对应每个中断源分别用一固定触发器寄存中断信号规定值为1时,表示有中断信号,为0时表示无 这些触发器的全体称为中断寄存器 每个触发器称为一个中断位 所以中断寄存器是由若干个中断位组成,5. 中断寄存器,6. 中断响应,cpu如何响应中断, 两个问题: cpu何时响应中断? 通常在cpu执行了一条指令以后,更确切地,在指令周期最后时刻接受中断请求,或此时扫描中断寄存器 如何知道提出中断请求的设备或中断源? 因为只有知道中断源或中断设备,才能调用相应的中断处理程序,开始,取下一条指令,执行指令,检查指令 处理中断,停止,取周期,执行周期,中断周期,不允许中断,允许 中断,两种解决方法: 用软件指令去查询各设备接口 这种方法比较费时 多数微型机对此问题的解决方法: 使用一种“向量中断”的硬件设施 “向量中断”: 当cpu接受某中断请求时,该设备接口给处理器发送具有唯一性的“中断向量”,以标识该设备 “中断向量”在各计算机上实现方法差别比较大,7. 中断向量表,在有的机器中: 将主存最低位128个字保留作为中断向量表,每个中断向量占两个字 中断请求的设备接口为了标识自己,向处理器发送一个该设备在中断向量表中表目的地址指针,8. 中断优先级,在一些机器中,中断优先级按中断类型划分: 以机器故障中断的优先级最高 程序中断和访问管理程序中断次之 外部中断更次之 输入输出的优先级最低,9. 中断屏蔽,在cpu上运行的程序,有时由于种种原因,不希望其在执行过程中被别的事件所中断,称为中断屏蔽。 在psw中设置中断屏蔽码以屏蔽某些指定的中断类型 如果其psw的中断禁止位建立后,则屏蔽中断 (不包括不可屏蔽的那些中断) 如果psw中的中断禁止位未建立 则可以接受其中断优先级高于运行程序中断优先级的那些中断 各设备接口中也有中断禁止位,以禁止该设备的中断,10. 实时处理的中断,对于以实时处理为主要任务的机器,显然,必须把具有重要意义传感器发出的中断作为高优先级,这样才能有较好的响应 现代实时系统中,中断优先级的设计是灵活可变的,允许用户根据应用需要,选择不同中断优先策略,11. 中断处理,简单的中断处理 - 典型的处理过程: (1)设备给处理器发一个中断信号 (2)处理器处理完当前指令后响应中断,延迟非常短(要求处理器没有关闭中断) (3)处理器处理完当前指令后检测到中断,判断出中断来源并向发送中断的设备发送了确认中断信号,确认信号使得该设备将中断信号恢复到一般状态 (4)处理器开始为软件处理中断做准备: 保存中断点的程序执行上下文环境,这通常包括程 序状态字psw,程序计数器pc中的下一条指令位置,一些寄存器的值,它们通常保存在系统控制栈中, 处理器状态被切换到管态,(5)处理器根据中断源查询中断向量表,获得与该中断相联系的处理程序入口地址,并将pc置成该地址,处理器开始一个新的指令周期,控制转移到中断处理程序 (6)中断处理程序开始工作,包括检查i/o相关的状态信息,操纵i/o设备或者在设备和主存之间传送数据等等 (7)中断处理结束时,处理器检测到中断返回指令,被中断程序的上下文环境从系统堆栈中被恢复 处理器状态恢复成原来的状态。 (8)psw和pc被恢复成中断前的值,处理器开始一个新的指令周期,中断处理结束,简单的中断处理过程,12. 多个中断的处理,若中断处理过程中又发生中断,引起多中断处理问题 两种策略方法: 第一种: 处理一个中断时禁止中断,对任何新中断置之不理,在这期间发生的中断将保持挂起状态 当再次允许中断时,新中断信号被处理器检测到 软件实现方法: 在任何中断处理前使用禁止中断指令 在处理结束后开放中断指令 所有中断严格按照发生顺序处理 不考虑中断紧急程度,无法达到较严格时间要求,多中断处理第一种策略方法,第二种: 中断按照优先度分级 允许优先级高中断打断优先级低的中断处理过程 这样中断优先级技术将引起中断处理的嵌套 只要合适地定义中断的优先级别 方法一的弊端大都可以克服,多中断处理第二种策略方法,13.典型的中断处理,1)i/o中断 由i/o设备的控制器或者通道发出 两类i/o中断: i/o操作正常结束 如果要继续i/o操作,需要在准备好以后重新启动i/o,若请求i/o程序正处于等待i/o状态,则应将其唤醒 i/o异常 需要重新执行失败的i/o操作 重试次数有上限,次数过大,系统将判定硬件故障,系统多道能力的重要推动力量,时钟中断处理程序通常做与系统运转、管理和维护相关的工作,包括: 维护软件时钟:系统有若干个软件时钟,控制定时任务以及进程的处理器时间配额,时钟中断需要维护、定时更新这些软件时钟 处理器时间调度:维护当前进程时间片软件时钟,并在当前进程时间片到时以后运行调度程序选择下一个被调度的进程 控制系统定时任务:通过软件时钟和调度程序定时激活一些系统任务,如监测死锁、系统记帐、系统审计等 实时处理,2) 时钟中断,3) 硬件故障中断,硬件故障中断处理程序一般需要做的工作: 保存现场,使用一定警告手段,提供些辅助诊断信息 在高可靠系统中,中断处理程序还要评估系统可用性,尽可能恢复系统 如windows 2000/xp,关键硬件发生故障时,如显示卡损坏,出现系统蓝屏,系统实际上进入相应故障处理程序,发现故障不可恢复,则在屏幕上打印出发生故障时程序位置,并开始进行内存转储(将一定范围的内存内容写上磁盘,是系统故障时的全系统“快照”),备日后故障诊断,程序指令出错、指令越权或者指令寻址越界而引发 两类处理方法: 只能由操作系统的相关扩展功能模块完成 多为程序试图作不能做的操作引起的系统保护 如访问合法的、但不在内存虚地址内,引发页故障页故障一般会引发os虚存模块作一个页面换入 可由程序自己完成,如一些算术运算错误 不同程序可有不同处理方法,所以很多os提供由用户自己处理这类中断的“绿色通道” 系统调试中断(断点中断、单步跟踪)也可被用户程序处理,用以支持各种程序调试,4) 程序性中断,5) 系统服务请求(自愿性中断),系统服务请求由处理器专用指令(访管指令)激发 如x86处理器提供int指令,用来激发软件中断 其他不少处理器则提供系统调用指令syscall 执行专用指令的结果是系统被切换到管态,并且转移到一段专门os程序处开始执行 指令格式通常是指令名加请求服务识别号(中断号) os利用处理器提供的这种接口建立系统服务体系 处理器一般不负责定义系统调用所传递的参数格式,dos:21h号中断的系统服务功能以及参数列表 现代操作系统一般不提供直接使用系统调用指令的接口,通常做法:提供一套方便、实用的应用程序函数库(应用程序设计接口api) 从应用层面重新封装系统调用 屏蔽复杂的系统调用传参问题 高级语言接口,有助于快速开发 有的系统在更高层面提供系统程序设计模板库和类库 如windows 2000/xp提供封装系统用win32 api和高层编程机制mfc以及atl linux提供封装系统调用、符合posix标准 api和c运行库,6) 系统服务请求实例,中断系统硬件完成的工作,中断系统软件完成的工作,程序状态字,指令计数器,系统堆栈,psw1 pc1,psw2 pc2,psw3 pc3,psw4 pc4,psw5 pc5,pc1,pc2,pc3,强迫性中断事件,自愿性中断事件,保存现场信息,保存现场信息,取出中断码,取出访管号,分析中断原因,分析何种系统调用,转相应处理程序,是否中断嵌套,由系统恢复现场,由系统恢复现场,转低级调度程序,返回上层中断,返回目态程序,需要切换进程,t,f,f,t,定义:通道是独立于cpu的专门负责数据输入/输出传输工作的处理机,对外部设备实现统一管理,代替cpu对输入/输出操作进行控制,从而使输入,输出操作可与cpu并行操作。 通道又称输入输出处理机,术语“通道”专指专门用来负责输入输出工作的处理机(简称处理机)。比起中央处理机来,通道是一个比功能较弱、速度较慢、价格较为便宜的处理机。但“通道”一词在微型机中常指与或与处理机相连设备的单纯的数据传送通路,它并不具有处理机的功能。,5.5.3. 通道技术,1. 引入通道的目的,为了使cpu从i/o事务中解脱出来,同时为了提高cpu与设备,设备与设备之间的并行工作能力,2. 通道类型,字节多路通道:通常按字节交叉的方式工作,适用于低速设备。 数据选择通道:按成组方式进行数据传输,适用于高速设备。 数组多路通道:综合前二个优点(数据传送率和通道利用率都较高)。,字节多路通道以字节为单位传输信息,它可以分时地执行多个通道程序。当一个通道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传送信息 主要连接以字节为单位的低速i/o设备。如打印机,终端。 以字节为单位交叉传输,当一台传送一个字节后,立即转去为另一台传送字节,1) 字节多路通道,选择通道是以成组方式工作的,即每次传送一批数据,故传送速度很高。选择通道在一段时间内只能执行一个通道程序,只允许一台设备进行数据传输 当这台设备数据传输完成后,再选择与通道连接的另一台设备,执行它的相应的通道程序 主要连接磁盘,磁带等高速i/o设备,2) 选择通道,选择通道,选择通道,成组多路通道结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令 主要连接高速设备 这样,对于连接多台磁盘机的数组多路通道,它可以启动它们同时执行移臂定位操作,然后,按序交叉地传输一批批数据。数据多路通道实际上是对通道程序采用多道程序设计的硬件实现,3)成组多路通道,3. 硬件连接结构,通道:执行通道程序,向控制器发出命令,并具有向cpu发中断信号的功能。 一旦cpu发出指令,启动通道,则通道独立于cpu工作。一个通道可连接多个控制器,一个控制器可连接多个设备,形成树形交叉连接 主要目的是启动外设时: a 提高了控制器效率 b 提高可靠性 c 提高并行度,交叉连接,5 通道相当于一个功能简单的处理机,包含通道指令(空操作,读操作,写操作,控制,转移操作),并可执行用这些指令编写的通道程序,4. 通道工作原理,通道地址字 caw: 记录通道程序在内存中的地址 通道命令字 ccw: 保存正在执行的通道指令 通道状态字 csw: 存放通道执行后的返回结果 通道数据字 cdw:存放传输数据 通道和cpu共用内存,通过周期窃取方式取得,1) 通道运算控制部件,用于i/o操作的命令主要有两种: i/o指令:启动通道程序 通道命令:对i/o操作进行控制 读、反读、写、测试设备状态的数据传输命令、用于设备控制的命令(磁带反绕、换页)、实现通道程序内部控制的转移命令,2) 通道命令,命令格式一般包括: 操作码、数据传输内存地址、特征位、计数器,3) 通道命令格式,cpu:执行用户程序,当遇到i/o请求时,可根据该请求生成通道程序放入内存(也可事先编好放入内存),并将该通道程序的首地址放入caw中;之后执行“启动i/o”指令,启动通道工作。 通道:接收到“启动i/o”指令后,从caw中取出通道程序的首地址,并根据首地址取出第一条指令放入ccw中,同时向cpu发回答信号,使cpu可继续执行其他程序,而通道则开始执行通道程序,完成传输工作。,4)工作原理,(通道程序完成实际i/o,启动i/o设备,执行完毕后,如果还有下一条指令,则继续执行, 否则表示传输完成),当通道传输完成最后一条指令时,向cpu发i/o中断,并且通道停止工作。cpu接收中断信号,从csw中取得有关信息,决定下一步做什么,5. 通道与cpu的关系,主从关系 可并行工作 有通信方式 作用不同(通道/; 计算),6.通道的发展,新的通道思想综合了许多新的技术 在个人计算机中,芯片组中专门i/o处理的芯片,称为iop(io processor),发挥通道的作用 ibm 390 中,沿用了输入输出通道概念 ibm于1998年推出光纤通道技术(称为ficon),可通过 ficon 连接多达127个大容量i/o设备。传输速度是333mhzs,未来将达到1ghzs。 光纤通道技术具有数据传输速率高、传输距离远,可简化大型存储系统设计的优点 在大容量高速存储,如大型数据库、多媒体、数字影像等应用领域,有广泛前景。,5.5.4. dma 技术,1. dma 方式与中断的主要区别 中断方式是在数据缓冲寄存区满后,发中断请求,cpu进行中断处理 dma方式则是在所要求传送的数据块全部传送结束时要求cpu进行中断处理 大大减少了cpu进行中断处理的次数 中断方式的数据传送是由cpu控制完成的 而dma方式则是在dma控制器的控制下不经过cpu控制完成的,不用dma时,磁盘如何读: 首先,控制器从磁盘驱动器串行地一位一位地读一个块,直到将整块信息放入控制器的内部缓冲区中 其次,它做和校验计算,以核实没有读错误发生 然后控制器产生一个中断。cpu响应中断,控制转给操作系统。当操作系统开始运行时,它重复地从控制器缓冲区中一次一个字节或一个字地读这个磁盘块的信息,并将其送入内存中,控制器按照指定存储器地址,把第一个字节送入主存 然后,按指定字节数进行数据传送 每当传送一个字节后,字节计数器值减1,直到字节计数器等于0 此时,控制器引发中断,通知操作系统,操作完成,cpu提供 被读取块磁盘地址 目标存储地址 待读取字节数 整块数据读进缓冲区 核准校验,2.dma工作示例 (以硬盘为例),存放输入数据的内存起始地址、要传送的字节数送入dma控制器的内存地址寄存器和传送字节计数器,中断允许位和启动位置成1,启动设备 发出传输要求的进程进入等待状态 执行指令被暂时挂起,进程调度其他进程占据cpu 输入设备不断窃取cpu工作周期,数据不断写入内存 传送完毕,发出中断信号 cpu接到中断信号转入中断处理程序处理 中断处理结束,cpu返回原进程或切换到新的进程,3.dma工作原理窃取总线控制权,cpu向控制器发出启动dma通知和有关参数,控制器向内存发出询问请求,访问内存(读、写),计数器减1,结束否,发中断,n,y,dma的实现流程,1. 缓冲技术的引入 凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。 缓冲区:有一定容量、暂存信息的存贮装置。 在操作系统中采用缓冲是为了实现数据的i/o操作,以缓解cpu与外部设备之间速度不匹配的矛盾,提高资源利用率,5.5.5.缓冲技术,2. 引入缓冲区的好处,提高硬件的并行操作能力; 减少了i/o设备对处理器的中断请求次数 简化了中断机制 节省了系统开销,3. 引入缓冲区的缺点,在系统区要设置相当大的缓冲池才能满足所有的请求。 从系统缓冲区传送数据到调用进程缓冲区要花费额外的时间,增加了系统的总开销。,硬缓冲: 在设备中设置缓冲区,由硬件实现 软缓冲: 在内存中开辟一个空间,用作缓冲区,4. 缓冲区设置,5. 几种缓冲技术,1)单缓冲 2)双缓冲(如下图a、b) 3)多缓冲:多个缓冲按顺序构成环形,先进先出队列的形式,设头尾、指针指向同一个缓冲区。头、尾指针读写时不能相互超越。 4)缓冲池。缓冲池为多个设备共享,设备需要时才接上,用完归还。,双缓冲(a),双缓冲(b),5) 缓冲池管理程序,缓冲池管理程序负责缓冲池内的组织,管理摘链、挂链,协调控制程序与用户程序的工作。,终端输入软件中的键盘驱动程序 任务之一:收集字符 两种常见的字符缓冲方法: 公共缓冲池(驱动程序中) 终端数据结构缓冲,6 缓冲例子,终端 数据结构,公共 缓冲池,终端 0 1 2 3,终端 数据结构,终端 0 1,终端0 的缓冲区,终端1 的缓冲区,公共缓冲池 终端固定缓冲区,新一代计算机出现,带来了总线技术的更新 1.总线的基本概念: 在计算机系统内各种子系统,如cpu、内存、i/o设备等之间构建公用的信号或数据传输通道,这种可共享连接的传输通道称为总线。,5.5.6.总线技术,总线的分类,cpu-内存总线,i/o总线,数据总线,地址总线,控制总线,(非本课程范围),2. 总线的分类,微型计算机 总线的种类和发展,1394总线,scsi总线,usb(universal serial bus)通用串行总线,是一种连接i/o串行设备的技术标准 冲破了计算机技术发展的两个历史局限性: (1)由于i/o设备的接口标准的不一致和有限的接口数量已无法满足各种应用迫切需要 (2)传统的i/o设备的接口无法满足实时数据传输与多媒体应用的需求 usb以wdm(windows driver model)模型为基础,wdm包含一套通用的i/o服务和二进制兼容的设备驱动程序,3. usb技术,usb支持同步数据传输方式和异步数据传输方式,其数据传输率有低速15mbps和全速12mbps两种,比标准串口快100倍,比标准并口快10倍 usb可以主动为外部设备提供电源,允许外部设备快速连接,具有即插即用的功能 允许外部设备的热插拔,1) usb的结构,控制器:控制器主要负责执行由控制器驱动程序发出的命令 控制器驱动程序:控制器驱动程序在控制器与usb设备之间建立通信信道 usb芯片驱动程序:usb芯片驱动程序提供了对usb的支持 usb设备分为两类: (1)usb集线器:本身可再接其他usb外围设备 (2)usb设备:连接在计算机上用来完成特定功能并符合usb规范的i/o设备单元,如鼠标、键盘等,2) usb的传输方式,4种不同的数据传输方式: (1)等时传输方式 以固定的传输速率,连续不断传输数据,发生错误时,usb不处理,而是继续传送新的数据。用于需要连续传输,且对数据的正确性要求不高而对时间极为敏感的外部设备,如麦克风、音箱以及电话等 (2)中断传输方式 该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果,此方式主要用在键盘、鼠标以及游戏手柄等外部设备上,(3)控制传输方式 处理主机的usb设备的数据传输,包括设备控制指令、设备状态查询及确认命令。当usb设备收到这些数据和命令后将按照先进先出的原则按队列方式处理到达的数据 (4)批传输方式 用来传输要求正确无误的数据。通常打印机、扫描仪和数码相机以这种方式与主机连接 除等时传输方式外,其他3种方式在数据传输发生错误时,都会试图重新发送数据以保证其准确性,usb的传输方式(续),4. scsi接口技术,小型计算机系统接口 (small computer system interface) 一个scsi i/o设备控制器 可将新型高速i/o设备增加到计算机系统中 scsi 设备控制器的智能化i/o控制 降低了计算机系统的负担 使计算机系统具有更高的i/o能力,scsi系统结构,计算机系统i/o设备与部件配置的应用技术 顾名思义: 插入就可用,不需要进行任何设置操作,5. 即插即用技术(plug and play),由于一个系统可以配置多种外部设备,设备也经常变动和更换,它们都要占有一定的系统资源,彼此间在硬件和软件上可能会产生冲突。因此在系统中要正确地对它们进行配置和资源匹配;当设备撤除、添置和进行系统升级时,配置过程往往是一个困难的过程。,1) pnp技术的产生,(1)支持i/o设备及部件的自动配置,使用户能够简单方便地使用系统扩充设备 (2)减少由制造商装入的种种用户支持和限制,简化部件的硬件跳接设置,使i/o附加卡和部件不再具有人工跳接线设置电路 (3)在主机板和附加卡上保存系统资源的配置参数和分配状态,有利于系统对整个i/o资源的分配和控制 (4)支持和兼容各种操作系统平台,具有很强的扩展性和可移植性。 (5)在一定程度上具有“热插入”、“热拼接”技术,2) pnp技术的特点,功能: (1)附加卡的识别与确认 (2)资源分配 (3)附加卡自动配置 多方面的支持:具有pnp功能的操作系统、配置管理软件、软件安装程序、设备驱动程序等;网络设备的pnp支持;系统平台的支持(如:pnp主机板、控制芯片组和pnp bios等);各种支持pnp规范的总线的i/o控制卡和部件,3) pnp技术的功能及支持,6. 网络i/o设备,网络计算已成为计算机发展的方向之一 典型网络i/o设备网络打印 以往的打印模式 打印机连接到网上pc上,或连到文件服务器上,提供网络打印服务 新的网络打印 采用网络打印服务器技术,打印机直接上网 任何数据直接送到网络打印机输出,打印服务器还能实现多种网络自动切换:不同网络环境中的用户都可以直接向同一台打印机发送打印作业,打印服务器会自动识别 较强的打印管理功能:可以管理网络打印驱动,而且容易安装和管理;可以实现远程登录访问,进行远程打印机管理 提高工作效率 分布式的环境设置:可以安装在网络的任何地方,这种打印服务方式,就显得更加灵活和满足需要 qos更好,7. 网络打印设备,第五章 设备管理,5.6设备分配与设备处理,当某进程向系统提出i/o请求时,设备分配程序按一定策略分配设备、控制器和通道,形成一条数据传输通路,以供主机和设备间信息交换,5.6.1 设备分配与回收,设备独立性,即不能因为设备的忙碌、故障或更换而影响程序的运行, 向用户屏蔽物理设备, 呈现给用户的一个操作简单的逻辑设备 抽象的i/o 操作,即设计一类通用的i/o指令,它们的含义对不同类型的设备作不同解释。而且,在操作系统中,提供了若干i/o系统调用。由系统将抽象的i/o 操作映射到专门的设备驱动程序,1. 设备管理中的数据结构,在多通路的系统中,为了满足一个请求,不仅仅是分配一个设备的问题,还应分配相应的控制器和通道,以确保与设备之间能进行通信,在存储器与/设备之间能进行数据的直接存取。 设备管理程序对设备进行分配和控制是借助于一些表格;表格中记录了对设备控制所需之信息。它们是设备管理程序实现管理功能的数据结构。,数据结构(续),控制所需之信息。它们是设备管理程序实现管理功能的数据结构。如下表:,整个系统一张表,记录系统中所有i/o设备的信息,表目包括: 设备类型、设备标识符、进程标识符、dct表指针等,1) 系统设备表sdt,主要内容:设备类型、设备标识符、设备状态、与此设备相连的coct、重复执行的次数或时间、等待队列的队首和队尾指针、i/o程序地址 3)coct 4)chct coct和chct与dct类似,2) 设备控制表dct,设备控制 通道控制 控制器控制 块(dcb) 块(chcb) 块(cocb),三种控制块,由于在多道程序系统中,进程数多于资源数,引起资源的竞争。因此,要有一套合理的分配原则 考虑的因素: * i/o设备的固有属性 * i/o设备的分配算法 * 设备分配的安全性 * 与设备的无关性,2. 设备分配策略,1) 独享、共享、虚拟分配技术,独享分配方式:即一个设备分配给某作业后便由该作业独占,直到该作业完成并释放后,其它作业方能使用。大多数低度速设备都属于独享设备。 共享分配方式:如磁盘、磁鼓之类的外存储器,既具有很能大的存储容量,其定位操作的时间又短,因此,它们可为若干作业所共享。 虚拟分配方式:把一台输入机虚拟为几台“虚拟”的输入机。例如:为了提高设备利用率引入了脱机输入输出或采用技术,变一台为“多台设备”,要考虑充分发挥效率,避免由于不合理的分配策略造成死锁。 静态分配:在进程运行前, 完成设备分配;运行结束时,收回设备 缺点:设备利用率低 动态分配: 在进程运行过程中,当用户提出设备要求时,进行分配,一旦停止使用立即收回 优点:效率好 缺点:分配策略不好时, 产生死锁,独占设备的分配,由于同时有多个进程同时访问,且访问频繁,就会影响整个设备使用效率,影响系统效率。因此要考虑多个访问请求到达时服务的顺序,使平均服务时间越短越好。,共享设备分配,2)/设备的分配算法,/设备的分配机制,除了与设备的固有属性有关外,还与系统所采用的分配策略有关。/设备的分配与进程调度很能相似,同样可采用如下的一些算法: 先请求先服务:当有多个进程对同一设备提出/请求时,该算法要求把所有发出/请求的进程,按其发出请求的先后次序排成一个等待该设备的队列。设备分配程序把/设备分配给队列中第一个进程。 优先权最高者优先。对于何必先权相同的请求,则按先请求先分配的原则排队。,3) 设备分配的安全性,为了能同时操作多个/设备以加速进程的推进,应使得某进程以命令形式发出/请求后,仍可继续运行,需要时又可发出第二个、第三个/请求。多请求方式的缺点是,设备分配不安全,因为它具备请求和保持条件,因而有可能产生死锁的情况。由此可见,在多请求方式中,设备的分配程序应保证不发生进程死锁。,4) 与设备无关性,为了提高系统的可适应性和可扩展性,我们希望 所编制的用户程序与实际使用的物理设备无关,这就是所谓与设备无关性。 为此,我们将逻辑设备与物理设备区分,并引入逻辑设备名称和物理设备名称的概念。为了实现与设备的无关性,系统中必须有一张联系逻辑设备名称和物理设备名称的映射表,(表),3. 系统的逻辑设备表,逻辑设备与物理设备,这个中为三个不同的逻辑设备号列出了同样的物理设备和驱动程序的地址。这说明逻辑设备,目前均得到同一个物理设备的服务(这或许是因为激光打印机及字母型打印机正在被修理,因此本来输出到这些设备上的请求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论