《[精选]基本设备管理.pptx》由会员分享,可在线阅读,更多相关《[精选]基本设备管理.pptx(105页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、操作系统设备管理操作系统设备管理2设备管理功能设备管理功能设备管理:设备管理:I/O管理,负责管理设备和控制管理,负责管理设备和控制I/O传输传输操作操作功能:功能:1设备分配与回收设备分配与回收2设备控制设备控制3设备状态跟踪设备状态跟踪3设备分类设备分类按传输速率分:按传输速率分:低速设备(几个字节低速设备(几个字节-数百个字节数百个字节/秒)秒)键盘、鼠标等键盘、鼠标等中速设备(数千个字节中速设备(数千个字节-数万个字节数万个字节/秒)秒)打印机等打印机等高速设备高速设备磁盘磁盘光盘机等光盘机等4按设备的使用特性按设备的使用特性存储设备存储设备输入输入/输出设备输出设备5按信息交换的单位
2、分:按信息交换的单位分:块设备(数据的存取以数据块为单位)块设备(数据的存取以数据块为单位)磁盘磁盘块设备在输入输出时常采用块设备在输入输出时常采用DMA方式方式字符设备(数据的存取以字符为单位)字符设备(数据的存取以字符为单位)键盘键盘打印机等打印机等字符设备在输入输出时常采用中断方式字符设备在输入输出时常采用中断方式6按设备的共享属性:按设备的共享属性:独占设备独占设备临界资源临界资源共享设备共享设备磁盘磁盘虚拟设备虚拟设备将一台设备变换为若干台逻辑设备将一台设备变换为若干台逻辑设备虚拟光驱、虚拟网卡虚拟光驱、虚拟网卡7设备控制器设备控制器(1)设备并非直接与设备并非直接与CPU通信,之间
3、经通信,之间经过设备控制器过设备控制器(2)设备与设备控制器之间的连接:设备与设备控制器之间的连接:数据信号线:传送数据信号数据信号线:传送数据信号(中间缓冲区)(中间缓冲区)状态信号线:传送设备当前状态状态信号线:传送设备当前状态控制信号线:规定了设备将要执的控制信号线:规定了设备将要执的动作动作输出:输出:先到缓冲,再到转换器先到缓冲,再到转换器(信信号号/数据数据)输入:输入:先到转换器,再到缓冲先到转换器,再到缓冲控制信号:控制信号:读操作,写操作,磁读操作,写操作,磁头移动等头移动等状态:状态:正在读或写,读写完成等正在读或写,读写完成等8设备控制器功能设备控制器功能控制一个或多个控
4、制一个或多个I/O设备,以实现设备,以实现I/O设备和计算机之间的数据交换。设备和计算机之间的数据交换。功能:功能:接收和识别命令接收和识别命令-cpu可向设备控制器发送多种指令,设备控制器能识别可向设备控制器发送多种指令,设备控制器能识别接收这些指令,如:磁盘读写等。接收这些指令,如:磁盘读写等。数据交换数据交换-实现实现cpu与控制器之间、控制器与设备之间的数据交换。与控制器之间、控制器与设备之间的数据交换。标识和报告设备状态标识和报告设备状态记下设备状态供记下设备状态供cpu了解。例如:只有当设备处于发了解。例如:只有当设备处于发送就绪状态时,送就绪状态时,cpu才能启动控制器从设备中读
5、取数据。才能启动控制器从设备中读取数据。地址识别地址识别每个设备都有一个地址,控制器能够识别它所控制的每个设备每个设备都有一个地址,控制器能够识别它所控制的每个设备的地址。的地址。数据缓冲数据缓冲I/o设备的低速与设备的低速与cpu高速之间的缓冲。高速之间的缓冲。9设备控制器的组成 10三部分组成:三部分组成:1、设备控制器与处理器的接口、设备控制器与处理器的接口三类信号线:数据线、地址线、控制线三类信号线:数据线、地址线、控制线两类寄存器:数据寄存器、控制两类寄存器:数据寄存器、控制状态寄存器状态寄存器2、设备控制器与设备的接口、设备控制器与设备的接口一个控制器可接多个设备,一个接口接一个设
6、备一个控制器可接多个设备,一个接口接一个设备3、IO逻辑逻辑实现对设备的控制,实现对设备的控制,CPU启动设备过程:发送控制命令和地址给控制启动设备过程:发送控制命令和地址给控制器,器,IO逻辑接收命令并译码逻辑接收命令并译码 I/O控制方式控制方式 程序程序I/O方式方式-忙则等待方式忙则等待方式 利用利用I/O测试指令测试设备的忙闲,若设备忙则继续测试指令测试设备的忙闲,若设备忙则继续测试,不忙则进行输入输出测试,不忙则进行输入输出 在程序I/O方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。在
7、该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。1112 中断驱动中断驱动I/O控制方式控制方式 当启动当启动I/O设备时,设备时,CPU向设备控制器发出向设备控制器发出I/O指令,指令,然后返回执行原来指令。由设备控制器控制设备,当设备然后返回执行原来指令。由设备控制器控制设备,当设备完成完成I/O操作时,中断方式通知操作时,中断方式通知CPU处理。处理。在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理
8、。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。例例如如,从终端输入一个字符的时间约为100 ms,而将字符送入终端缓冲区的时间小于 0.1 ms。若采用程序I/O方式,CPU约有 99.9 ms的时间处于忙等待中。采用中断驱动方式后,CPU可利用这 99.9 ms的时间去做其它事情,而仅用 0.1 ms的时间来处理由控制器发来的中断请求。可见,中断驱动方式可以成百倍地提高CPU的利用率。1314 直接存储器访问直接存储器访问DMA I/O控制方式控制方式 1.DMA(Direct Memory Access)控制方式的引入控制方式的引入 中断传输仍是
9、以字为单位的,即传输完一个字后进行一次中断。中断传输仍是以字为单位的,即传输完一个字后进行一次中断。不利于操作大量数据。为了进一步减少不利于操作大量数据。为了进一步减少CPU的干预,引入了直接存储器的干预,引入了直接存储器访问方式。访问方式。数据传输的基本单位是数据传输的基本单位是数据块数据块;所传送的数据是从设备所传送的数据是从设备直接送入内存直接送入内存的,或者相反;的,或者相反;仅在传送一个或多个仅在传送一个或多个数据块数据块的开始和结束时,才需的开始和结束时,才需CPU干预,干预,整块数据的传送是在整块数据的传送是在控制器控制器的控制下完成的。的控制下完成的。可见,可见,DMA方式成百
10、倍地减少了方式成百倍地减少了CPU对对I/O的干预。的干预。152.DMA控制器的组成控制器的组成 DMA控制器的组成 16 为了实现在主机与控制器之间成块数据的直接交换,必须在DMA控制器中设置如下四类寄存器:(1)命令/状态寄存器CR。用于接收从CPU发来的I/O命令或有关控制信息,或设备的状态。(2)内存地址寄存器MAR。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。(3)数据寄存器DR。用于暂存从设备到内存,或从内存到设备的数据。(4)数据计数器DC。存放本次CPU要读或写的字(节)数。173.DMA工作过程工作过程 1819 I/O通
11、道控制方式通道控制方式 1.I/O通道通道控制方式的引入控制方式的引入 I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务。202.通道程序通道程序(1)操作码。(2)内存地址。(
12、3)计数。(4)通道程序结束位P。(5)记录结束标志R。212223I/O通道1.I/O通道通道(I/OChannel)设备的引入设备的引入实际上,实际上,I/O通道是一个用来控制外部设备的硬件机制,是一种特殊通道是一个用来控制外部设备的硬件机制,是一种特殊的处理机。它具有执行的处理机。它具有执行I/O指令的能力,并通过执行通道指令的能力,并通过执行通道(I/O)程序来程序来控制控制I/O操作。操作。IO通道的目的使原来由通道的目的使原来由CPU执行的执行的IO任务承担下来任务承担下来但但I/O通道又与一般的处理机不同,主要表现在以下两个方面:通道又与一般的处理机不同,主要表现在以下两个方面:
13、一是其指令类型单一,这是由于通道硬件比较简单,一是其指令类型单一,这是由于通道硬件比较简单,其所能执行的其所能执行的命令,主要局限于与命令,主要局限于与I/O操作有关的指令;操作有关的指令;再就是通道没有自己的内存,通道所执行的通道程序是放在主机的再就是通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的,内存中的,换言之,是通道与换言之,是通道与CPU共享内存。共享内存。2.通道类型通道类型 1)字节多路通道(Byte Multiplexer Channel)字节多路通道不适于连接高速设备242)数组选择通道数组选择通道(Block Selector Channel)可以连接多台高速
14、设备可以连接多台高速设备只只含含有有一一个个分分配配型型子子通通道道,在在一一段段时时间间内内只只能能控控制制一一台台设设备进行数据传送,并备进行数据传送,并独占独占该通道。该通道。这种通道的利用率很低。这种通道的利用率很低。25 3)数组多路通道数组多路通道(Block Multiplexer Channel)数组多路通道是以上二种通道数组多路通道是以上二种通道结合结合而形成的一种新通道而形成的一种新通道数据传送是按数据传送是按数组方式数组方式进行进行有有多个多个非分配型非分配型子通道子通道,数据传输速率很高,通道利用率也高数据传输速率很高,通道利用率也高广泛地用于连接多台广泛地用于连接多台
15、高、中高、中速的外围设备速的外围设备263.“瓶颈瓶颈”问题问题 2728 缓缓 冲冲 管管 理理 缓冲的引入缓冲的引入(1)缓和CPU与I/O设备间速度不匹配的矛盾。(2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。(3)提高CPU和I/O设备之间的并行性。29图 5-10 利用缓冲寄存器实现缓冲 30单缓冲和双缓冲单缓冲和双缓冲 1.单缓冲单缓冲(Single Buffer)312.双缓冲双缓冲(Double Buffer)32 33 循环缓冲循环缓冲 1.循环缓冲的组成循环缓冲的组成 342.循环缓冲区的使用循环缓冲区的使用(1)Get过程。(2)Release过程。353.
16、进程同步进程同步(1)Next指针追赶上Next指针。输入进程速度大于输出进程(2)Next指针追赶上Nexti指针。输出进程速度大于输入进程 36 缓冲池缓冲池(Buffer Pool)1.缓冲池的组成缓冲池的组成 对于既可用于输入又可用于输出的公用缓冲池,其中至少应含有以下三种类型的缓冲区:空(闲)缓冲区;装满输入数据的缓冲区;装满输出数据的缓冲区。为了管理上的方便,可将相同类型的缓冲区链成一个队列,于是可形成以下三个队列:(1)空缓冲队列em。(2)输入队列inq。(3)输出队列outq。372.Getbuf过程和过程和Putbuf过程过程 Procedure Getbuf(type)b
17、egin Wait(RS(type);Wait(MS(type);B(number)=Takebuf(type);Signal(MS(type);end Procedure Putbuf(type,number)begin Wait(MS(type);Addbuf(type,number);Signal(MS(type);Signal(RS(type);end 383.缓冲区的工作方式缓冲区的工作方式 1、收容输入:输入进程需要输入数据时,、收容输入:输入进程需要输入数据时,调用调用Getbuf(emq)在在emq中摘下中摘下一空区,作为收容输入缓冲区一空区,作为收容输入缓冲区hin,并装满数
18、据,再调用并装满数据,再调用Putbuf(inq,hin),将将缓冲区挂到缓冲区挂到inq中。中。2、提取输入:、提取输入:输入进程需要输入数据时,输入进程需要输入数据时,调用调用Getbuf(inq)从从inq摘一区,摘一区,作为提取输入缓冲区作为提取输入缓冲区sin,计算进程从中计算进程从中提取数据。计算进程数据数据用完提取数据。计算进程数据数据用完后,后,再调用再调用Putbuf(emq,sin),将缓冲区挂到将缓冲区挂到emq。393、收容输出:收容输出:当计算进程需要输出时,调用当计算进程需要输出时,调用Getbuf(emq)从从emq中摘一区,作为收容输出缓冲区中摘一区,作为收容输
19、出缓冲区hout.当装满输出数据,又调用当装满输出数据,又调用Putbuf(outq,hout),将缓冲区挂在将缓冲区挂在outq。4、提取输出:提取输出:由输出进程调用由输出进程调用Getbuf(outq)从从out中摘一满区,作中摘一满区,作为提取输出缓冲区为提取输出缓冲区sout提取数据。数据提取完后,调用提取数据。数据提取完后,调用Putbuf(emq,sout),并挂入并挂入emq。40设备分配(1)先来先服务。先来先服务。(2)优先级高者优先。优先级高者优先。4142设备独立性设备独立性设备独立性设备独立性引入逻辑设备和物理设备两个概念。引入逻辑设备和物理设备两个概念。在应用程序中
20、使用逻辑设备名来请求使用某类设备,而系在应用程序中使用逻辑设备名来请求使用某类设备,而系统在实际执行时,还需物理设备名。统在实际执行时,还需物理设备名。系统需要具有将逻辑设备名转换为物理设备名的功能。系统需要具有将逻辑设备名转换为物理设备名的功能。43 例如:系统拥有例如:系统拥有A、B两台卡片输入机,现有作业两台卡片输入机,现有作业J2申请一申请一台卡片输入机,如果它指定使用台卡片输入机,如果它指定使用A,那么作业,那么作业J1已经占用已经占用A或者设备或者设备A坏了,虽然系统还有同类设备坏了,虽然系统还有同类设备B是好的且未被是好的且未被占用,但也不能接受作业占用,但也不能接受作业J2,显
21、然这样做很不合理。,显然这样做很不合理。为了解决这一问题,通常用户不指定特定的设备,而指为了解决这一问题,通常用户不指定特定的设备,而指定逻辑设备,使得用户作业和物理设备独立开来,再通过定逻辑设备,使得用户作业和物理设备独立开来,再通过其它途径建立逻辑设备和物理设备之间的对应关系,我们其它途径建立逻辑设备和物理设备之间的对应关系,我们称这种特性为称这种特性为“设备独立性设备独立性”。设备管理的功能之一就是。设备管理的功能之一就是把逻辑设备名转换成物理设备名把逻辑设备名转换成物理设备名44优点优点:设备分配时的灵活性设备分配时的灵活性45逻辑设备名到物理设备名的映逻辑设备名到物理设备名的映射射逻
22、辑设备表:逻辑设备表:逻辑设备名逻辑设备名物理设备名物理设备名设备驱动程序入口设备驱动程序入口46SPOOLING技术技术回顾:操作系统的回顾:操作系统的4个特性之虚拟性。个特性之虚拟性。将一个物理设备虚拟成多个逻辑设备,从而可实现多个用将一个物理设备虚拟成多个逻辑设备,从而可实现多个用户的共享户的共享-解决方法:解决方法:SPooling技术技术47SPOOLING技术技术为了缓和为了缓和CPU的高速性与的高速性与I/O设备低速性间的矛盾而引入了设备低速性间的矛盾而引入了脱机输入、脱机输出技术。脱机输入、脱机输出技术。目标:目标:CPU与外围设备操作同时进行(并行)与外围设备操作同时进行(并
23、行)一道程序模拟脱机输入时的外围控制机功能,将低速一道程序模拟脱机输入时的外围控制机功能,将低速I/O设备上的数据传送到高速磁盘上,或者一道程序模拟脱机设备上的数据传送到高速磁盘上,或者一道程序模拟脱机输出时的外围控制机功能,把数据从高速磁盘传送到低速输出时的外围控制机功能,把数据从高速磁盘传送到低速I/O设备上。设备上。48设备分配设备分配虚拟设备分配策略虚拟设备分配策略SPOOLING技术技术:联机情况下实现的同时外围操作称为:联机情况下实现的同时外围操作称为SPOOLING技术技术。可将。可将一个独占设备虚拟成多台设备。一个独占设备虚拟成多台设备。共享打印机为例说明:共享打印机为例说明:
24、把对独占设备的访问转为对共享设备把对独占设备的访问转为对共享设备的访问,实现独占设备的的访问,实现独占设备的“同时共享同时共享”49输入井、输出井:用于暂存输入井、输出井:用于暂存I/O设备输入的数据和用户输出的数据。设备输入的数据和用户输出的数据。输入缓冲区、输出缓冲区:暂存由输入设备送来的数据,以后传送到输入缓冲区、输出缓冲区:暂存由输入设备送来的数据,以后传送到输入井;暂存由输出井送来的数据,以后传送给输出设备。输入井;暂存由输出井送来的数据,以后传送给输出设备。输入进程、输出进程:将用户要求的数据从输入机通过输入缓冲区再输入进程、输出进程:将用户要求的数据从输入机通过输入缓冲区再送到输
25、入井,当送到输入井,当CPU需要输入数据时,直接从输入井中读入内存;输需要输入数据时,直接从输入井中读入内存;输出进程当用户要求输出数据时,先从内存送到输出井,待输出设备空出进程当用户要求输出数据时,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。50SPooling技术如何使一台打印机虚拟成多台打印机?技术如何使一台打印机虚拟成多台打印机?打印机属于独享设备打印机属于独享设备。用用SPOOLing技术转换为虚拟成多台打印机技术转换为虚拟成多台打印机当用户进程请求打印时,当用户进程请求打印时,SPOOL
26、ing系统同意为它打印输出,但并不系统同意为它打印输出,但并不真正立即把打印机分配给该进程,而是作如下事情:真正立即把打印机分配给该进程,而是作如下事情:(1)由输出进程在输出井中申请一块空闲磁盘块,并将打印数据送入)由输出进程在输出井中申请一块空闲磁盘块,并将打印数据送入其中其中(2)输出进程再为用户进程申请一张空白的用户请求打印表,并将用)输出进程再为用户进程申请一张空白的用户请求打印表,并将用户打印要求填入其中,将该表挂到请求打印队列户打印要求填入其中,将该表挂到请求打印队列(3)若打印机空闲,输出进程将从请求打印队列的队首取出一张打印请若打印机空闲,输出进程将从请求打印队列的队首取出一
27、张打印请求表,根据要求打印数据,从输出井传送到内存缓冲区,再由打印机求表,根据要求打印数据,从输出井传送到内存缓冲区,再由打印机进行打印。进行打印。51磁盘存储器管理磁盘存储器管理磁盘存储器管理磁盘存储器管理几乎所有计算机都使用磁盘来存储信息。从存储角度,几乎所有计算机都使用磁盘来存储信息。从存储角度,与内存比较起来,磁盘有三个主要的优点:与内存比较起来,磁盘有三个主要的优点:(1)可用的存储容量非常大)可用的存储容量非常大(2)每位的价格非常低)每位的价格非常低(3)电源关掉后信息不会丢失)电源关掉后信息不会丢失52磁盘性能简述磁盘性能简述1.数据的组织和格式数据的组织和格式 实际的硬盘都组
28、织成多个盘片,每片分两面,每面分成若干条磁道,实际的硬盘都组织成多个盘片,每片分两面,每面分成若干条磁道,磁道间有间隙磁道间有间隙 磁道又被分成许多扇区,每条磁道上扇区数目典型为磁道又被分成许多扇区,每条磁道上扇区数目典型为10至至100,每个,每个扇区包含相同的字节数,相当于一个盘块扇区包含相同的字节数,相当于一个盘块53主要组成主要组成 硬盘(温硬)基本基础知识硬盘(温硬)基本基础知识主轴主轴(5400/7200/10000转每转每 盘片盘片 移动臂移动臂/磁头臂磁头臂 磁头磁头54硬盘府视图硬盘府视图55用磁道号、磁头号和扇区号来标识一个扇区用磁道号、磁头号和扇区号来标识一个扇区56磁盘
29、类型磁盘类型 固定头磁盘固定头磁盘:提高并行读提高并行读写能力,主要用于大容量写能力,主要用于大容量磁盘。每条磁道都有一个磁盘。每条磁道都有一个磁头。磁头。移动头磁盘:寻道功能,移动头磁盘:寻道功能,结构简单,速度慢,每个结构简单,速度慢,每个盘面仅有一个磁头盘面仅有一个磁头57磁盘访问时间磁盘访问时间 寻道时间寻道时间Ts:是指把磁头移动到指定磁道上所经历底时间,是启动磁:是指把磁头移动到指定磁道上所经历底时间,是启动磁臂的时间臂的时间S与磁头移动与磁头移动N条磁道所花费的时间之和条磁道所花费的时间之和 旋转延迟时间旋转延迟时间T:是指指定扇区移动到磁头下面所经历的时间:是指指定扇区移动到磁
30、头下面所经历的时间,平均平均T为为50100ms 传输时间传输时间Tt:是指向磁盘写入数据所经历的时间:是指向磁盘写入数据所经历的时间,与每次读与每次读/写的字节写的字节数数b和旋转速度有关和旋转速度有关58磁盘调度磁盘调度-当多个进程需要访问磁盘时当多个进程需要访问磁盘时磁盘调度的目标是使磁盘的平均寻道时间最少,以使进程磁盘调度的目标是使磁盘的平均寻道时间最少,以使进程对磁盘的平均访问时间最小,目前常使用的有先来先服务,对磁盘的平均访问时间最小,目前常使用的有先来先服务,最短寻道时间优先及扫描算法等最短寻道时间优先及扫描算法等591.先来先服务寻道算法先来先服务寻道算法FCFS(First-
31、come,First-served)一种最简单的磁盘调度算法。一种最简单的磁盘调度算法。它根据进程请求访问磁盘的它根据进程请求访问磁盘的先先后次序后次序进行调度。进行调度。602.最短寻道时间优先算法最短寻道时间优先算法SSTF该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道,该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道,距离最短,以使每次的寻道时间最短,但这种调度算法却不能保证平距离最短,以使每次的寻道时间最短,但这种调度算法却不能保证平均寻道时间最短均寻道时间最短会可能导致某个进程发生会可能导致某个进程发生“饥饿饥饿”的现象,因为只要有新进程的请求的现象,因为只要有
32、新进程的请求到达,其所要访问的磁道与当前所在磁道的距离较近,其到达,其所要访问的磁道与当前所在磁道的距离较近,其I/O请求必请求必优先满足优先满足61623、扫描算法、扫描算法SCAN为了避免为了避免“饥饿饥饿”现象,对现象,对SSTF算法略加修改形成扫描算法,该方法算法略加修改形成扫描算法,该方法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。这种算法中磁头移动的规律颇似电梯的运行,又称电梯调前移动方向。这种算法中磁头移动的规律颇似电梯的运行,又称电梯调度算法。度算法。磁臂由磁盘的一端开始,移动到磁盘的另
33、一端,在移动过程中,磁臂由磁盘的一端开始,移动到磁盘的另一端,在移动过程中,为访问请求服务。然后调转方向,从此端移动到另一端。为访问请求服务。然后调转方向,从此端移动到另一端。634.循环扫描循环扫描CSCAN(CircularSCAN)为了减少为了减少SCAN算法造成的某些进程的请求被严重推迟,算法造成的某些进程的请求被严重推迟,CSCAN算法规定磁头单向移动。算法规定磁头单向移动。当磁头移到最外的磁道并访问后,磁头立即返回到最里的当磁头移到最外的磁道并访问后,磁头立即返回到最里的欲访问磁道,即将最小磁道号紧接着最大磁道号构成循环,欲访问磁道,即将最小磁道号紧接着最大磁道号构成循环,进行循环
34、扫描进行循环扫描6465假设磁盘访问序列:假设磁盘访问序列:9818337122141246567读写头起始位置:读写头起始位置:53.求:磁头服务序列和磁头移动总距离。求:磁头服务序列和磁头移动总距离。FCFSSSTFSCANCSCAN66先来先服务(先来先服务(640)67最早寻道时间优先最早寻道时间优先68设备驱动程序设备驱动程序设备和驱动程序的分类设备和驱动程序的分类设备开关表设备开关表设备驱动程序的框架设备驱动程序的框架69设备管理设备管理Linux设备的分类设备的分类字符设备字符设备块设备块设备网络设备网络设备70设备管理设备管理字符设备字符设备以字符为单位输入输出数据的设备,并且
35、以字符为单位对以字符为单位输入输出数据的设备,并且以字符为单位对设备中的信息进行组织和处理。显示器、键盘等设备中的信息进行组织和处理。显示器、键盘等块设备块设备以一定大小的数据块为单位输入输出数据,并且设备中的以一定大小的数据块为单位输入输出数据,并且设备中的数据也是以物理块为单位进行组织和管理的。硬盘、软盘、数据也是以物理块为单位进行组织和管理的。硬盘、软盘、光盘等。光盘等。71设备管理设备管理网络设备网络设备通过网络与外部近程或远程计算机进行通信的设备。通过网络与外部近程或远程计算机进行通信的设备。72设备管理设备管理设备文件设备文件Linux设备管理的特点设备管理的特点物理设备抽像化,把
36、物理设备看成文件,采用文件系统的接口和系统物理设备抽像化,把物理设备看成文件,采用文件系统的接口和系统调用来管理和控制设备。调用来管理和控制设备。设备读:从设备向内存输入数据设备读:从设备向内存输入数据设备写:数据从内存输出到设备设备写:数据从内存输出到设备Linux设备就是一种特殊文件,称为设备文件设备就是一种特殊文件,称为设备文件73设备管理设备管理Linux的设备文件一般置于的设备文件一般置于/dev目录下目录下设备文件名由两个部分组成,第一部分设备文件名由两个部分组成,第一部分23个字符,表示个字符,表示设备的种类;第二部分通常是字母或数字,区分同种设备设备的种类;第二部分通常是字母或
37、数字,区分同种设备中的单个设备中的单个设备74IDE的设备是以的设备是以hd命名命名,第一个第一个ide设备是设备是hda,第二个是,第二个是hdb.SCSI接口设备是用接口设备是用sd命名命名Ex:例如例如hda1代表代表hda这个硬盘设备上的第一个分区。每个硬盘可以最多这个硬盘设备上的第一个分区。每个硬盘可以最多有四个主分区,因此有四个主分区,因此1-4命名硬盘的主分区。逻辑分区是从命名硬盘的主分区。逻辑分区是从5开始的,开始的,每多一个分区,数字加每多一个分区,数字加1就可以。就可以。7576设备管理设备管理77设备管理设备管理ls l/dev78设备文件设备文件inode79设备管理设
38、备管理设备文件与与普通文件的差异设备文件与与普通文件的差异设备文件没有象普通文件那样的文件实体,不在外存占据数据块来存设备文件没有象普通文件那样的文件实体,不在外存占据数据块来存放数据放数据进程访问普通文件是读写磁盘分区中的数据,访问设备文件是对硬件进程访问普通文件是读写磁盘分区中的数据,访问设备文件是对硬件设备进行读写,完成设备与内存之间的数据传送设备进行读写,完成设备与内存之间的数据传送80设备管理设备管理Linux设备的识别设备的识别Linux内核对设备的识别是通过内核对设备的识别是通过设备类型设备类型+设备号设备号(主、次设备号主、次设备号)设备类型指字符设备还是块设备设备类型指字符设
39、备还是块设备设备号是系统内部识别设备的标识设备号是系统内部识别设备的标识使用同一个驱动程序的每种设备有一个唯一的主设备号使用同一个驱动程序的每种设备有一个唯一的主设备号除主设备号外还使用次设备号来区分同种设备中的各个具体设备除主设备号外还使用次设备号来区分同种设备中的各个具体设备81设备管理设备管理对于设备来说,只要它们使用得驱动程序一样,那么它们对于设备来说,只要它们使用得驱动程序一样,那么它们的主设备号就是一样的,次设备号来区分使用同一个驱动的主设备号就是一样的,次设备号来区分使用同一个驱动程序的个体设备。程序的个体设备。主次设备号值都是从主次设备号值都是从025582驱动是什么?驱动是什
40、么?驱动与系统和应用程序之间有何关系?驱动与系统和应用程序之间有何关系?83引引 例例fd=open(/dev/v4l/video0,O_WRONLY)read(fd,buf,number);问题:问题:/dev/v4l/video0?read从哪读?从哪读?84设备管理设备管理设备驱动程序与设备注册设备驱动程序与设备注册85设备管理设备管理设备驱动程序设备驱动程序控制设备的硬件完成指定的控制设备的硬件完成指定的I/O操作,设备驱动程序直接和硬件设备打操作,设备驱动程序直接和硬件设备打交道。交道。设备驱动程序包括对设备的各种操作,在操作系统的控制下,设备驱动程序包括对设备的各种操作,在操作系统
41、的控制下,cpu通过执行驱动程序来实现对设备底层硬件设备的处理和操作。通过执行驱动程序来实现对设备底层硬件设备的处理和操作。Linux设备驱动程序的主要功能是:设备驱动程序的主要功能是:对设备进行初始化对设备进行初始化启动、停止设备的运行启动、停止设备的运行把设备上的数据传到内存把设备上的数据传到内存86设备管理设备管理把数据从内存传送到设备把数据从内存传送到设备检测设备状态检测设备状态驱动程序由内核统一管理,处于内核态驱动程序由内核统一管理,处于内核态87设备管理设备管理file_operations结构结构文件操作函数指针的集合,在设备管理中,该结构体各个文件操作函数指针的集合,在设备管理
42、中,该结构体各个成员项指向的操作函数就是设备驱动程序的各个操作例程。成员项指向的操作函数就是设备驱动程序的各个操作例程。编制设备驱动程序的工作就是使用汇编或编制设备驱动程序的工作就是使用汇编或c语言编写控制语言编写控制设备完成各种操作的例程,然后把这些操作例程的入口地设备完成各种操作的例程,然后把这些操作例程的入口地址赋予址赋予file_operations结构体的有关成员项即可。结构体的有关成员项即可。88structfile_operationstest_fops=read:read_test,write:write_test,open:open_test,release:release_
43、test,ioctl:ioctl_test;89设备管理设备管理设备注册设备注册设备的驱动程序是系统在启动时装载到系统中的。对于设备的驱动程序是系统在启动时装载到系统中的。对于“即装即用即装即用”设备,驱动程序作为程序模块可以随时加载到设备,驱动程序作为程序模块可以随时加载到系统中,驱动程序加载到系统中是通过设备注册实现的。系统中,驱动程序加载到系统中是通过设备注册实现的。设备注册表设备注册表字符设备注册表字符设备注册表块设备注册表块设备注册表90设备管理设备管理字符设备注册表定义:字符设备注册表定义:static struct device_struct chrdevsMAX_CHRDEV;
44、struct device_struct const char*name;struct file_operations*fops;91设备管理设备管理namefopslseekreadwritereaddirreadwrite字符设备注册表file_operations驱动程序92设备管理设备管理*:设备注册表的下标是某种设备的主设备号。使用主设备号设备注册表的下标是某种设备的主设备号。使用主设备号作为索引就可以从设备注册表得到这种设备的驱动程序。作为索引就可以从设备注册表得到这种设备的驱动程序。93设备管理设备管理设备注册函数设备注册函数设备注册的过程实际上是构建结构体设备注册的过程实际上是
45、构建结构体device_struct的过程:向设备注的过程:向设备注册表写入设备名,以及册表写入设备名,以及file_operations结构。结构。设备注册是通过系统调用实现的设备注册是通过系统调用实现的int register_chrdev(unsigned int major,const char*name,struct file_operations*fops)94if(major=0)write_lock(&chrdevs_lock);for(major=MAX_CHRDEV-1;major 0;major-)if(chrdevsmajor.fops=NULL)chrdevsmajo
46、r.name=name;chrdevsmajor.fops=fops;write_unlock(&chrdevs_lock);return major;write_unlock(&chrdevs_lock);return-EBUSY;95若若major=0,由系统自动分配一个主设备号给驱动程序由系统自动分配一个主设备号给驱动程序若若major!=0,major即为主设备号,但主设备号不能与系统中其它主即为主设备号,但主设备号不能与系统中其它主设备号冲突。设备号冲突。使用注册函数可以变更设备名或驱动程序使用注册函数可以变更设备名或驱动程序chrdevsmajor.name=name;chrdev
47、smajor.fops=fops;return 0;96设备注销:设备注销:当设备需要撤销时,可以使用注销函数从设备注册表中删除。当设备需要撤销时,可以使用注销函数从设备注册表中删除。int unregister_chrdev(unsigned int major,const char*name)97if(!chrdevsmajor.fops|strcmp(chrdevsmajor.name,name)return-EINVAL;chrdevsmajor.name=NULL;chrdevsmajor.fops=NULL;98设备驱动入口与出口设备驱动入口与出口module_init(funct
48、ion)module_exit(function)99intmodule_init(void)intresult;result=register_chrdev(253,test,&test_fops);if(result0)printk(KERN_INFOtest:cannotgetmajornumber!n);returnresult;return0;100voidmodule_exit(void)unregister_chrdev(253,test);101由于内核空间与用户空间的内存不能直接互访,因此借助函数由于内核空间与用户空间的内存不能直接互访,因此借助函数copy_to_user(
49、)完成用户空间到内核空间的复制,函数完成用户空间到内核空间的复制,函数copy_from_user()完成内核空完成内核空间到用户空间的复制。间到用户空间的复制。copy_to_user(void_user*to,constvoid*from,unsignedlongn)copy_to_user(void_user*to,constvoid*from,unsignedlongn)102try_module_get如果模块已经插入内核,则递增该模块引用如果模块已经插入内核,则递增该模块引用计数计数module_put(structmodule*module):减少模块使用计数。:减少模块使用计数
50、。这样,当设备在使用时,管理此设备的模块就不能被卸载;这样,当设备在使用时,管理此设备的模块就不能被卸载;只有设只有设备不再使用时模块才能被卸载。备不再使用时模块才能被卸载。103staticssize_tread_test(structfile*file,char*buf,size_tcount,loff_t*f_pos)copy_to_user(buf,drv_buf,count);returncount;104staticssize_twrite_test(structfile*file,char*buf,size_tcount,loff_t*f_pos)copy_from_user(d