操作系统的设备管理课件_第1页
操作系统的设备管理课件_第2页
操作系统的设备管理课件_第3页
操作系统的设备管理课件_第4页
操作系统的设备管理课件_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

操作系统的设备管理1操作系统的设备管理1目标和功能I/O管理是操作系统的主要功能之一,负责管理所有I/O设备。计算机系统中存在着大量的I/O设备,其性能和应用特点可能完全不同,所以要建立一个通用的、一致的设备访问接口,使用户和应用程序开发人员能够方便地使用I/O设备,而无须关心每种设备各自的特性。I/O管理是管理I/O设备,控制I/O操作2目标和功能I/O管理是操作系统的主要功能之一,负责管理所有I6.1I/O硬件组成6.2I/O软件的组成6.3设备分配6.4磁盘管理36.1I/O硬件组成36.1I/O硬件组成6.1.1I/O设备按信息交换的单位分类:块设备:把信息存储在固定大小的块中,每个块有自己的地址,可独立地读写。通常块的大小为512B~32KB。如磁盘、磁带、光盘和电子盘。字符设备:以字符为单位发送和接收字符流。是不可寻址的。键盘、鼠标、扫描器、打印机、绘图仪、网络接口等。时钟既不是块可寻址的,也不产生或接收字符流,只是按预先规定好的时间间隔产生中断。46.1I/O硬件组成6.1.1I/O设备时钟既I/O设备一般由机械和电子两部分组成。机械部分是设备本身。电子部分叫做设备控制器。设备控制器处于CPU和I/O设备之间,接收从CPU发来的命令,控制I/O设备工作。很多控制器可以连接两个、四个,甚至八个相同的设备。控制器与设备之间的接口是一个标准接口,符合国际标准。6.1.2设备控制器5I/O设备一般由机械和电子两部分组成。机械部分是设备本身。电接收OS的命令,控制设备实现指定的功能。每个控制器有几个寄存器,用来与CPU通信,即存放设备驱动程序向设备发送的命令和参数。控制寄存器:被主机用来向设备发送命令。状态寄存器:包含主机可读取的状态信息。数据缓冲寄存器每个寄存器被分配一个端口号。处理机通过I/O端口地址找到对应的I/O部件和设备寄存器,以实现对设备的控制和数据传输。控制器的作用6接收OS的命令,控制设备实现指定的功能。控制器的作用6控制器的作用除了几个寄存器外,许多设备控制器还有一个操作系统可以读写的数据缓冲区。如在屏幕上显示像素的常规方法是使用一个视频RAM,该RAM基本上只是一个数据缓冲区。磁盘控制器:从磁盘驱动器出来的是一连串的位流,控制器把串行的位流组装为字节,存入控制器内部的数据缓冲区中,形成以字节为单位的块。对块验证后,复制到主存。7控制器的作用除了几个寄存器外,许多设备控制器还有一个操作系统内存映射I/O单独的I/O和内存空间

INR0,4 MOVR0,4

前者读取I/O端口4的内容并将其存入R0,后者读取内存字4的内容并将其存入R0。内存I/O端口两个地址空间8内存映射I/O单独的I/O和内存空间内存I/O端口两个地址空内存映射I/O内存映射I/O:将所有设备控制器寄存器映射到内存空间。每个控制器寄存器被分配唯一的一个内存地址。通常分配给控制器寄存器的地址位于地址空间的顶端。优点:对内存的操作指令都可用于对I/O端口的操作,不需要专门的I/O指令。I/O设备驱动程序可以完全用C语言编写。如UNIX。内存一个地址空间9内存映射I/O内存映射I/O:将所有设备控制器寄存器映射到内内存映射I/O--混合方案内存映射I/O的数据缓冲区,控制器寄存器则具有单独的I/O端口。Pentium处理器使用的就是这一体系结构。内存I/O端口两个地址空间10内存映射I/O--混合方案内存映射I/O的数据缓冲区,内存I计算机系统对I/O设备的4种控制方式程序查询方式(轮询(polling))程序中断方式直接存储器访问(DMA)方式通道控制方式11计算机系统对I/O设备的4种控制方式程序查询方式(轮询(po程序查询方式向I/O控制器发读命令读I/O控制器的状态从I/O控制器中读入字节向存储器中写字节CPUI/OI/OCPU未就绪出错就绪I/OCPUCPU内存传送完成检查状态是,停止设备未完从外部设备读取一块数据到存储器,每次读几个字节的数据。CPU忙等串行工作12程序查询方式向I/O控制器发读命令读I/O控制器的状态从I/2.程序中断方式CPU/设备并行工作向设备控制器发写命令CPU转去执行其它程序将控制传递给中断服务例程无重试或故障终止中断服务例程检查本次传输是否有错传输有错?中断返回,继续执行被中断的进程CPU响应中断传输完成?无完CPU工作情况设备完成数据传输或出错,产生中断设备驱动程序启动设备工作I/O设备工作情况有132.程序中断方式CPU/设备向设备控制器发写命令CPU转支持大量数据传输的块设备,其控制器支持直接存储器存取(DMA,DirectMemoryAccess)。通常,CPU控制地址总线,进行与主存储器的数据交换。允许DMA控制器接管地址总线的控制权,直接控制与主存的数据交换。3.直接存储器访问(DMA)14支持大量数据传输的块设备,其控制器支持直接存储器存取(DMA整块数据的传输是在控制器的控制下完成的。仅在开始和结束时才需CPU干预。向磁盘O控制器发读块命令读DMA控制器的状态下条指令CPUDMACPU做其它事中断DMACPUDMA方式15整块数据的传输是在控制器的控制下完成的。仅在开始和结束时才需数据缓冲寄存器主存地址寄存器MAR传送字节个数计数器DC控制/状态寄存器数据总线地址总线DMA控制器主存CPU数据缓冲存储区磁盘控制器独立地进行DMA传送控制总线16数据缓冲寄存器主存地址寄存器MAR传送字节个数计数器DC控DMA工作过程:设置MAR和DC初值启动DMA传送命令挪用CPU工作周期传送数据主存地址增1数据计数器减1DC=0?请求中断NY每当磁盘把一块数据读入控制器的数据缓冲区时,检验校验和。DMA控制器取代CPU,接管地址总线的控制权,直接控制与主存的数据交换。使CPU访问总线时速度会变慢。17DMA工作过程:设置MAR和DC初值启动DMA传送命令挪用C与DMA方式相比,通道所需的CPU干预更少,且可以做到一个通道控制多台设备,进一步减轻了CPU的负担。

通道是一种专用的I/O处理机。通道有自己的指令系统,若干条通道命令连接成通道程序。4.通道控制方式18与DMA方式相比,通道所需的CPU干预更少,且可以做到一个CPU主存储器磁盘控制器软盘控制器磁带控制器读卡机磁盘控制器控制器控制器磁盘控制器打印机控制器终端数组多路通道选择通道字节多路通道CPU、通道和I/O设备并行工作总线19CPU主存储器磁盘控制器软盘控制器磁带控制器读卡机磁盘控制器1.字节多路通道:以字节为单位传输信息,可以分时地执行多个通道程序,一个通道程序对应一台设备。主要用来连接大量慢速设备。2.选择通道:以成组方式工作,即每次传送一批数据,故传送速度很高。在一段时间内只能执行一个通道程序,只允许一台设备传输数据。可用于连接高速设备,如固定头磁盘等。3.数组多路通道:结合了选择通道传送速度高和字节多路通道能够分时的优点。先为一台设备执行一条通道指令,自动转接,再为另一台设备执行一条通道指令。可连接多台活动头磁盘机。通道的三种类型201.字节多路通道:以字节为单位传输信息,可以分时地执行多工作过程:CPU向I/O通道发出一条I/O指令,给出所要执行的通道程序的首地址和要访问的I/O设备。通道接到CPU发来的指令,通过执行通道程序便可完成CPU指定的I/O任务。完成任务后,通道与设备一起发出中断请求信号,请求CPU处理。21工作过程:216.2I/O软件的组成I/O软件的基本思想:按分层构建,较低层的软件为较高层的软件服务,使较高层软件独立于硬件,为用户提供统一接口。226.2I/O软件的组成I/O软件的基本思想:按分层构建设备独立性。用户在编写使用磁盘上文件的程序时,无需为不同的设备类型而修改程序,就可以使用。用户程序中给出的是一个逻辑设备名,由OS实现逻辑设备与物理设备的映射。设备的统一命名。与设备独立性密切相关。一个设备的逻辑名字只应是一个简单的字符串或一个整数,如PRN,不依赖于具体的设备。6.2.1I/O软件的目标23设备独立性。用户在编写使用磁盘上文件的程序时,无需为不同的设出错处理。数据传输中的错误应尽可能地在接近硬件层上处理,可重试多次。仅当低层软件无能为力时,才将错误上交高层软件处理。缓冲技术。其目的就是设法使数据的到达率和离去率相匹配,以提高系统的吞吐量。设备的分配。涉及到共享设备和独占设备的分配问题。24出错处理。数据传输中的错误应尽可能地在接近硬件层上处理,可重6.2.2I/O软件的功能中断处理程序设备驱动程序独立于设备的软件用户空间的I/O软件I/O软件的分层:在I/O软件中,大部分软件是与设备无关的。256.2.2I/O软件的功能中断处理程序I/O软件的分层1.中断处理程序每个进程在启动一个I/O操作后阻塞起来,I/O操作完成,控制器产生一个中断。CPU响应中断,执行中断处理程序。检查设备状态。若是正常完成,就唤醒等待该I/O的进程。然后检查是否还有I/O请求,若有,就启动下一个请求。若传输出错,再发启动传输命令,或向上层报告“设备错误”的信息。261.中断处理程序每个进程在启动一个I/O操作后阻塞起来每个设备驱动程序处理一种类型设备。由一些与设备密切相关的代码组成。提供一些与文件类似的API:open,close,read,write,control等是OS中唯一知道设备控制器的配置情况,如设置有多少个寄存器以及这些寄存器作用的。2.设备驱动程序通常包含三部分功能:①设备初始化。②启动设备进行数据传输例程。③中断处理例程:处理设备发出的各种中断。27每个设备驱动程序处理一种类型设备。由一些与设备密切相关的代码工作过程设备驱动程序接收来自上层软件的抽象请求,并执行这个请求。若忙,则排到I/O请求队列中。将请求转换成应向控制器发送的命令和设备的具体参数。通常,驱动程序进程等待命令完成,阻塞自己,直到中断处理时将其唤醒。有时不必等待,如滚屏操作,把几个字节写到控制器中即可。检查数据传输是否有错;向上层传送数据。继续未完成的I/O请求。28工作过程设备驱动程序接收来自上层软件的抽象请求,并执行这个请3.独立于设备的软件(1)基本任务:实现所有设备都需要的公共功能,且向用户级软件提供一个统一接口。(2)设备命名。把设备的符号名映射到正确的设备驱动上。UNIX,/dev/tty01i节点主设备号(用来定位终端设备驱动程序),次设备号(作为参数用来确定设备驱动程序要读/写的具体终端)。293.独立于设备的软件(1)基本任务:实现所有设备都需要的(3)设备保护。防止无权存取设备的用户使用设备。UNIX的I/O设备作为文件用“rw”位进行保护。禁止用户进程对I/O设备直接访问,必须通过OS提供的系统调用命令进行I/O操作。(4)提供与设备无关的块尺寸。不同磁盘可以采用不同的扇区尺寸。应向较高层的软件掩盖这一事实并提供大小统一的块尺寸。较高层软件只与抽象磁盘打交道,使用等长的逻辑块。30(3)设备保护。防止无权存取设备的用户使用设备。UNIX的(5)缓冲技术 缓解CPU与I/O设备间速度不匹配的矛盾,减少对CPU的中断次数。用户进程发出一个I/O请求时,OS便在主存分配缓冲区,缓存输入或输出的数据。以空间换取时间。单缓冲:OS为I/O请求分配一个缓冲区。双缓冲:建立两个缓冲区,可以平滑I/O设备和进程之间的数据流,改善系统效率。多缓冲和缓冲池:多进程共享缓冲池。31(5)缓冲技术 缓解CPU与I/O设备间速度不匹配的矛盾,减高速缓存(补)(cache)是可以保留数据拷贝的高速内存。有时一块内存区域可以同时用于两个目的。例如,为了有效调度磁盘I/O,在内存开辟了缓冲区来保留磁盘数据。这些缓冲区也可以用作高速缓存,可被多个进程共享。当内核收到I/O请求时,会首先检查高速缓存里是否有。32高速缓存(补)(cache)是可以保留数据拷贝的高速内存。3(6)负责设备分配静态分配:进程运行前,将需要的设备全部分配给它。简单,不死锁,但利用率低。动态分配:在进程运行过程中,分配设备。设备利用率高,但容易引起死锁。33(6)负责设备分配静态分配:进程运行前,将需要的设备全部分配独占方式分配:对独占型设备的分配。共享分配:对共享型设备的分配。磁盘。

虚拟设备。常用可共享的高速设备来模拟独占的慢速设备。能有效提高独占型设备的利用率。Spooling技术是实现虚拟设备的具体技术。它利用可共享磁盘的一部分空间,模拟独占的输入/输出设备。以空间换时间。34独占方式分配:对独占型设备的分配。34假脱机输出:以打印机为例 Spooling实际是一种缓冲技术。进程要打印时,系统并不为它分配打印机,而是在磁盘上申请一个空闲区,把待打印的数据缓冲到空闲区,再把打印请求挂到打印队列上。打印机空闲时,从打印队列上取出一个请求,再从磁盘上的指定区域取出数据,送打印机打印。这种技术又叫缓输出技术。35假脱机输出:以打印机为例 Spooling实际是一种缓冲技术(7)出错处理绝大多数错误是与设备密切相关的,一般由设备驱动程序来处理。处理设备驱动程序处理不了的错误(重试几次操作后,仍有错误)。将错误信息报告调用者。36(7)出错处理绝大多数错误是与设备密切相关的,一般由设备驱I/O软件。(1)大部分都包含在操作系统中。(2)一小部分是由与用户程序连接在一起的库函数构成的。[例]用户程序中的库函数:count=read(fd,buffer,nbytes);程序运行期间,库函数read将与该程序连接在一起形成一个可执行文件装入主存。这些函数通常只是将系统调用时所需要的参数放在合适的位置,由其他的I/O函数实现真正的操作。如“Printf”将调用“write”系统调用。4.用户空间的I/O软件37I/O软件。(1)大部分都包含在操作系统中。(2)一小部分是5.I/O系统的层次结构用户进程独立于设备的软件设备驱动程序中断处理程序硬件I/O请求I/O完成后的回答385.I/O系统的层次结构用户进程独立于设备的软件设备驱动读文件的I/O操作步骤用户进程发出一个读文件的系统调用。设备独立I/O软件检查参数的正确性。若正确,再检查高速缓存中有无要读的信息块。若有,则从缓冲区直接读到用户区。若无,转3)执行物理I/O。独立于设备的I/O软件将设备的逻辑名转换成物理名,检查设备操作权限。将I/O请求排队,阻塞用户进程且等待I/O完成。核心执行设备驱动程序,分配缓冲区,准备接收数据,且向设备控制寄存器发启动读命令。39读文件的I/O操作步骤用户进程发出一个读文件的系统调用。39设备控制器控制设备,执行数据传输。当采用DMA控制器控制传输时,一个块传输完成,硬件产生一个中断。CPU响应中断,转磁盘的中断处理程序。检查中断原因和设备的执行状态,若出错,则向设备驱动程序发信号,若可重试,则再启动设备重传一次;否则,向上报告错误。若传输正确,将数据传输给指定的用户进程空间,将等待进程唤醒并且放入就绪队列,等待调度。当用户进程被调度执行时,从I/O系统调用的断点恢复执行。40设备控制器控制设备,执行数据传输。406.2.3同步I/O和异步I/O同步I/O:进程发出I/O请求后阻塞等待,直到数据传输完成后被唤醒,之后才能访问被传输的数据。异步I/O:允许进程发出I/O请求后继续运行。将来I/O完成后的通知方式:设置进程地址空间内的某个变量;通过触发信号或软件中断;进程执行流之外的某个回调函数。(Windows的APC)对于不必进行缓冲读写的快速I/O,使用同步I/O更有效;对于需要很长时间的I/O操作,可使用异步I/O。416.2.3同步I/O和异步I/O同步I/O:进程发出I6.3磁盘管理1.提高磁盘I/O速度的主要途径:选择性能好的磁盘。如IDE、SCSI采用好的调度算法设置磁盘高速缓冲区2.磁盘的类型

硬盘和软盘;固定头磁盘和活动头磁盘。

固定头磁盘:每条道上都有一个读/写磁头,用于大容量磁盘,并行读/写。移动头磁盘:每个盘面仅配有一个磁头。426.3磁盘管理1.提高磁盘I/O速度的主要途径:4.访问磁盘块的时间:寻道时间、旋转延迟时间、读/写传输时间。5.调度算法先来先服务(FIFO):最简单,易实现,又公平合理。最短寻道时间优先(SSTF):是指在将磁头移向下一请求磁道时,总是选择移动距离最小的磁道。扫描法(SCAN):是指读/写磁头在由磁盘的一端向另一端移动时,随时处理所到达磁道上的服务请求,直到移动另一端之后,再反向进行服务。变种CSCAN和C-LOOK6.磁盘分配方法连续分配;链接分配;索引分配434.访问磁盘块的时间:寻道时间、旋转延迟时间、读/写传输时操作系统的设备管理44操作系统的设备管理1目标和功能I/O管理是操作系统的主要功能之一,负责管理所有I/O设备。计算机系统中存在着大量的I/O设备,其性能和应用特点可能完全不同,所以要建立一个通用的、一致的设备访问接口,使用户和应用程序开发人员能够方便地使用I/O设备,而无须关心每种设备各自的特性。I/O管理是管理I/O设备,控制I/O操作45目标和功能I/O管理是操作系统的主要功能之一,负责管理所有I6.1I/O硬件组成6.2I/O软件的组成6.3设备分配6.4磁盘管理466.1I/O硬件组成36.1I/O硬件组成6.1.1I/O设备按信息交换的单位分类:块设备:把信息存储在固定大小的块中,每个块有自己的地址,可独立地读写。通常块的大小为512B~32KB。如磁盘、磁带、光盘和电子盘。字符设备:以字符为单位发送和接收字符流。是不可寻址的。键盘、鼠标、扫描器、打印机、绘图仪、网络接口等。时钟既不是块可寻址的,也不产生或接收字符流,只是按预先规定好的时间间隔产生中断。476.1I/O硬件组成6.1.1I/O设备时钟既I/O设备一般由机械和电子两部分组成。机械部分是设备本身。电子部分叫做设备控制器。设备控制器处于CPU和I/O设备之间,接收从CPU发来的命令,控制I/O设备工作。很多控制器可以连接两个、四个,甚至八个相同的设备。控制器与设备之间的接口是一个标准接口,符合国际标准。6.1.2设备控制器48I/O设备一般由机械和电子两部分组成。机械部分是设备本身。电接收OS的命令,控制设备实现指定的功能。每个控制器有几个寄存器,用来与CPU通信,即存放设备驱动程序向设备发送的命令和参数。控制寄存器:被主机用来向设备发送命令。状态寄存器:包含主机可读取的状态信息。数据缓冲寄存器每个寄存器被分配一个端口号。处理机通过I/O端口地址找到对应的I/O部件和设备寄存器,以实现对设备的控制和数据传输。控制器的作用49接收OS的命令,控制设备实现指定的功能。控制器的作用6控制器的作用除了几个寄存器外,许多设备控制器还有一个操作系统可以读写的数据缓冲区。如在屏幕上显示像素的常规方法是使用一个视频RAM,该RAM基本上只是一个数据缓冲区。磁盘控制器:从磁盘驱动器出来的是一连串的位流,控制器把串行的位流组装为字节,存入控制器内部的数据缓冲区中,形成以字节为单位的块。对块验证后,复制到主存。50控制器的作用除了几个寄存器外,许多设备控制器还有一个操作系统内存映射I/O单独的I/O和内存空间

INR0,4 MOVR0,4

前者读取I/O端口4的内容并将其存入R0,后者读取内存字4的内容并将其存入R0。内存I/O端口两个地址空间51内存映射I/O单独的I/O和内存空间内存I/O端口两个地址空内存映射I/O内存映射I/O:将所有设备控制器寄存器映射到内存空间。每个控制器寄存器被分配唯一的一个内存地址。通常分配给控制器寄存器的地址位于地址空间的顶端。优点:对内存的操作指令都可用于对I/O端口的操作,不需要专门的I/O指令。I/O设备驱动程序可以完全用C语言编写。如UNIX。内存一个地址空间52内存映射I/O内存映射I/O:将所有设备控制器寄存器映射到内内存映射I/O--混合方案内存映射I/O的数据缓冲区,控制器寄存器则具有单独的I/O端口。Pentium处理器使用的就是这一体系结构。内存I/O端口两个地址空间53内存映射I/O--混合方案内存映射I/O的数据缓冲区,内存I计算机系统对I/O设备的4种控制方式程序查询方式(轮询(polling))程序中断方式直接存储器访问(DMA)方式通道控制方式54计算机系统对I/O设备的4种控制方式程序查询方式(轮询(po程序查询方式向I/O控制器发读命令读I/O控制器的状态从I/O控制器中读入字节向存储器中写字节CPUI/OI/OCPU未就绪出错就绪I/OCPUCPU内存传送完成检查状态是,停止设备未完从外部设备读取一块数据到存储器,每次读几个字节的数据。CPU忙等串行工作55程序查询方式向I/O控制器发读命令读I/O控制器的状态从I/2.程序中断方式CPU/设备并行工作向设备控制器发写命令CPU转去执行其它程序将控制传递给中断服务例程无重试或故障终止中断服务例程检查本次传输是否有错传输有错?中断返回,继续执行被中断的进程CPU响应中断传输完成?无完CPU工作情况设备完成数据传输或出错,产生中断设备驱动程序启动设备工作I/O设备工作情况有562.程序中断方式CPU/设备向设备控制器发写命令CPU转支持大量数据传输的块设备,其控制器支持直接存储器存取(DMA,DirectMemoryAccess)。通常,CPU控制地址总线,进行与主存储器的数据交换。允许DMA控制器接管地址总线的控制权,直接控制与主存的数据交换。3.直接存储器访问(DMA)57支持大量数据传输的块设备,其控制器支持直接存储器存取(DMA整块数据的传输是在控制器的控制下完成的。仅在开始和结束时才需CPU干预。向磁盘O控制器发读块命令读DMA控制器的状态下条指令CPUDMACPU做其它事中断DMACPUDMA方式58整块数据的传输是在控制器的控制下完成的。仅在开始和结束时才需数据缓冲寄存器主存地址寄存器MAR传送字节个数计数器DC控制/状态寄存器数据总线地址总线DMA控制器主存CPU数据缓冲存储区磁盘控制器独立地进行DMA传送控制总线59数据缓冲寄存器主存地址寄存器MAR传送字节个数计数器DC控DMA工作过程:设置MAR和DC初值启动DMA传送命令挪用CPU工作周期传送数据主存地址增1数据计数器减1DC=0?请求中断NY每当磁盘把一块数据读入控制器的数据缓冲区时,检验校验和。DMA控制器取代CPU,接管地址总线的控制权,直接控制与主存的数据交换。使CPU访问总线时速度会变慢。60DMA工作过程:设置MAR和DC初值启动DMA传送命令挪用C与DMA方式相比,通道所需的CPU干预更少,且可以做到一个通道控制多台设备,进一步减轻了CPU的负担。

通道是一种专用的I/O处理机。通道有自己的指令系统,若干条通道命令连接成通道程序。4.通道控制方式61与DMA方式相比,通道所需的CPU干预更少,且可以做到一个CPU主存储器磁盘控制器软盘控制器磁带控制器读卡机磁盘控制器控制器控制器磁盘控制器打印机控制器终端数组多路通道选择通道字节多路通道CPU、通道和I/O设备并行工作总线62CPU主存储器磁盘控制器软盘控制器磁带控制器读卡机磁盘控制器1.字节多路通道:以字节为单位传输信息,可以分时地执行多个通道程序,一个通道程序对应一台设备。主要用来连接大量慢速设备。2.选择通道:以成组方式工作,即每次传送一批数据,故传送速度很高。在一段时间内只能执行一个通道程序,只允许一台设备传输数据。可用于连接高速设备,如固定头磁盘等。3.数组多路通道:结合了选择通道传送速度高和字节多路通道能够分时的优点。先为一台设备执行一条通道指令,自动转接,再为另一台设备执行一条通道指令。可连接多台活动头磁盘机。通道的三种类型631.字节多路通道:以字节为单位传输信息,可以分时地执行多工作过程:CPU向I/O通道发出一条I/O指令,给出所要执行的通道程序的首地址和要访问的I/O设备。通道接到CPU发来的指令,通过执行通道程序便可完成CPU指定的I/O任务。完成任务后,通道与设备一起发出中断请求信号,请求CPU处理。64工作过程:216.2I/O软件的组成I/O软件的基本思想:按分层构建,较低层的软件为较高层的软件服务,使较高层软件独立于硬件,为用户提供统一接口。656.2I/O软件的组成I/O软件的基本思想:按分层构建设备独立性。用户在编写使用磁盘上文件的程序时,无需为不同的设备类型而修改程序,就可以使用。用户程序中给出的是一个逻辑设备名,由OS实现逻辑设备与物理设备的映射。设备的统一命名。与设备独立性密切相关。一个设备的逻辑名字只应是一个简单的字符串或一个整数,如PRN,不依赖于具体的设备。6.2.1I/O软件的目标66设备独立性。用户在编写使用磁盘上文件的程序时,无需为不同的设出错处理。数据传输中的错误应尽可能地在接近硬件层上处理,可重试多次。仅当低层软件无能为力时,才将错误上交高层软件处理。缓冲技术。其目的就是设法使数据的到达率和离去率相匹配,以提高系统的吞吐量。设备的分配。涉及到共享设备和独占设备的分配问题。67出错处理。数据传输中的错误应尽可能地在接近硬件层上处理,可重6.2.2I/O软件的功能中断处理程序设备驱动程序独立于设备的软件用户空间的I/O软件I/O软件的分层:在I/O软件中,大部分软件是与设备无关的。686.2.2I/O软件的功能中断处理程序I/O软件的分层1.中断处理程序每个进程在启动一个I/O操作后阻塞起来,I/O操作完成,控制器产生一个中断。CPU响应中断,执行中断处理程序。检查设备状态。若是正常完成,就唤醒等待该I/O的进程。然后检查是否还有I/O请求,若有,就启动下一个请求。若传输出错,再发启动传输命令,或向上层报告“设备错误”的信息。691.中断处理程序每个进程在启动一个I/O操作后阻塞起来每个设备驱动程序处理一种类型设备。由一些与设备密切相关的代码组成。提供一些与文件类似的API:open,close,read,write,control等是OS中唯一知道设备控制器的配置情况,如设置有多少个寄存器以及这些寄存器作用的。2.设备驱动程序通常包含三部分功能:①设备初始化。②启动设备进行数据传输例程。③中断处理例程:处理设备发出的各种中断。70每个设备驱动程序处理一种类型设备。由一些与设备密切相关的代码工作过程设备驱动程序接收来自上层软件的抽象请求,并执行这个请求。若忙,则排到I/O请求队列中。将请求转换成应向控制器发送的命令和设备的具体参数。通常,驱动程序进程等待命令完成,阻塞自己,直到中断处理时将其唤醒。有时不必等待,如滚屏操作,把几个字节写到控制器中即可。检查数据传输是否有错;向上层传送数据。继续未完成的I/O请求。71工作过程设备驱动程序接收来自上层软件的抽象请求,并执行这个请3.独立于设备的软件(1)基本任务:实现所有设备都需要的公共功能,且向用户级软件提供一个统一接口。(2)设备命名。把设备的符号名映射到正确的设备驱动上。UNIX,/dev/tty01i节点主设备号(用来定位终端设备驱动程序),次设备号(作为参数用来确定设备驱动程序要读/写的具体终端)。723.独立于设备的软件(1)基本任务:实现所有设备都需要的(3)设备保护。防止无权存取设备的用户使用设备。UNIX的I/O设备作为文件用“rw”位进行保护。禁止用户进程对I/O设备直接访问,必须通过OS提供的系统调用命令进行I/O操作。(4)提供与设备无关的块尺寸。不同磁盘可以采用不同的扇区尺寸。应向较高层的软件掩盖这一事实并提供大小统一的块尺寸。较高层软件只与抽象磁盘打交道,使用等长的逻辑块。73(3)设备保护。防止无权存取设备的用户使用设备。UNIX的(5)缓冲技术 缓解CPU与I/O设备间速度不匹配的矛盾,减少对CPU的中断次数。用户进程发出一个I/O请求时,OS便在主存分配缓冲区,缓存输入或输出的数据。以空间换取时间。单缓冲:OS为I/O请求分配一个缓冲区。双缓冲:建立两个缓冲区,可以平滑I/O设备和进程之间的数据流,改善系统效率。多缓冲和缓冲池:多进程共享缓冲池。74(5)缓冲技术 缓解CPU与I/O设备间速度不匹配的矛盾,减高速缓存(补)(cache)是可以保留数据拷贝的高速内存。有时一块内存区域可以同时用于两个目的。例如,为了有效调度磁盘I/O,在内存开辟了缓冲区来保留磁盘数据。这些缓冲区也可以用作高速缓存,可被多个进程共享。当内核收到I/O请求时,会首先检查高速缓存里是否有。75高速缓存(补)(cache)是可以保留数据拷贝的高速内存。3(6)负责设备分配静态分配:进程运行前,将需要的设备全部分配给它。简单,不死锁,但利用率低。动态分配:在进程运行过程中,分配设备。设备利用率高,但容易引起死锁。76(6)负责设备分配静态分配:进程运行前,将需要的设备全部分配独占方式分配:对独占型设备的分配。共享分配:对共享型设备的分配。磁盘。

虚拟设备。常用可共享的高速设备来模拟独占的慢速设备。能有效提高独占型设备的利用率。Spooling技术是实现虚拟设备的具体技术。它利用可共享磁盘的一部分空间,模拟独占的输入/输出设备。以空间换时间。77独占方式分配:对独占型设备的分配。34假脱机输出:以打印机为例 Spooling实际是一种缓冲技术。进程要打印时,系统并不为它分配打印机,而是在磁盘上申请一个空闲区,把待打印的数据缓冲到空闲区,再把打印请求挂到打印队列上。打印机空闲时,从打印队列上取出一个请求,再从磁盘上的指定区域取出数据,送打印机打印。这种技术又叫缓输出技术。78假脱机输出:以打印机为例 Spooling实际是一种缓冲技术(7)出错处理绝大多数错误是与设备密切相关的,一般由设备驱动程序来处理。处理设备驱动程序处理不了的错误(重试几次操作后,仍有错误)。将错误信息报告调用者。79(7)出错处理绝大多数错误是与设备密切相关的,一般由设备驱I/O软件。(1)大部分都包含在操作系统中。(2)一小部分是由与用户程序连接在一起的库函数构成的。[

温馨提示

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

评论

0/150

提交评论