主 题: 《操作系统原理》学习笔记
内 容:
《操作系统原理》学习笔记五
——设备管理
输入设备和输出设备在主机之外,它们统称为外部设备、外围设备。外部设备是计算机与外部世界进行信息交换的装置。设备管理是指对计算机系统中除处理机和主存储器以外的所有其它设备的管理。
一、设备分类和设备管理功能:
目前的计算机系统,特别是大型计算机都配置有多种设备,它们大部分是用于完成输入输出(I/O)工作。
有的是做为外存储器保存文件信息。
这些设备需要按照不同的种类进行管理和提供给用户使用,操作系统的设备管理提供了有关的功能。
1、设备的分类
从数据的传输和组织特性分为两类:
l块设备。以一定大小的数据块为单位输入输出数据的,并且在设备中的数据也是以物理块为单位进行组织和管理的。
l字符设备。以字符为单位输入输出数据的设备,并且以字符为单位对设备中的信息进行组织和处理。
绿环保小知识设备按其所属关系分为:
l系统设备。在操作系统生成时已登记在系统中的标准设备称为系统设备。
l用户设备。在系统生成时并未登记到系统中,由用户根据其运行需要向系统提供的设备称为用户设备。
设备的处理程序也是由用户提供的。
从系统对资源分配的角度分为:
l独占设备。由一个用户作业独占。
l共享设备。同时分配给多个用户作业共享使用。
l虚拟设备。使用虚拟技术把独占设备改造成共享设备。
2.设备管理的设计目标
2.1向用户提供使用设备的方便、统一的接口。
面对用户把设备复杂的物理特性屏蔽起来,由操作系统承担起对设备的控制和管理。向用户提供一个使用设备的统一接口。
2.2设备独立于用户程序。
女安慰自己动手图片用户程序不能直接对物理设备进行操作。
操作系统把物理设备逻辑化,仅向用户提供逻辑设备。
用户在程序中使用的是逻辑设备,由操作系统建立逻辑设备与物理设备的联系。
这种特性称为设备无关性
2.3充分提高设备利用率和工作效率
使设备和处理机能够做到高度的并行工作。
各个设备之间也要能够并行工作从而达到提高设备利用率的目的为各个作业或进程合理地分配各种设备,处理好多个进程对设备的竞争与共享。
均衡各个同类设备的工作状况
3.设备管理的功能
3.1 记录设备的管理信息
3.2 进行设备分配和调度
3.3 实现真正的I/O操作
3.4 管理输入输出缓冲区
二、通道技术
1.I/O控制方式:
l查询等待方式
l中断方式
l DMA方式
2.通道方式
通道是一种具有较强I/O处理能力、专门对设备进行管理和控制的硬件机构,又称I/O处理机。
它可以独立地执行通道程序,以此来实现设备与内存之间的数据传送。
通道还具有对设备进行管理、控制、检测等功能,它可以控制管理设备完成I/O的全过程。
通道配备有通道命令字CCW(Channel Command Word)
包括有对设备进行初始化、读、写、查询、转移等功能的命令
通道命令相当于中央处理机CPU的指令。
使用CCW可以编写对各种不同设备进行管理和控制的通道程序。
CPU对通道的管理是通过I/O指令实现的。
I/O指令属于特权指令,仅能由操作系统使用。
在I/O指令中需指定通道号和设备号以及通道程序的内存地址。
CPU把通道做为一种设备,采用中断方式进行管理。
2.1 字节多路通道
一个字节多路通道可有8、16、32个子通道,每个子通道连接一台设备。
通道以字节为单位按多路循环交叉方式工作,即每次通过一个子通道与设备之间传送一个字节的数据后,并不等待设备完成I/O操作,立即转向另一个子通道传送数据。
2.2 选择通道
使用选择通道在内存与设备之间按成组方式传送数据,传送速率很高。在两次传送之间没有多少空闲时间可用。
在每次数据传送期间,通道只能由一台高速设备独占。通道完成一次数据传送后,再转去为另一台设备服务。
2.3 成组多路通道
十三刀
结合了选择通道传送效率高和字节多路通道能使设备并行工作的优点。
利用分时原理形成的一种通道方式。
它不仅可以同时连接多台高速外部设备,按照成组方式快速地传送数据,而且也能够以交替方式同时控制多台设备并行传送数据。
三、缓冲技术
1.缓冲技术的引进
在计算机系统中无论是程序的指令还是加工的数据,它们需要在系统的各个部分之间进行传输。
由于系统的不同部件处理信息的速和管理信息的单位不同,造成了信息流不能以同一流速和同一流量流动,影响了系统整体的运行效率。
引进缓冲技术的原因:
l解决高速CPU与慢速设备之间不匹配的问题。
l解决数据处理单位与块设备数据传输单位不匹配的问题。
l减少I/O对CPU的中断次数和放宽CPU对中断的响应时间。
2.缓冲器的种类:
2.1
l硬件缓冲器:由硬件实现。数据传输速度高,但价格昂贵。一般用于高速缓存,数量不能多。
l软件缓冲器(又称缓冲区):通过软件的方法实现。在内存中划出某个固定的区域。
2.2
l静态缓冲区:按固定长度划分出缓冲区的位置。在系统运行中缓冲区的长度不变化。
l动态缓冲区:在需要申请使用缓冲区时,根据所需的大小动态地在内存空间中划分出缓冲区。动态缓冲区比静态缓冲区对空间的利用率要高。
2.3
l单缓冲:系统中只设置一个缓冲区。
l双缓冲:系统设置两个缓冲区。
l多重缓冲:设置多个缓冲区把多个缓冲区连接成环型使用,称为循环缓冲。
四、设备分配
作业在需要设备时必须向系统提出请求。
由操作系统的设备分配程序按照一定的分配原则和分配策略把设备分配给用户的作业。
用户作业提出设备请求后,若不能得到满足,则进入相应的资源等待队列中等待,直到所需设备被释放。
1.设备管理的数据结构
系统设备表SDT用来登记系统中的所有设备,每个设备使用一个表项。
每台设备设置一个设备控制块DCB它记录了设备的特性、使用的状态等信息。
所有设备的DCB集合在一起形成了设备控制表DCT。
控制器控制块COCB描述控制器的特性和状态。
每个控制器有一个COCB。
所有控制器的COCB集合在一起形成了控制器控制表COCT。
每个通道有一个通道控制块CHCB。
山西大同邮编所有通道的CHCB集合成通道控制表CHCT。
2.设备分配策略
用户需要申请使用设备时,只能使用逻辑设备名。
由操作系统建立物理设备与逻辑设备之间的对应关系。
设备可以分为独占设备、共享设备和虚拟设备三类。
对不同类型的设备,采用不同的分配策略。
2.1 独占分配方式
对独占设备通常采用独占分配方式。
在用户作业执行前,由系统一次性地把该作业所需要的设备、控制器和通道分配给它。
一旦分配后,这些设备、控制器、通道就由该作业占用,直到该作业不再需要这些资源或作业运行完毕,再由系统回收
2.2 共享分配方式
作业在运行过程中需要使用设备时,通过系统调用发出设备请求,系统则把该作业需要的设备、控制器、通道分配给它。
磁盘、磁鼓等直接存取设备容量大,定位快,每个作业只使用其中的一部分,所以它们可以采用共享方式同时分配给多个作业使用。
2.3 虚拟分配方式
虚拟分配方式是针对虚拟设备而言。
为了提高独占设备的利用率而引入虚拟设备技术,又称预输入缓输出或SPOOLing 技术。
从系统角度看,把共享设备(磁盘)的一部分做为虚拟的独占设备分配给了用户。。
3.设备分配算法
l先请求先分配算法。按多个进程或作业发出请求设备的先后次序排入等待队列中。设备分配时,总是把设备分配给队列首的那个进程。
l按优先级分配算法。按照请求设备的多个进程的优先级分配设备。
五、设备处理程序与I/O进程
进程申请设备并得到满足后,由设备处理程序控制设备具体实现指定的I/O操作。
设备处理程序的执行通常是由I/O进程完成的。
1.设备处理程序
进程在运行过程中需要使用设备完成I/O 操作时,通过系统调用向操作系统发出设备请求。
由于不同种类的设备具有不同的物理特性,为了控制设备完成所需的I/O 操作,系统为每类设备编制一组实现I/O操作的设备处理程序,又称为设备驱动程序。
操作系统的设备无关性是通过设备驱动程序实现的。
用户提出设备请求时给出了设备的逻辑名等与设备无关的参数。
设备驱动程序则根据设备的物理特性实现具体的I/O操作。
设备驱动程序中包括的是与设备相关的代码。
设备处理程序一般具有以下功能:
l设备初始化。
l组织I/O缓冲队列。
l对数据进行预加工。
l构造I/O例程。
l启动I/O例程。
l处理来自设备或通道的各种中断请求。
2.I/O进程
为了能够在处理机上执行设备处理程序,系统一般都设置了专门完成I/O 操作的进程,称为I/O进程。
系统收到设备请求后进入I/O进程。
英雄联盟qq签名I/O 进程执行的程序就是设备处理程序。
l为每一台设备建立一个I/O进程,同类设备的各I/O进程共享该类设备的管理程序。
l为每一类设备建立一个I/O进程,它执行该类设备的管理程序,统一负责该类设备中各台设备的处理工作。
l整个系统设置一个I/O进程,或者一个输入进程和—个输出进程,负责系统中所有设备的处理工作。
I/O进程一般在系统生成时被创建,平时处于等待状态。
I/O进程在两种情况下被唤醒:当用户进程发出设备请求命令时、出现I/O中断时。
用户进程发出I/O请求命令(系统调用)。
系统调用把I/O请求送给I/O进程,并将I/O进程唤醒。
用户进程则进入阻塞态。
I/O进程进行I/O请求处理。
把I/O请求命令插入到该设备的I/O请求队列中。
启动设备分配程序。
设备分配程序为I/O请求分配相应的设备、控制器和通道。
I/O请求处理模块启动缓冲管理模块为此次I/O传送申请必要的缓冲区。
I/O进程获得所需的设备资源后,启动I/O例程或通道程序完成的I/O操作。
世界之窗门票多少钱设备完成I/O 操作或出现故障时,发出中断请求。硬件自动根据中断向量,转入操作系统核心内的中断处理程序。
中断处理程序将中断的有关信息发送给I/O进程,同时唤醒I/O 进程后立即中断返回。
I/O进程释放相应的设备、控制器和通道,唤醒正在等待该I/O操作完成的用户进程。
I/O进程完成指定的I/O操作后则重新进入等待状态。
I/O进程属于系统进程,具有最高的优先级。
六、L i n u x设备管理
Linux 的设备管理的主要任务是控制设备完成输入输出操作,所以又称输入输出(I/O)子系统。
Linux 操作系统在设备管理中不但提供了使用设备的统一接口,而且把对设备的管理与文件管理统一起来。
Linux把设备看作是特殊的文件,系统通过处理文件的接口——虚拟文件系统VFS 来管理和控制各种设备。
系统经过VFS的转换完成对设备的各种操作,而设备操作的具体实现是由设备驱动程序完成的。
1.Linux设备管理方法
1.1 设备驱动程序
Linux操作系统把物理设备逻辑化,仅向用户提供逻辑设备。
用户在程序中使用的是逻辑设备,由系统内核建立逻辑设备与物理设备的联系。
用户进程使用的设备与实际使用的物理设备无关,称为设备独立性。
在Linux中设备被分为三类: