自考 操作系统第6章 设备管理11.docx
- 文档编号:9142781
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:30.32KB
自考 操作系统第6章 设备管理11.docx
《自考 操作系统第6章 设备管理11.docx》由会员分享,可在线阅读,更多相关《自考 操作系统第6章 设备管理11.docx(20页珍藏版)》请在冰豆网上搜索。
自考操作系统第6章设备管理11
•第6章设备管理
•学习目的与要求:
•了解设备管理与文件管理的合作关系;理解怎样实现独占设备的分配和磁盘的驱动调度;缓冲技术的应用以及怎样实现虚拟设备;了解UNIX系统对块设备的管理技术。
•重点:
独占设备的分配;磁盘的驱动调度;虚拟设备的实现
•
•教学内容:
“设备”泛指计算机系统中的外部设备,即除主机以外的其他所有设备。
在多道程序设计环境下,计算机系统允许多个用户作业同时在内存,它们的运行势必涉及到I/O设备。
于是,对于设备本身,有一个如何有效利用的问题;对于设备和CPU,有一个如何发挥并行工作能力的问题;对于设备和用户,有一个如何方便使用的问题。
6.1设备管理的功能
•1.实现外围设备的分配与回收
•2.实现外围设备的启动
•3.实现对磁盘的驱动调度
•4.处理外围设备的驱动调度
•5.实现虚拟设备
•6.2设备的分类
计算机系统配有各种各样的设备,常见的有显示器、键盘、打印机、磁带机、磁盘机、光盘、激光打印机、绘图仪、鼠标、图形数字化仪器,声音输入输出设备等等。
可以从不同的角度去对外部设备进行分类。
•⑴基于设备的从属关系,可以把系统中的设备分为系统设备与用户设备两类。
系统设备:
操作系统生成时就纳入系统管理范围的设备就是系统设备,通常也称为“标准设备”。
比如键盘,显示器、打印机和磁盘驱动器等。
用户设备:
在完成任务过程中,用户特殊需要的设备称为用户设备。
由于这些是操作系统生成时未经登记的非标准设备,因此对于用户来说,需要向系统提供使用该设备的有关程序(如设备驱动程序等);对于系统来说,需要提供接纳这些设备的手段,以便将它们纳入系统的管理。
•⑵基于设备的分配特性,可以把系统中的设备分为独享设备、共享设备和虚拟设备三类。
独享设备:
打印机、用户终端等大多数低速输入、输出设备都是所谓的“独享设备”。
这种设备的特点是:
一旦把它们分配给某个用户进程使用,就必须等它们使用完毕后,才能重新分配给另一个用户进程使用。
否则不能保证所传送信息的连续性,或会出现混乱不清、无法辨认的局面。
也就是说,独享设备的使用具有排它性。
共享设备:
磁盘等设备是所谓的“共享设备”。
这种设备的特点是:
可以由几个用户进程交替地对它进行信息的读或写操作。
从宏观上看,它们在同时使用,因此这种设备的利用率较高。
虚拟设备:
通过大容量辅助存储器的支持,利用SPOOLing技术,把独享设备“改造”成为可以共享的设备,但实际上这种共享设备是并不存在的,于是把它们称为“虚拟设备”。
•⑶基于设备的工作特性,可以把系统中的设备分为输入/输出设备和存储设备两类。
输入/输出设备:
输入设备是计算机“感知”或“接触”外部世界的设备,比如键盘。
用户通过输入设备把信息送到计算机系统内部;输出设备是计算机“通知”或“控制”外部世界的设备,比如打印机。
计算机系统通过输出设备把计算机的处理结果告知用户。
由于这些输入/输出设备都是以单个字符为单位来传送信息的,因此通常也把它们称为“字符设备”。
存储设备:
存储设备是计算机用于长期保存各种信息、又可以随时访问这些信息的设备,磁带和磁盘是存储设备的典型代表。
终端设备:
通用终端、多用终端和虚终端。
磁盘的特点是存储容量大,存取速度快,并且能够顺序或随机存取。
操作系统中的很多实现技术(比如存储管理中的虚拟存储,本章将要介绍的虚拟设备等),都是以磁盘作为后援的。
因此,它越来越成为现代计算机系统中的一个不可缺少的重要组成部分。
磁盘有软盘、硬盘之分,硬盘又可分为固定头和活动头两种。
磁盘种类虽多,但它们基本上由两大部分构成:
一是存储信息的载体,也就是通常所说的盘片;二是磁盘驱动器,它包括磁头、读/写驱动放大电路、机械支撑机构和其他电器部分。
每个盘片有正反两个盘面,若干盘片组成一个磁盘组。
磁盘组被固定在一个轴上,沿着一个方向高速旋转。
每个盘面有一个读/写磁头,所有的读/写磁头被固定在移动臂上,同时进行内、外的运动。
要把信息存储到磁盘上,必须给出磁盘的柱面号、磁头号和扇区号;读取信息时,也必须提供这些参数。
每个盘面上有许多同心圆构成的磁道,把它们从0开始由外向里顺序编号。
不同盘面上具有相同编号的磁道形成一个个柱面。
于是,盘面上的磁道号就称为“柱面号”。
每个盘面所对应的读/写磁头从0开始由上到下顺序编号,称为“磁头号”。
随着移动臂的内、外运动,带动读/写磁头访问所有的柱面(即磁道)。
当移动臂运动到某一位置时,所有读/写磁头都位于同一柱面。
不过根据磁头号,每次只能有一个磁头可以进行读或写操作。
在磁盘初始化时,把每个盘面划分成相等数量的扇区。
按磁盘旋转的反向、从0开始为每个扇区编号,称为“扇区号”。
要注意的是,每个扇区对应的磁道弧长虽然不一,但存储的信息量是相同的(比如都是1024个字节)。
扇区是磁盘与内存进行信息交换的单位,一个扇区内可能会存放若干个记录,因此,也称磁盘的扇区为“块”。
正因为磁带和磁盘都是以块为单位来传送信息的,因此通常也把它们称为“块设备”。
•磁盘上磁盘块(即扇区)的编号按照柱面的顺序进行(从0开始),每个柱面按照柱面上的磁道顺序(也就是按照磁头顺序)进行(从0开始),每个磁道按照扇区顺序进行(从0开始)。
•假定用c表示每个柱面上的磁道数,用s表示每个盘面上的扇区数,则第i个柱面、j磁头、k扇区所对应的磁盘块号b可以用如下的公式计算:
•b = k + s × (j + i × c)
•同样地,根据给出的磁盘块号,也可以计算出它在磁盘上的位置(即它位于的柱面号、磁头号、扇区号)。
仍以上面的假定为前提,现在要求第p个磁盘块在磁盘上的位置。
•令D=s*c(每个柱面上拥有的磁盘块数),设M = p/D,N = p%D(注意,这里的¡°/¡±和¡°%¡±分别表示整除和求余)。
•于是,求第p块在磁盘上位置的公式为
•柱面号 = M;磁头号 = N /s;扇区号 = N %s
(2)
•例6-2假定一个磁盘组共有100个柱面,每个柱面上有8个磁道,每个盘面被划分成8个扇区。
现在有一个含6400个记录的文件,记录大小与扇区尺寸相同,编号从0开始。
该文件从0柱面、0磁道、0扇区顺序存放。
试问:
•a.该文件的第3680个记录应该存放在磁盘的哪个位置?
•b.第78柱面的第6磁道的第6扇区中应该存放该文件的第几个记录?
•6.2.2设备管理的目标与功能
•⑴设备管理的目标
•①提高设备的利用率。
•应尽量提高CPU与I/O设备之间的并行操作程度,主要利用的技术有:
中断技术、DMA技术、通道技术和缓冲技术。
•②为用户提供方便、统一的界面。
所谓方便,是指用户能独立于具体设备的复杂物理特性之外而方便使用设备。
所谓统一,是指对不同的设备尽量使用统一的操作方式,例如各种字符设备用一种I/O操作方式。
这就要求用户操作的是简便的逻辑设备,而具体的I/O物理设备有操作系统去实现,这种性能常常被称为设备的独立性。
•⑵设备的功能
①设备分配。
按照设备类型和相应的分配算法决定将I/O设备分配给哪一要求使用该设备的进程。
凡未分配到所需设备的进程被放入一个等待队列。
②设备处理。
设备处理程序实现CPU和设备控制器之间的通信。
即当CPU向设备控制器发出I/O指令时,设备处理程序应启动设备进行I/O操作,并能对设备发来的中断请求作出及时的响应和处理。
③实现其他功能。
包括对缓冲区的管理功能及实现设备独立性。
•6.3独占设备的管理
•6.3.1设备的绝对号与相对号
•设备的绝对号:
计算机系统为每一台设备进行登记,且为每一台设备确定一个编号,确定的编号称为~。
•设备的相对好:
由用户对自己需要使用的若干台同类设备给出的编号称为~
•转换:
建立“绝对号”与“设备类、相对号”的对应关系。
6.3.2独占设备的分配
•使用“设备类、相对号”来申请设备。
•概念:
设备的独立性
•好处:
1、系统从“好的且未分配的”设备来分配
•2.万一设备出现故障,系统可以从同类中找另一台来替换。
•静态分配策略
•设备分配表:
设备类表和设备表
•P162设备分配流程
•6.4设备分配
分配的任务是按照一定的算法将设备及有关资源分配给申请者进程。
有些设备还要分配缓冲区、控制器和通道。
为了提高系统的适应性和均衡性,应考虑设备的独立性和系统的安全性。
•6.4.1设备分配策略
•㈠独享设备分配策略
•¡°独享设备¡±即是在使用上具有排它性的设备。
独享设备的使用具有排它性,因此对这类设备只能采取¡°静态分配¡±的策略。
•对于独享设备,常采用的分配算法有如下两种:
①先来先服务;②优先级高者先服务
•㈡共享设备的分配和磁盘调度策略
•⒈设备的分配
当有很多进程向磁盘提出I/O请求时,对它们就有一个调度安排问题:
让谁先用,让谁后用。
(一般不必进行分配)
执行一次磁盘的输入/输出需要花费的时间有如下几种。
①查找时间:
在移动臂的带动下,把磁头移动到指定柱面所需要的时间。
②等待时间:
将指定的扇区旋转到磁头下所需要的时间。
③传输时间:
由磁头进行读/写,完成信息传送所需要的时间。
•⒉磁盘调度策略
⑴¡°先来先服务¡±调度算法
以I/O请求到达的先后次序作为磁盘调度的顺序,这就是先来先服务调度算法。
可以看出,该算法实际上并不去考虑I/O请求所涉及的访问位置。
比如,现在假定读/写磁头位于53号柱面。
开始调度时,有若干个进程顺序提出了对如下柱面的I/O请求:
98、183、37、122、14、124、65、67。
当实行先来先服务磁盘调度算法时,磁头应该从53号柱面移到98号,然后是37号,等等,直到抵达67号柱面。
这时移动臂移动的路线如图所示。
移动臂来回移动时,从53到98,共滑过了45个磁道,从98到183,共滑过了85个磁道,等等。
如此一点点计算下来,然后相加,磁头总共滑过了640个磁道的距离。
不难看出,如果I/O请求很多,移动臂就有可能会里外地来回“振动”,极大地影响了输入/输出的工作效率。
因此,先来先服务调度算法并不理想。
⑵¡°最短寻找时间优先¡±调度算法
把距离磁头当前位置最近的I/O请求作为下一次调度的对象,这就是最短查找时间优先调度算法。
仍以上面例子中的数据为依据,但实施最短查找时间优先调度算法,这时移动臂移动的路线如图所示。
磁头从53开始,在当前已有的I/O请求中,距离柱面(即磁道)65的I/O请求最近,于是把磁头移动到65,完成对它的I/O请求。
接着应该移动到柱面67。
从67出发,若到柱面98,需要滑过31个磁道,而到柱面37,只需滑过30个磁道,所以应该把磁头移动到柱面37,等等。
根据这一调度顺序,磁头总共滑过了236个磁道的距离,效果明显好于先来先服务调度算法。
•⑶“电梯”调度算法
电梯调度算法基于日常生活中的电梯工作模式:
电梯保持按一个方向移动,直到在那个方向上没有请求为止,然后改变方向。
反映在磁盘调度上,总是沿着移动臂的移动方向选择距离磁头当前位置最近的I/O请求作为下一次调度的对象。
如果该方向上已无I/O请求,则改变方向再做选择。
仍以上面例子中的数据为依据,只是改为实施电梯调度算法。
要注意,由于电梯调度算法与移动臂当前的移动方向有关,因此移动臂移动的结果路线应该有两个答案。
如图表示当前移动臂正在由里往外移动,因此从53柱面出发,下一个调度的对象应该是37,然后是14。
到达14后,由于14柱面再往外已经没有I/O请求了,故改变移动臂的移动方向,由外往里运动。
所以14柱面后,调度的是对65柱面的I/O请求。
随后的调度顺序为67、98、122、124,最后到达183。
根据这一调度顺序,磁头总共滑过了208个磁道的距离。
•下图表示当前移动臂正在由外往里移动,因此从53柱面出发,随后的调度顺序为65、67、98、122、124,最后到达183。
到达183后,由于183柱面再往里已经没有I/O请求了,故改变移动臂的移动方向,由里往外运动。
所以下一个处理的I/O请求是柱面37,然后是柱面14。
根据这一调度顺序,磁头总共滑过了299个磁道的距离。
•⑷“单向扫描”调度算法
单向扫描调度算法总是从0号柱面开始往里移动移动臂,遇到有I/O请求就进行处理,直到到达最后一个请求柱面。
然后移动臂立即带动磁头不做任何服务地快速返回到0号柱面,开始下一次扫描。
仍以上面例子中的数据为依据,但实施单向扫描调度算法,这时移动臂移动的路线如图4-13所示。
开始时的情形与电梯调度算法从外往里的情形相同(见图4-12),从53号柱面出发,然后是65、67、98、122、124、183。
到了183号柱面并完成其I/O请求的处理后,由于再往里已经没有I/O请求了,故移动臂不做任何工作立即返回到0号柱面,再开始对14号柱面以及17号柱面I/O请求进行处理。
根据这一调度顺序,磁头总共滑过了350个磁道的距离。
6.4.3旋转调度
•移臂调度后,可能会有多个访问者访问该柱面。
从效率上,应优先选择延迟时间最短的访问者,根据延迟时间来决定次序的调度称为旋转调度。
•
(1)若干请求者要访问同一磁头下的不同扇区;
•
(2)若干请求者要访问不同磁头下的不同扇区;
•(3)若干请求者要访问不同磁头下的具有相同编号的扇区;
•前两种旋转调度总是对先到达读写磁头位置下的扇区进行信息传送;第3种随机选择;
•例题:
P167。
•6.4.3信息的优化分布
•P168例题
6.5输入输出操作的实现
•6.5.1通道结构和通道程序
•1.通道结构:
通道的出现使计算机系统的性能得到提高;主存储器与外设的信息交换不再由中央处理器承担,而改由通道承担。
2.通道命令
•计算机硬件提供一组通道命令,没一条通道命令规定了设备的一种操作。
可以用若干条通道命令来规定通道执行一次输入输出操作应作的工作。
若干条通道命令就组成了一个通道程序。
通道命令的格式如下:
•命令码(0~7):
规定了操作
•数据主存地址(8~31):
主存起始地址
•标志码(32~39):
表明是否有后续命令
•传送字节个数(40~63):
3、通道地址字
4、通道状态字
6.5.2外围设备的启动
•1、准备阶段
•2、启动I/O阶段
•3、结束处理阶段
6.5.3I/O中断事件的处理
•1、操作正常结束
•2、操作异常结束
•6.6缓冲技术
•1.引入缓冲技术的原因
①缓冲技术可以显著提高CPU、通道、I/O设备之间的并行操作程度。
通道技术、中断概念的引入提供了CPU、通道和I/O设备之间并行操作的可行性;缓冲的引入,可以减少占用通道的时间,从而缓和并行的瓶颈现象。
②缓冲技术可以改善CPU和I/O设备之间速度不匹配的情况。
③缓冲技术可以减少I/O对CPU的中断次数,放宽CPU对中断响应的时间要求。
•2.缓冲的分类
•⑴硬件缓冲
是以专用的寄存器作为缓冲器;由于经济上考虑,除了最必要的地方采用少量的硬件缓冲器外,大都采用软件技术来实现缓冲。
•⑵软件缓冲
在操作系统的管理下,在内存中划分出若干个单元作为缓冲区;软件缓冲的好处是易于改变缓冲区的大小和数量,缺点是占据了一部分内存空间。
根据系统设置缓冲区的个数,可以分为单缓冲、双缓冲、多缓冲以及缓冲池等四种。
①单缓冲:
只为设备设置一个缓冲区的情形称为“单缓冲”。
如图(a)是单缓冲的工作示意,它表示产生数据者(即生产者)不是把数据直接送给接收数据者(即接收者),而是把数据送入到所设置的缓冲区中。
接收数据者总是从缓冲区中去取所需要的数据。
②双缓冲:
为I/O设备设置两个缓冲区,就称为“双缓冲”。
如图(b)是双缓冲的工作示意,它表示产生数据的生产者总是先把产生的数据送入缓冲区1中,下一次把产生的数据送入缓冲区2中;接收者总是先从缓冲区1中取数据,再从缓冲区2中取数据。
所以,整个I/O的路线是先1后2,并且交替进行。
。
③多缓冲:
系统为同类型的I/O设备设置两个公共缓冲队列,一个专门用于输入,一个专门用于输出,这就是“多缓冲”。
当输入设备进行输入时,就到输入缓冲首指针所指的缓冲区队列里申请一个缓冲区使用,使用完毕后仍归还到该队列;当输出设备进行输出时,就到输出缓冲首指针所指的缓冲区队列中申请一个缓冲区使用,使用完毕后仍归还到该队列。
④缓冲池:
系统为同类型的I/O设备设置一个公共缓冲队列,既用于输入,也用于输出。
它是多缓冲的一种变异,以避免缓冲区使用上忙闲不均的现象。
于是,在缓冲池中有3类缓冲区,一类现在用于输入;一类现在用于输出;还有一类为空闲,既可用于输入,也可用于输出。
无论现在用于输入的还是用于输出的,它们在用完后,都归还到空闲的缓冲区队列中,受系统的统一管理和调配。
•㈢虚拟设备和SPOOLing系统
•引入虚拟设备的目的是为了将慢速的独占设备改造成多个用户共享的设备,以提高设备的利用率,用共享设备模拟独占设备的动作,使独占型设备成为共享设备。
实现这一功能的技术称为SOOPLing技术。
•⑴虚拟设备
•利用大容量的共享设备¡ª¡ª磁盘作为后援,用软件技术来模拟独享设备的工作,使得每个用户都认为获得了供自己独占使用的输入设备或输出设备,并且它们的传输速度与磁盘一样快。
•但这仅仅是一种¡°幻觉¡±,系统中并不存在多个独享设备。
这种用一类物理设备模拟出的另一类物理设备,被称为¡°虚拟设备¡±。
•⑵SOOPLing系统
•把操作系统中实现虚拟设备的软件功能模块统称为¡°SPOOL系统¡±。
为了实现虚拟设备,要在磁盘上划分出两块存储空间,一块用来预先存放多个作业的全部信息,这块存储空间被称为¡°输入井¡±;另一块用来暂时存放每个运行作业的输出信息,这块存储空间被称为¡°输出井¡±,
•SPOOLing系统的组成说明
•
(1)输入井和输出井:
•这是在磁盘上开辟出来的两个专用的存储区域。
•输入井和输出井分别用于收容从输入设备输入的数据和用户程序的输出数据。
•“井”是用作缓冲的存储区域,采用井的技术能调节供求之间的矛盾,消除人工干预带来的损失。
这时的输入井和输出井可分别看作是对读卡机和打印机的虚拟或者模拟。
•
(2)输入缓冲区和输出缓冲区:
•这是供信息在I/O设备和磁盘I/O井之间传送时用的内存缓冲区。
•SOOPLing系统中实现虚拟设备的软件功能模块由三部分组成:
•1.预输入程序
•2.缓输出程序
•3.井管理程序
•①预输入程序
•预输入程序的任务是预先把作业的全部信息输入到磁盘的输入井中存放,以便在需要作业信息以及作业运行过程中需要数据时,都可以从输入井中直接得到,而无须与输入机交往,避免了等待使用输入机的情况发生。
•②缓输出程序
缓输出程序总是定期查看“输出井”中是否有等待输出的作业信息。
如果有,就启动输出设备(比如打印机)进行输出。
因此,由于作业的输出信息都暂时存放在输出井中,输出设备有空就去输出,不会出现作业因为等待输出而阻塞。
•③井管理程序
井管理程序分为“井管理读程序”和“井管理写程序”。
当请求输入设备工作时,操作系统就调用井管理读程序,它把让输入设备工作的任务,转换成从输入井中读取所需要的信息;当作业请求打印输出时,操作系统就调用井管理写程序,它把让输出设备工作的任务,转换成为往输出井里输出。
•SPOOLing应用举例——打印机的SPOOLing进程
假若进程打开了打印机特殊文件后几小时内无所事事,则其他进程什么都打印不了!
解决方案:
•创建值班进程、SPOOLing打印目录
•进程首先生成要打印的文件,放入SPOOLing目录
•值班进程:
唯一获准使用打印机特殊文件的进程,
负责在打印机空闲时打印SPOOLing目录
里的文件。
•通过禁止用户对特殊文件的直接使用,解决了上述打印机空占问题,提高了其使用效率。
•⑶虚拟程序的特点:
•①用户进程并未真正分得打印机,即打印机并未被某个进程所独占。
•②用户进城时间被分给的不是打印设备,而是共享设备中的一个存储区或文件,即虚拟设备,实际的打印机由SPOOLing系统调度,依次按某一策略逐个地打印存储区中的数据。
•③由于实际打印由SPOOLing系统调度,依次完成,这样打印机的效率提高了,从而整个系统的效率也提高了。
•设备分配程序
•设备分配的功能是当进程向系统提出I/O请求后,设备分配程序按照一定的策略把所要求的设备分配给它。
•⒈设备分配中的数据结构
•操作系统建立了一些表,来记录对I/O设备所控制的所需要的信息,它们是设备管理程序实现管理功能的数据结构。
其中基本表有:
系统设备表、设备控制表、控制器表和通道表。
•⑴系统设备表
•它记录了系统中所有的全部I/O设备,每一个设备由一个表目,每个表目又包括若干项。
其中,系统设备表包括:
设备类型、设备标识符、进程标识符、设备接口模块标识符等。
•⑵设备控制表
•⑶控制器表
•⑷通道表
•2.设备分配原则
•①设备分配中的安全性
•②与设备的无关性
•3.设备分配流程
6.8UNIX的设备管理
•一、UNIX的设备管理和设备文件
•1、块设备和字符设备
•UNIX系统按设备与主存之间交换的物理单位来对设备进行分类:
块设备和字符设备
•2、设备文件
•系统把设备也当成文件来对待。
6.8.2UNIX的块设备缓冲技术
•1、缓冲区控制块
•2、缓冲区队列
•3、缓冲区对了的管理
•4、缓冲区的检索
本章小结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自考 操作系统第6章 设备管理11 操作系统 设备管理 11