《操作系统课件08设备管理.ppt》由会员分享,可在线阅读,更多相关《操作系统课件08设备管理.ppt(41页珍藏版)》请在三一办公上搜索。
1、第八章 设备管理,(一)设备管理的基本概念(二)缓冲技术(三)设备分配技术(四)输入/输出控制,(一)设备管理的基本概念,1、计算机设备定义在计算机系统中除CPU和内存储外所有的其它设备,又称为计算机外部设备。按照设备的功能分类:1)存储设备 用来存放各种信息的设备称为存储设备(硬盘,U盘,光盘,移动硬盘等等)。2)I/O设备(Input/Output)用来向计算机输入和输出信息的设备(键盘,鼠标,显示器,打印机,扫描仪等等)。3)通信设备 如以太网卡、无线网卡等。,从不同的角度,可以对设备进行不同的分类1.按信息传输单位分类(1)块设备(2)字符设备2.按资源分配方式分类(1)独占设备(2)
2、共享设备(3)虚拟设备,3,2.设备管理的目标提高设备利用率合理分配设备提高设备与CPU、各外部设备之间的并行性方便用户的使用 提供使用方便且独立于设备的界面统一:对各种不同的设备提供一致的界面独立于设备:用户使用的设备与物理设备无关,二.设备管理功能,1.状态跟踪 通过设备控制块(DCB,Device Control Block)动态的记录各种设备的状态。2.设备分配与回收 作业级静态分配 作业进入系统时一次性分配,退出系统时收回全部资源。进程级动态分配 进程提出设备申请时进行分配,使用完毕后立即收回。3.设备控制 实施设备驱动和中断处理的工作。设备控制包括设备的驱动、完成和故障中断处理。,
3、三.设备独立性,1、问题的引出 为了方便用户使用各种设备,需屏蔽设备的物理特性 2.设备独立性的概念 即应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。,3、两类设备独立性,(1)一个程序应独立于分配给它的某种类型的具体设备即在用户程序中只指明I/O使用的设备类型即可。如在系统中配备了两台打印机,用户要打印时只要告诉系统要将信息送到打印机即可。(2)程序要尽可能地与它使用的设备类型无关即在用户程序中只要指出要输入或输出信息,至于信息I/O使用的设备不需用户指明
4、。,8,在Linux/UNIX系统中,把设备与文件统一处理,这比前两种设备独立性又算了一步,对于用户来说,就没有设备的概念。,7,3、设备独立性的实现1)在高级语言中用软通道实现使用高级语言提供的指派语句,通过指派一个逻辑设 备名 来定义一个设备或文件。如:fd=open(“/dev/lp”,mode)2)在批处理系统中,用联接说明语句来定义 如:OUTPUT1=LPT3)在交互系统中,用指派命令来定义 如:PDP系列机上的RT11系统 ASSIGN 设备物理名 设备逻辑名,4.设备独立性的优点方便用户编程提高系统资源的利用率 提高系统的可扩展性和可适应性,5.设备控制块(DCB),设备控制块
5、是设备管理的数据结构,用来存放设备的硬件特性、连接和使用情况,每类设备有一个设备控制块。,设备转换表(设备开关表)设备开关表存放设备驱动和控制程序人口地址。,(二)缓冲技术,一、缓冲的概念1、定义:缓冲是两种不同速度的设备之间传输信息时平滑传输过 程的常用手段。为什么要使用缓冲 解决两种设备之间传输信息时速度不匹配,慢速设备,快速设备,慢速设备,快速设备,中速设备缓冲,2.缓冲的实现(1)缓冲器(硬件实现)用来暂时存放数据的一种硬件存储装置,容量较小。(2)软件缓冲区(软件实现)I/O操作期间,用来临时存放I/O数据的一块主存区域。,12,利用缓冲技术如何进行I/O操作 进程请求从输入设备进行
6、读操作的图示,与需要同步,13,进程请求从输入设备进行读操作的步骤 当用户要求在某个设备上进行读操作时,首先从系统中获得一个空的缓冲区;将一个物理记录送到缓冲区中;当用户请求这些数据时,系统将依据逻辑记录特性 从缓冲区中提取并发送到用户进程存储区中;当缓冲区空而进程又要从中取用数据时该进程被迫 等待。此时,操作系统需要重新送数据填满缓冲 区,进程才能从中取数据继续运行。要注意操作与操作的同步关系,14,进程请求从输出设备进行写操作的图示,与需要同步,15,进程请求从输出设备进行写操作的步骤 当用户要求进行写操作时,首先从系统中获得一个 空的缓冲区;将一个逻辑记录从进程存储区传送到缓冲区中;当缓
7、冲区写满时,系统将缓冲区的内容作为物理记 录文件写到设备上,使缓冲区再次为空;只有在系统还来不及腾空缓冲区之前,进程又企图 输出信息时,它才需要等待。要注意操作与操作的同步关系,二、常用的缓冲技术,常用的缓冲技术:双缓冲、环形缓冲、缓冲池,16,双缓冲 在双缓冲方案下,为输入或输出分配两个缓冲区buf1、buf2。输入数据时,如何利用双缓冲输出数据时,如何利用双缓冲,17,输入数据时,如何利用双缓冲,18,输出数据时,如何利用双缓冲,缓冲池,系统设置多个缓冲区,形成一个缓冲池。这个池中的缓冲区为系统中所有的进程共享使用。为了管理这些缓冲区,建立相应的数据结构:缓冲区管理信息数据结构 空闲缓冲区
8、队列 满缓冲区队列等,(三)设备分配,静态分配 当一个作业(或进程)运行时,根据作业要求的设备,系统如果能满足,则将其要求的设备全部分配给它,然后开始运行,运行完成释放其占用的所有设备。这种分配方式的优点是系统绝不会出现死锁,缺点是设备利用率太低。,动态分配这种分配方法是在作业(或进程)运行的过程中,需要使用设备时,就向系统申请,系统根据某种分配原则进行分配。这种方法的优点是设备的利用率高,缺点是系统有出现死锁的可能。,设备分配的主要技术:独享分配共享分配虚拟分配,独享分配独享设备1.什么是独享设备在一段时间内,由一个作业或进程独自占用(即使没有使用)的设备,例如打印机等等。2.什么是独享分配
9、(使用静态分配)在一个作业执行前,或进程提出资源申请后,将所要使用的设备分配给它;当作业结束,或进程释放后,才将分配给它的这类设备收回(不能强行收回)。,共享分配1.什么是共享设备由多个作业、进程共同使用的设备称为共享设备,例如磁盘等等。2.什么是共享分配(使用动态分配)当进程提出资源申请时,由设备管理模块进行分配。进程使用完毕后,立即收回。,虚拟分配虚拟分配当进程需要与独占型设备交换信息时,系统将分配磁盘空 间,并建立相应的数据结构,这种分配方法称为设备的虚拟分配。虚拟设备 通常把用来代替独占型设备的那部分外存空间(包括有关的控制表格)称为虚拟设备。虚拟技术 所谓虚拟技术,是在一类物理设备(
10、如外存)上模拟另一类物理设备(如打印机)的技术,是将独占设备转化为共享设备的技术。,SPOOLing,全名:Simultaneous Peripheral Operations OnLine,即外部设备联机并行操作,通常也叫做“假脱机技术”。是一种预输入、缓输出和转储的管理技术。,必要条件1(互斥条件):难以否定,解决办法:假脱机技术,(1)预输入在作业需要数据前,操作系统已将所需数据预先输入到辅存输入井存放。当作业(或进程)需要数据时,可以从辅存中读入内存。(2)缓输出在作业执行时,将输出数据写入辅存输出井中。当作业(或进程)执行完毕(或需要数据时),由操作系统将数据输出。,共享打印机,共享
11、打印机技术已被广泛地用于多用户系统和局域网络中。当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而只为它做两件事:由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。,SPOOL系统的优点:提高了I/O速度提高了设备利用率和系统的吞吐能力(将独享设备改造为共享设备);实现对独占设备的改造和提高了进程的并发度和执行效率(实现了虚拟设备功能),(四)输入输出控制,1、设备I/O(数据传输)方式1)程序查询方式2)中断控
12、制方式3)DMA方式4)通道方式,程序I/O方式,在程序I/O方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态。,I/O中断方式在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。,DMA(Direct Memory Access)控制方式的引入,该方式的特点是:数
13、据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送 至少一个数据块;所传送的数据是从设备直接送入内存的,或者相反;仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数 据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。,I/O通道控制方式,I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。通道是一种专用处理部件,它能控制一台或多台外设工作,负责外部设备和储存之间的信息传输。,设备驱动程序,操作系统与设备交互的惟一模块,由生产设备的厂商提供。操作系统对设备驱动的管理:上层提供统一的系统调用接口;下层通过设备开关表与设备驱动程序直接关联。设备驱动主要完成的工作:对设备进行初始化;从设备接收数据并回传系统或将数据从系统送到设备;检测和处理设备错误。,作业,第8章 11,