操作系统汤子瀛本科操作系统讲课文档_第1页
操作系统汤子瀛本科操作系统讲课文档_第2页
操作系统汤子瀛本科操作系统讲课文档_第3页
操作系统汤子瀛本科操作系统讲课文档_第4页
操作系统汤子瀛本科操作系统讲课文档_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

操作系统课件汤子瀛本科操作系统第一页,共一百零一页。5.1.1I/O设备1、I/O设备的类型2)按传输速率分类(1)低速设备:每秒十几个字节至数百个字节。(2)中速设备:每秒数千个字节至数十千个字节。(3)高速设备:每秒数百千个字节至数兆个字节。第二页,共一百零一页。3)按信息交换的单位分类(1)块设备:以块为单位进行信息交换的设备,例如:磁盘。(2)字符设备:以单个字符为单位进行信息交换的设备,例如:打印机、键盘。第三页,共一百零一页。4)按设备的共享属性分类(1)独占设备:在一段时间内只能被一个进程访问的设备。例:打印机。(2)共享设备:在一段时间内,多个进程可交替访问的设备。例:磁盘。(3)虚拟设备:通过虚拟技术模拟的设备。第四页,共一百零一页。2、设备与控制器之间的接口接口中有数据、状态、控制三种类型的寄存器,用于传输数据信号、状态信号、控制信号。第五页,共一百零一页。1)数据信号线传送输入输出数据。2)控制信号线由设备控制器向I/O设备发送控制命令。3)状态信号线由设备向控制器传送设备状态信息。第六页,共一百零一页。缓冲转换器控制逻辑I/O设备数据信号线状态信号线控制信号线信号数据至设备控制器第七页,共一百零一页。5.1.2设备控制器设备控制器分为两大类:字符设备的控制器和块设备的控制器。1、设备控制器的基本功能1)接收和识别命令控制器用控制寄存器接收CPU的命令,并对命令进行译码识别。2)数据交换:用数据寄存器进行输入输出的数据交换。第八页,共一百零一页。3)标识和报告设备的状态利用状态寄存器来反映设备的当前状态。4)地址识别每个设备接口寄存器都有唯一的地址,在控制器中配置地址译码器来识别接口寄存器的地址。第九页,共一百零一页。5)数据缓冲由于I/O设备的速率远远低于CPU和内存的速率,故在控制器中设置缓冲器,用于暂存输入输出数据。6)差错控制设备控制器对由I/O设备传送来的数据进行差错检测,发现错误,报告CPU。第十页,共一百零一页。2、设备控制器的组成控制器在CPU与设备之间,控制器即要与CPU通信,也要与设备通信,因此,设备控制器主要由三部分组成。1)设备控制器与处理机的接口通过数据线、地址线、控制线进行通信,数据线与数据寄存器和控制/状态寄存器两类寄存器相连。第十一页,共一百零一页。2)设备控制器与设备的接口一个控制器可连接多台设备,有多个设备接口,每个设备接口都有一组寄存器来传送数据、控制和状态信号。3)I/O逻辑通过控制线接收CPU的I/O命令,并对收到的命令进行译码,通过地址线接收I/O地址并对地址进行译码,用I/O命令实现对指定设备的控制。第十二页,共一百零一页。CPU与控制器接口控制器与设备接口数据寄存器控制/状态寄存器数据线I/O逻辑地址线控制线控制器与设备接口1控制器与设备接口i…数据状态控制数据状态控制第十三页,共一百零一页。5.1.3I/O通道1、I/O通道设备的引入引入通道的主要目的是为了建立独立的I/O操作,CPU向通道发I/O指令,通道收到指令后,从内存指定位置取出通道程序,执行通道程序完成I/O操作,完成后向CPU发中断信号。第十四页,共一百零一页。2、通道类型1)字节多路通道通道中含有多个非分配型子通道,每个子通道连接一台I/O设备,所有子通道按时间片轮转方式共享主通道,一个子通道占用主通道完成一个字节的交换后,立即让给另一子通道使用。第十五页,共一百零一页。A1B1C1…A2B2C2…控制器控制器控制器控制器控制器设备A1A2A3…子通道AB1B2B3…子通道BC1C2C3…子通道CN1N2N3…子通道N字节多路通道第十六页,共一百零一页。2)数组选择通道通道内只含有一个分配型的子通道,连接一台设备传送一组数据。3)数组多路通道通道内含有多个非分配型子通道,连接多台设备,以时间片轮转方式进行数组方式的多路传送,一个子通道传送一组数据后,让给下一子通道。第十七页,共一百零一页。A1B1C1…A2B2C2…控制器控制器控制器控制器控制器设备A1B1C1…A2B2C2…数组选择通道第十八页,共一百零一页。…A1B1C1…A2B2C2…控制器控制器控制器控制器控制器设备A1B1C1…子通道AA2B2C2…子通道BA3B3C3…子通道CA14B14C14…子通道N数组多路通道第十九页,共一百零一页。3、“瓶颈”问题通道价格昂贵,机器配置的通道少,致使主机与设备的通路较少,这往往成为I/O的“瓶颈”。在不增加通道的前题下,采用交叉连接的方式,增加主机到设备的通路,是解决瓶颈问题最有效的方法。第二十页,共一百零一页。存储器设备1通道2控制器1控制器2控制器3控制器4通道1设备3设备2设备4设备5设备6设备77条通路第二十一页,共一百零一页。存储器通道1通道2控制器1控制器2I/O设备I/O设备I/O设备I/O设备16条通路第二十二页,共一百零一页。5.1.4总线系统CPU存储器磁盘控制器打印机控制器其它控制器打印机磁盘驱动器…第二十三页,共一百零一页。1、ISA和EISA总线1)ISA总线为80286微机设计的总线结构,带宽8位,传输率为2Mb/s.2)EISA总线带宽为32位,传输率为32Mb/s,可以连接12台设备。第二十四页,共一百零一页。2、局部总线1)VESA

带宽为32位,最高传输率132Mb/s,应用于486微机中。2)PCI总线

PCI在CPU与外设之间插入一复杂的管理层,用于协调数据传输和提供一致的接口,配有数据缓冲,最多能支持10种外设,可连接ISA、EISA等总线。第二十五页,共一百零一页。5.2I/O控制方式5.2.1程序I/O方式处理机向设备控制器发出一条I/O指令,然后循环测试设备的状态,直至设备状态为就绪时,处理机读走数据写入内存,反复进行直至数据传送完成。程序I/O方式使CPU等待设备,CPU利用率低。第二十六页,共一百零一页。向I/O控制器发读命令读I/O控制器的状态检查状态从I/O控制器中读入字就绪向存储器中写字传送完成未完未就绪CPU→I/OI/O→CPU出错I/O→CPUCPU→内存完成第二十七页,共一百零一页。5.2.2中断驱动I/O控制方式

CPU向设备控制器发I/O命令,控制按命令控制设备,I/O操作完成后,控制器发出中断请求,CPU响应中断进行中断处理,反复进行直至数据传送完成。第二十八页,共一百零一页。向I/O控制器发读命令读I/O控制器的状态检查状态从I/O控制器中读入字就绪向存储器中写字传送完成未完CPU→I/OI/O→CPU出错I/O→CPUCPU→内存完成CPU做其它事中断第二十九页,共一百零一页。5.2.3直接存储器访问DMAI/O控制方式1、DMA控制方式的引入用中断驱动I/O方式,每次中断只能传送一个字节,传送1000个字节,产生1000次中断,引入DMA方式后,一次中断可传送一组数据。第三十页,共一百零一页。DMA方式的特点:(1)传输的基本单位是块(2)设备直接访问存储器(3)传送的开始和结束才需CPU干预。第三十一页,共一百零一页。向I/O控制器发布读块命令读DMA控制器的状态下条指令CPU→DMACPU做其它事中断DMA→CPU第三十二页,共一百零一页。2、DMA控制器组成(1)命令/状态寄存器CR:存放I/O命令或设备状态。(2)内存地址寄存器MAR:存放输入/输出数据的内存地址。(3)数据寄存器DR:存放输入输出数据。(4)数据计数器DC:存放传送字节数。第三十三页,共一百零一页。CPU内存countDRMARDCCR主机与控制器接口I/O控制逻辑控制器与设备接口命令系统总线DMA控制器第三十四页,共一百零一页。3、DMA工作过程

CPU命令传入CR,内存地址填入MAR,数据字节数填入DC,DMA控制器每传送一个字节,DC-1,MAR+1,直至DC=0,DMA控制器发出中断请求,CPU处理中断收回总线。第三十五页,共一百零一页。设置MAR和DC初值启动DMA传送命令挪用存储器周期传送数据字存储器地址增1字计数寄存器减1DC=0?是请求中断否在继续执行用户程序的同时,准备下一次传送。第三十六页,共一百零一页。5.2.4I/O通道控制方式1、I/O通道控制方式的引入

DMA方式,CPU每发出一条I/O指令,只能读/写一组数据,引入通道控制方式,CPU用一条I/O指令,启动通道执行通道程序,传送多组数据后,通道发出中断请求,CPU进行中断处理。即DMA方式一次中断传一组数据,通道方式一次中断传多组数据。第三十七页,共一百零一页。2、通道程序由若干条通道指令组成,通道通过执行通道程序,并与控制器共同实现对设备的控制。第三十八页,共一百零一页。通道指令的格式:(1)操作码(2)内存地址(3)计数(4)通道程序结束位P:P=1表示通道程序结束(5)记录结束标志R:记录由多条指令组成,表示记录结束。第三十九页,共一百零一页。操作PR计数内存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE11250720记录1记录2记录3通道程序第四十页,共一百零一页。5.3缓冲管理5.3.1缓冲的引入(1)缓和CPU与I/O设备间速度不匹配的矛盾设置缓冲区,避免CPU等待I/O设备。(2)减少对CPU的中断频率,放宽对中断响应时间的限止.在缓冲区满时才中断,在第2缓冲区满时响应中断。第四十一页,共一百零一页。(3)提高CPU和I/O设备之间的并行性

CPU处理第一批数据的同时,I/O设备输入第二批数据。第四十二页,共一百零一页。5.3.2单缓冲和双缓冲1、单缓冲用户进程操作系统I/O设备输入T传送M计算C因为M远小于T或C,不加缓冲的处理时间是T+C,加缓冲的处理时间是MAX(C,T)+M,T+C>MAX(C,T)+M缓冲区内存第四十三页,共一百零一页。2、双缓冲用户进程操作系统I/O设备输入T传送M计算C在传送第一批数据处理结果的同时,CPU在处理第二批数据,I/O设备在输入第三批数据。处理时间为:MAX(T,C)。例如:使用双缓冲使CPU与读卡机、打印机并行工作;用双缓冲实现双向通信。第四十四页,共一百零一页。A机缓冲区B机缓冲区A机发送缓冲区接收缓冲区B机接收缓冲区发送缓冲区第四十五页,共一百零一页。5.3.3循环缓冲用户进程操作系统I/O设备输入T传送M计算C第四十六页,共一百零一页。1、循环缓冲的组成(1)多个缓冲区空缓冲区R已装满数据的缓冲区G现行工作缓冲区CRRGGGGNEXTiNEXTgRRGGGGNEXTicurrentNEXTg第四十七页,共一百零一页。(2)多个指针Nextg:指向下一个可用缓冲区GNexti:指向下一个可用空缓冲区RCurrent:正在使用的缓冲区。第四十八页,共一百零一页。2、循环缓冲区的使用(1)getbuf过程:计算进程调用getbuf,获得缓冲区G;输入进程调用getbuf,获得空缓冲区R。(2)Releasebuf过程:计算进程调用releasebuf将现行工作区C改为空缓冲区R;输入进程调releasebuf将空缓冲区R改为缓冲区G。第四十九页,共一百零一页。3、进程同步(1)Nexti指针追赶上Nextg指针表示输入快于处理,输入进程阻塞。(2)Nextg指针追赶上Nexti指针表示处理快于输入,处理进程阻塞。第五十页,共一百零一页。5.3.4缓冲池1、缓冲池的组成缓冲池由空闲缓冲区、输入缓冲区、输出缓冲区三种类型的缓冲区组成,将相同类型的缓冲区组成队列。第五十一页,共一百零一页。缓冲池的三个队列。(1)空缓冲队列emq:队首指针F(emq),队尾指针L(emq)。(2)输入队列inq:队首指针F(inq),队尾指针L(inq)。(3)输出队列outq:队首指针F(outq),队尾指针L(outq)。第五十二页,共一百零一页。四种工作缓冲区:①用于收容输入的工作缓冲区;②用于提取输入的工作缓冲区;③用于收容输出的工作缓冲区;④用于提取输出的工作缓冲区。第五十三页,共一百零一页。2、getbuf过程和putbuf过程

getbuf和putbuf过程分别要调用addbuf和takebuf过程来实现队列操作,由于队列必须互斥访问,设置互斥信号MS(type)和同步信号RS(type),实现队列的互斥访问以及getbuf和putbuf间的半同步。第五十四页,共一百零一页。

proceduregetbuf(type)beginwait(RS(type))wait(MS(type))B(num):=takebuf(type)signal(MS(type))end

procedureputbuf(type,num)beginwait(MS(type))addbuf(type,num)signal(MS(type))signal(RS(type))end第五十五页,共一百零一页。3、缓冲区的工作方式(1)收容输入从emq获空缓冲区,作为hin,装满输入数据,插入inq队列。(2)提取输入从inq获输入缓冲区,作为sin,取空输入数据,插入emq。第五十六页,共一百零一页。(3)收容输出从emq获空缓冲区,作为hout,装满输出数据,插入outq。(4)提取输出从outq获输出缓冲区,作为sout,取空输出数据,插入emq。第五十七页,共一百零一页。5.4I/O软件5.4.1I/O软件的设计目标和原则设计目标:1)与具体设备无关2)统一命名3)对错误的处理4)缓冲技术5)设备的分配和释放6)I/O控制方式第五十八页,共一百零一页。I/O软件的层次:(1)用户层软件(2)设备独立性软件(3)设备驱动程序(4)中断处理程序第五十九页,共一百零一页。5.4.2中断处理程序1、唤醒被阻塞的驱动程序进程。2、保护被中断进程的CPU环境。3、转入相应的设备处理程序。4、中断处理5、恢复被中断进程的现场第六十页,共一百零一页。PSW程序状态字PC(N+1)程序计数器…寄存器PSWPC(N+1)栈指针……NN+1开始…返回用户程序中断处理程序中断栈第六十一页,共一百零一页。5.4.3设备驱动程序1、设备驱动程序的功能(1)将抽象的I/O请求转换为具体的I/O请求。(2)检查I/O的合法性,了解设备状态,设置设备的工作方式。(3)启动I/O设备。(4)响应中断请求。(5)构成通道程序。第六十二页,共一百零一页。2、设备处理方式(1)为每一类设备设置一个I/O进程。(2)整个系统设置一个I/O进程(3)为各类设备设置相应的设备处理程序,供用户进程或系统进程调用。第六十三页,共一百零一页。3、设备驱动程序的特点(1)驱动程序是请求I/O的进程与设备控制器之间的一个通信程序。(2)不同类型的设备应配置不同的驱动程序。(3)驱动程序与I/O控制方式紧密相关。(4)驱动程序必须用汇编语言书写,基本设备的驱动程序已固化在ROM中。(5)驱动程序应允许可重入。(6)驱动程序不允许系统调用。第六十四页,共一百零一页。4、设备驱动程序的处理过程1)将抽象要求转换为具体要求例:盘块号转换为盘面、磁道及扇区。2)检查I/O请求的合法性例:请求从打印机输入数据将被拒绝。第六十五页,共一百零一页。3)读出和检查设备的状态:从设备控制器的状态寄存器中读出设备的状态。4)传送必要的参数例:读写磁盘前,要将字节数和内存地址传送到控制器。5)工作方式的设置:设置设备的工作方式。6)启动I/O设备:驱动程序发出I/O命令,由控制器控制设备完成基本的I/O。第六十六页,共一百零一页。5.4.4设备独立性软件1、设备独立性的概念设备改变了,使用设备的应用程序不需要修改,即应用程序独立于具体使用的物理设备。为保证设备的独立性,在应用程序中使用逻辑设备名来使用物理设备。第六十七页,共一百零一页。设备独立性实现了:1)设备分配时的灵活性:当进程用逻辑设备名来请求某类设备时,系统可分配该类设备的任意一台给进程。2)易于实现I/O重定向:用于I/O操作的设备可以更换,而不必改动应用程序。第六十八页,共一百零一页。2、设备独立性软件为实现设备独立性,在设备驱动程序之上设置的一层软件,称为设备独立性软件。第六十九页,共一百零一页。设备独立性软件的功能:(1)执行所有设备的公有操作:①独占设备的分配与回收②逻辑设备映射为物理设备③设备保护④缓冲管理⑤差错控制⑥提供独立于设备的逻辑块。(2)向用户层(或文件层)软件提供统一接口:即无论何种设备,它们向用户提供的接口是相同的。第七十页,共一百零一页。3、逻辑设备名到物理设备名映射的实现1)逻辑设备表:每个表项包括逻辑设备名、物理设备名、驱动程序入口地址,当进程用逻辑设备名来请求分配I/O设备时,系统为它分配相应的物理设备,并在逻辑设备表中建立一个表目。第七十一页,共一百零一页。2)LUT的设置问题(1)整个系统设置一张LUT:不允许有相同的逻辑设备名,用于单用户系统。(2)为每个用户设置一张LUT:适用于多用户系统。逻辑设备名物理设备名驱动程序入口地址/dev/tty31024/dev/print52046………LUT第七十二页,共一百零一页。5.4.5用户层的I/O软件大部分的I/O软件都在操作系统内部,但仍有一小部分在用户层,包括与用户程序链接在一起的库函数,以及完全运行于内核之外的一些程序。第七十三页,共一百零一页。5.5设备分配5.5.1设备分配中的数据结构1、设备控制表DCT

每个设备有一张设备控制表,记录设备的类型、设备标识符、设备状态、设备队列队首指针、指向控制器表的指针、重复执行次数等。第七十四页,共一百零一页。2、控制器控制表、通道控制表和系统设备表(1)、控制器控制表COCT

每个控制器设置一张COCT,记录控制器的情况。(2)、通道控制表CHCT

每个通道设置一张CHCT,记录通道的情况。(3)、系统设备表SDT:整个系统一张表,每个设备在SDT中占一个表项。第七十五页,共一百零一页。表目1…表目I…SDT设备类设备标识DCT指针驱动程序入口设备类型设备标识符设备状态控制器表指针重复执行次数设备队列指针DCT控制器标识符控制器状态通道表指针控制器队列队首指针控制器队列队尾指针通道标识符通道状态控制器表指针通道队列队首指针通道队列队尾指针COCTCHCT第七十六页,共一百零一页。5.5.2设备分配时应考虑的因素1、设备的固有属性(1)独占设备:只能分配给一个进程使用。(2)共享设备:可同时分配给多个进程使用。(3)虚拟设备:已属可共享设备,也可分配给多个进程使用。第七十七页,共一百零一页。2、设备分配算法(1)先来先服务:按设备提出请求的先后顺序排成设备请求队列,设备分配给队首的进程。(2)优先级高者优先:按进程优先级从高到低组成设备请求队列,设备分配给队首进程。第七十八页,共一百零一页。3、设备分配中的安全性1)安全分配方式每当进程发出I/O请求后,便进入阻塞状态,直到I/O完成后被唤醒。2)不安全分配方式进程发出I/O请求后仍继续运行,需要时又可发出第二个I/O请求。第七十九页,共一百零一页。5.5.3独占设备的分配程序1、基本的设备分配程序1)分配设备:根据物理设备名查SDT,找到设备的DCT,分配设备。2)分配控制器:查DCT,得控制器控制表COCT,分配控制器。3)分配通道:查COCT,得通道控制表CHCT,分配通道。第八十页,共一百零一页。2、设备分配程序的改进1)增进设备的独立性:进程用逻辑设备名请求I/O时,系统从SDT中找到第一个该类设备的DCT,如该设备忙,可查找第二个该类设备。2)考虑多通路情况:查看与设备连接的所有控制器,查看与控制器连接的所有通道。第八十一页,共一百零一页。5.5.4SPOOLING技术1、什么是SPOOLING

外围设备同时联机操作或称假脱机操作。2、SPOOLING系统的组成(1)输入井和输出井:是磁盘上开辟的两大存储空间,输入井存放从I/O设备输入的多组数据(相当于多台输入机),输出井存放多个程序的输出结果(相当于多台输出机)。第八十二页,共一百零一页。(2)输入缓冲区和输出缓冲区:在内存开辟的两个缓冲区,I/O设备→输入缓冲区→输入井;输出井→输出缓冲区→I/O设备。(3)输入进程Spi和输出进程Spo输入进程Spi的工作:I/O设备→输入缓冲区→输入井→内存。输出进程Spo的工作:内存→输出井→输入缓冲区→I/O设备。第八十三页,共一百零一页。3、共享打印机当用户进程请求打印输出时,输出进程为其申请输出井空间并将打印内容送入其中,再申请一张用户请求打印表填入用户的打印要求,最后请求打印表被挂到请求打印队列上,打印机按队列顺序逐个打印。第八十四页,共一百零一页。请求打印队列:由若干进程的请求打印表组成的队列。输入进程SPi输出进程SPo输入设备输出设备输入缓冲区Bi输出缓冲区Bo磁盘输入井输出井第八十五页,共一百零一页。4、SPOOLING系统的特点(1)提高了I/O速度:从对低速I/O设备的I/O操作,演变为对输入井或输出井的存取操作。(2)将独占设备改造为共享设备:输入井和输出井的每一个存储区(共享设备),相当于一台输入机或打印机(独占设备)。(3)实现了虚拟设备的功能:输入井和输出井的每一个存储区,相当于一台虚拟设备。第八十六页,共一百零一页。5.6磁盘存储器管理5.6.1磁盘性能简述1、数据的组织和格式磁盘由若干个面组成,每个面有若干个磁道,每个磁道有若干个扇区,每个扇区存放512字节的数据。第八十七页,共一百零一页。Gap1IDField0Gap2DataField0Gap31774151520SynchByteTrack#Head#Sector#CRC12112SynchByteTrack#CRC15122磁盘扇区格式第八十八页,共一百零一页。2、磁盘的类型1)固定头磁盘:每条磁道上有一个磁头。2)移动头磁盘:每个盘面有一个磁头。3、磁盘访问时间1)寻道时间:磁头从当前位置移动到指定磁道的时间。2)旋转延时时间:指定扇区转到磁头下的时间。3)传输时间:读写磁盘数据的时间。第八十九页,共一百零一页。5.6.2磁盘调度1、先来先服务根据进程请求访问磁盘的先后顺序进行调度。2、最短寻道时间优先离当前磁道位置最近的磁道优先调度。第九十页,共一百零一页。FCFS调度算法示例:磁道号:555839189016015038184移动距离:4531921727010112146平均寻道长度:55.3SSTF调度算法示例:磁道号:905855393818150160184移动距离:10323161201321024平均寻道长度:27.5第九十一页,共一百零一页。3、扫描(SCAN)算法1)进程“饥饿”现象离当前磁头位置远的磁道,长时间得不到访问。2)SCAN算法磁头从里到外再从外到里地移动,在移动方向上优先调度最近的磁道。第九十二页,共一百零一页。

4、循环扫描(CSCAN)算法

规定只在从外向内(从内向外)移动时依次扫描所有经过的磁道,然后迅速返回,再次从外向内扫描,返回时不扫描。SCAN调度算

温馨提示

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

最新文档

评论

0/150

提交评论