ImageVerifierCode 换一换
格式:PPT , 页数:199 ,大小:1.89MB ,
文档编号:7653208      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-7653208.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(momomo)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(《计算机操作系统》课件第5章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

《计算机操作系统》课件第5章.ppt

1、第五章设 备 管 理 第五章设 备 管 理5.1I/O系统系统5.2I/O控制方式控制方式5.3缓冲管理缓冲管理5.4I/O软件软件5.5设备分配设备分配 5.6磁盘存储器的管理磁盘存储器的管理 第五章设 备 管 理 5.1I/O系统系统 5.1.15.1.1I/OI/O设备设备 1 1I/OI/O设备的类型设备的类型I/O设备的类型繁多,从OS观点看,其重要的性能指标有:设备使用特性、数据传输速率、数据的传输单位、设备共享属性等。因而可从不同角度对它们进行分类。第五章设 备 管 理 1)按设备的使用特性分类按设备的使用特性,可将设备分为两类。第一类是存储设备,也称外存或后备存储器、辅助存储器

2、,是计算机系统用以存储信息的主要设备。该类设备存取速度较内存慢,但容量比内存大得多,相对价格也便宜。第二类就是输入/输出设备,又具体可分为输入设备、输出设备和交互式设备。输入设备用来接收外部信息,如键盘、鼠标、扫描仪、视频摄像、各类传感器等。输出设备是用于将计算机加工处理后的信息送向外部的设备,如打印机、绘图仪、显示器、数字视频显示设备、音响输出设备等。交互式设备则是集成上述两类设备,利用输入设备接收用户命令信息,并通过输出设备(主要是显示器)同步显示用户命令以及命令执行的结果。第五章设 备 管 理 2)按传输速率分类按传输速度的高低,可将I/O设备分为三类。第一类是低速设备,这是指其传输速率

3、仅为每秒钟几个字节至数百个字节的一类设备。属于低速设备的典型设备有键盘、鼠标器、语音的输入和输出等设备。第二类是中速设备,这是指其传输速率在每秒钟数千个字节至数十万个字节的一类设备。典型的中速设备有行式打印机、激光打印机等。第三类是高速设备,这是指其传输速率在数百个千字节至千兆字节的一类设备。典型的高速设备有磁带机、磁盘机、光盘机等。第五章设 备 管 理 3)按信息交换的单位分类按信息交换的单位,可将I/O设备分成两类。第一类是块设备(Block Device),这类设备用于存储信息。由于信息的存取总是以数据块为单位,故而得名。它属于有结构设备。典型的块设备是磁盘,每个盘块的大小为512 B4

4、 KB。磁盘设备的基本特征是其传输速率较高,通常每秒钟为几兆位;另一特征是可寻址,即对它可随机地读/写任一块;此外,磁盘设备的I/O常采用DMA方式。第二类是字符设备(Character Device),用于数据的输入和输出。其基本单位是字符,故称为字符设备。它属于无结构类型。字符设备的种类繁多,如交互式终端、打印机等。字符设备的基本特征是其传输速率较低,通常为几个字节至数千字节;另一特征是不可寻址,即输入/输出时不能指定数据的输入源地址及输出的目标地址;此外,字符设备在输入/输出时,常采用中断驱动方式。第五章设 备 管 理 4)按设备的共享属性分类这种分类方式可将I/O设备分为如下三类:(1

5、)独占设备。这是指在一段时间内只允许一个用户(进程)访问的设备,即临界资源。因而,对多个并发进程而言,应互斥地访问这类设备。系统一旦把这类设备分配给了某进程后,便由该进程独占,直至用完释放。应当注意,独占设备的分配有可能引起进程死锁。第五章设 备 管 理(2)共享设备。这是指在一段时间内允许多个进程同时访问的设备。当然,对于每一时刻而言,该类设备仍然只允许一个进程访问。显然,共享设备必须是可寻址的和可随机访问的设备。典型的共享设备是磁盘。对共享设备不仅可获得良好的设备利用率,而且它也是实现文件系统和数据库系统的物质基础。(3)虚拟设备。这是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若

6、干个用户(进程)同时使用。第五章设 备 管 理 2 2设备与控制器之间的接口设备与控制器之间的接口通常,设备并不是直接与CPU进行通信,而是与设备控制器通信,因此,在I/O设备中应含有与设备控制器间的接口,在该接口中有三种类型的信号(见图5-1 所示),各对应一条信号线。第五章设 备 管 理 图5-1设备与控制器间的接口 缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线至设备控制器I/O设备第五章设 备 管 理 1)数据信号线这类信号线用于在设备和设备控制器之间传送数据信号。对输入设备而言,由外界输入的信号经转换器转换后所形成的数据,通常先送入缓冲器中,当数据量达到一定的比特(字符)数

7、后,再从缓冲器通过一组数据信号线传送给设备控制器,如图5-1所示。对输出设备而言,则是将从设备控制器经过数据信号线传送来的一批数据先暂存于缓冲器中,经转换器作适当转换后,再逐个字符地输出。第五章设 备 管 理 2)控制信号线这是作为由设备控制器向I/O设备发送控制信号时的通路。该信号规定了设备将要执行的操作,如读操作(指由设备向控制器传送数据)或写操作(从控制器接收数据),或执行磁头移动等操作。3)状态信号线这类信号线用于传送指示设备当前状态的信号。设备的当前状态有正在读(或写);设备已读(写)完成,并准备好新的数据传送。第五章设 备 管 理 5.1.25.1.2设备控制器设备控制器1 1设备

8、控制器的基本功能设备控制器的基本功能1)接收和识别命令CPU可以向控制器发送多种不同的命令,设备控制器应能接收并识别这些命令。为此,在控制器中应具有相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。例如,磁盘控制器可以接收CPU发来的Read、Write、Format等15条不同的命令,而且有些命令还带有参数;相应地,在磁盘控制器中有多个寄存器和命令译码器等。第五章设 备 管 理 2)数据交换这是指实现CPU与控制器之间、控制器与设备之间的数据交换。对于前者,是通过数据总线,由CPU并行地把数据写入控制器,或从控制器中并行地读出数据;对于后者,是设备将数据输入到控制器,或从

9、控制器传送给设备。为此,在控制器中须设置数据寄存器。第五章设 备 管 理 3)标识和报告设备的状态控制器应记下设备的状态供CPU了解。例如,仅当该设备处于发送就绪状态时,CPU才能启动控制器从设备中读出数据。为此,在控制器中应设置一状态寄存器,用其中的每一位来反映设备的某一种状态。当CPU将该寄存器的内容读入后,便可了解该设备的状态。第五章设 备 管 理 4)地址识别就像内存中的每一个单元都有一个地址一样,系统中的每一个设备也都有一个地址,而设备控制器又必须能够识别它所控制的每个设备的地址。此外,为使CPU能向(或从)寄存器中写入(或读出)数据,这些寄存器都应具有唯一的地址。例如,在IB-MP

10、C机中规定,硬盘控制器中各寄存器的地址分别为32032F之一。控制器应能正确识别这些地址,为此,在控制器中应配置地址译码器。第五章设 备 管 理 5)数据缓冲由于I/O设备的速率较低而CPU和内存的速率却很高,故在控制器中必须设置一缓冲器。在输出时,用此缓冲器暂存由主机高速传来的数据,然后才以I/O设备所具有的速率将缓冲器中的数据传送给I/O设备;在输入时,缓冲器则用于暂存从I/O设备送来的数据,待接收到一批数据后,再将缓冲器中的数据高速地传送给主机。第五章设 备 管 理 6)差错控制设备控制器还兼管对由I/O设备传送来的数据进行差错检测。若发现传送中出现了错误,通常是将差错检测码置位,并向C

11、PU报告,于是CPU将本次传送来的数据作废,并重新进行一次传送。这样便可保证数据输入的正确性。第五章设 备 管 理 2 2设备控制器的组成设备控制器的组成1)设备控制器与处理机的接口该接口用于实现CPU与设备控制器之间的通信。共有三类信号线:数据线、地址线和控制线。数据线通常与两类寄存器相连接,第一类是数据寄存器(在控制器中可以有一个或多个数据寄存器,用于存放从设备送来的数据(输入)或从CPU送来的数据(输出);第二类是控制/状态寄存器(在控制器中可以有一个或多个这类寄存器,用于存放从CPU送来的控制信息或设备的状态信息)。第五章设 备 管 理 2)设备控制器与设备的接口在一个设备控制器上,可

12、以连接一个或多个设备。相应地,在控制器中便有一个或多个设备接口,一个接口连接一台设备。在每个接口中都存在数据、控制和状态三种类型的信号。控制器中的I/O逻辑根据处理机发来的地址信号去选择一个设备接口。第五章设 备 管 理 3)I/O逻辑在设备控制器中的I/O逻辑用于实现对设备的控制。它通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送I/O命令;I/O逻辑对收到的命令进行译码。每当CPU要启动一个设备时,一方面将启动命令发送给控制器;另一方面又同时通过地址线把地址发送给控制器,由控制器的I/O逻辑对收到的地址进行译码,再根据所译出的命令对所选设备进行控制。设备控制器的组成示于图5-2中。

13、第五章设 备 管 理 图5-2设备控制器的组成 数据寄存器控制/状态寄存器数据线I/O逻辑控制器与设备接口1控制器与设备接口i数据状态控制数据状态控制地址线控制线CPU与控制器接口控制器与设备接口第五章设 备 管 理 5.1.35.1.3I/OI/O通道通道1 1I/OI/O通道通道(I/O Channel)(I/O Channel)设备的引入设备的引入虽然在CPU与I/O设备之间增加了设备控制器后,已能大大减少CPU对I/O的干预,但当主机所配置的外设很多时,CPU的负担仍然很重。为此,在CPU和设备控制器之间又增设了通道。其主要目的是为了建立独立的I/O操作,不仅使数据的传送能独立于CPU

14、,而且也希望有关对I/O操作的组织、管理及其结束处理尽量独立,以保证CPU有更多的时间去进行数据处理;或者说,其目的是使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来。在设置了通道后,CPU只需向通道发送一条I/O指令。通道在收到该指令后,便从内存中取出本次要执行的通道程序,然后执行该通道程序,仅当通道完成了规定的I/O任务后,才向CPU发中断信号。第五章设 备 管 理 实际上,I/O通道是一种特殊的处理机,它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。但I/O通道又与一般的处理机不同,主要表现在以下两个方面:一是其指令类型

15、单一,这是由于通道硬件比较简单,其所能执行的命令主要局限于与I/O操作有关的指令;二是通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的,换言之,是通道与CPU共享内存。第五章设 备 管 理 2 2通道类型通道类型1)字节多路通道(Byte Multiplexor Channel)这是一种按字节交叉方式工作的通道。它通常都含有许多非分配型子通道,其数量可从几十到数百个,每一个子通道连接一台I/O设备,并控制该设备的I/O操作。这些子通道按时间片轮转方式共享主通道。当第一个子通道控制其I/O设备完成一个字节的交换后,便立即腾出主通道,让给第二个子通道使用;当第二个子通道也完成一个字节的

16、交换后,同样也把主通道让给第三个子通道;依此类推。当所有子通道轮转一周后,重又返回来由第一个子通道去使用字节多路主通道。这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率不是太高时,便不致丢失信息。第五章设 备 管 理 图5-3示出了字节多路通道的工作原理。它所含有的多个子通道A,B,C,D,E,N,分别通过控制器各与一台设备相连。假定这些设备的速率相近,且都同时向主机传送数据。设备A所传送的数据流为A1A2A3;设备B所传送的数据流为B1B2B3把这些数据流合成后(通过主通道)送往主机的数据流为A1B1C1D1 A2B2C2D2 A3B3C3D3。第五章设 备 管

17、 理 图5-3字节多路通道的工作原理 控制器A控制器B控制器C控制器D控制器NA1A2A3子通道AB1B2B3子通道BC1C2C3子通道CN1N2N3子通道NA1B1C1A2B2C2设备第五章设 备 管 理 2)数组选择通道(Block Selector Channel)字节多路通道不适于连接高速设备,这推动了按数组方式进行数据传送的数组选择通道的形成。这种通道虽然可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传

18、送完毕释放该通道。可见,这种通道的利用率很低。第五章设 备 管 理 3)数组多路通道(Block Multiplexor Channel)数组选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据。数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。也正因此,才使该通道能被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。第五章设 备 管 理 3 3“瓶颈瓶颈”问题问题由于通道价格昂贵,致使机器中所设置的通道数量势

19、必较少,这往往又使它成了I/O的瓶颈,进而造成整个系统吞吐量的下降。例如,在图5-4 中,假设设备1至设备4是四个磁盘,为了启动磁盘4,必须用通道1和控制器2;但若这两者已被其它设备占用,必然无法启动磁盘4。类似地,若要启动盘1和盘2,由于它们都要用到通道1,因而也不可能启动。这些就是由于通道不足所造成的“瓶颈”现象。第五章设 备 管 理 图5-4单通路I/O系统 设备1设备2设备3设备4设备5设备6设备7控制器1控制器2控制器3控制器4通道1通道2存储器第五章设 备 管 理 解决“瓶颈”问题的最有效的方法,便是增加设备到主机间的通路而不增加通道,如图5-5所示。换言之,就是把一个设备连接到多

20、个控制器上,而一个控制器又连接到多个通道上。图中的设备1、2、3和4,都有四条通往存储器的通路。例如,通过控制器1和通道1到存储器;也可通过控制器2和通道1到存储器。多通路方式不仅解决了“瓶颈”问题,而且提高了系统的可靠性,因为个别通道或控制器的故障不会使设备和存储器之间没有通路。第五章设 备 管 理 图5-5多通路I/O系统 I/O设备控制器1控制器2通道1通道2存储器I/O设备I/O设备I/O设备第五章设 备 管 理 5.1.45.1.4总线系统总线系统由图5-6 可以看出,在计算机系统中的各部件,如CPU、存储器以及各种I/O设备之间的联系,都是通过总线来实现的。总线的性能是用总线的时钟

21、频率、带宽和相应的总线传输速率等指标来衡量的。随着计算机中CPU和内存速率的提高,字长的增加,以及不断地引入新型设备,促使人们对总线的时钟频率、带宽和传输速率的要求也不断提高。这便推动了总线的不断发展,使之由早期的ISA总线发展为EISA总线、VESA总线,进而又演变成当前广为流行的PCI总线。第五章设 备 管 理 图5-6总线型I/O系统结构 CPU存储器磁盘控制器打印机控制器其它控制器磁盘驱动器打印机系统总线第五章设 备 管 理 1 1ISAISA和和EISAEISA总线总线1)ISA(Industry Standard Architecture)总线这是为在1984年推出的80286型微

22、机而设计的总线结构。其总线的带宽为8位,最高传输速率为2 Mb/s。之后不久又推出了16位的(EISA)总线,其最高传输速率为8 Mb/s,后又升至16 Mb/s,能连接12台设备。2)EISA(Extended ISA)总线到20世纪80年代末期,ISA总线已难于满足带宽和传输速率的要求,于是人们又开发出扩展ISA(EISA)总线,其带宽为32位,总线的传输速率高达32 Mb/s,同样可以连接12台外部设备。第五章设 备 管 理 2 2局部总线局部总线(Local Bus)(Local Bus)多媒体技术的兴起,特别是全运动视频处理、高保真音响、高速LAN,以及高质量图形处理等技术,都要求总

23、线具有更高的传输速率,这时的EISA总线已难于满足要求,于是,局部总线便应运而生。所谓局部总线,是指将多媒体卡、高速LAN网卡、高性能图形板等,从ISA总线上卸下来,再通过局部总线控制器直接接到CPU总线上,使之与高速CPU总线相匹配,而打印机、FAX/Modem、CDROM等仍挂在ISA总线上。在局部总线中较有影响的是VESA总线和PCI总线。第五章设 备 管 理 1)VESA(Video Electronic Standard Association)总线该总线的设计思想是以低价位迅速占领市场。VESA总线的带宽为32位,最高传输速率为132 Mb/s。它在20世纪90年代初被推出时,广泛

24、应用于486微机中。但VESA总线仍存在较严重的缺点,比如,它所能连接的设备数仅为24台,在控制器中无缓冲,故难于适应处理器速度的不断提高,也不能支持后来出现的Pentium微机。第五章设 备 管 理 2)PCI(Peripheral Component Interface)总线随着Pentium系列芯片的推出,Intel公司分别在1992年和1995年颁布了PCI总线的V1.0和V2.1规范,后者支持64位系统。PCI在CPU和外设间插入一复杂的管理层,用于协调数据传输和提供一致的接口。在管理层中配有数据缓冲,通过该缓冲可将线路的驱动能力放大,使PCI最多能支持10种外设,并使高时钟频率的C

25、PU能很好地运行,最大传输速率可达132 Mb/s。PCI既可连接ISA、EISA等传统型总线,又可支持Pentium的64位系统,是基于奔腾等新一代微处理器而发展的总线。第五章设 备 管 理 5.2I/O控制方式控制方式 5.2.15.2.1程序程序I/OI/O方式方式早期的计算机系统中,由于无中断机构,处理机对I/O设备的控制采取程序I/O(Programmed I/O)方式,或称为忙等待方式,即在处理机向控制器发出一条I/O指令启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy置为1,然后便不断地循环测试busy。当busy=1时,表示输入机尚未输完一个字(符),处理机应继

26、续对该标志进行测试,直至busy=0,表明输入机已将输入数据送入控制器的数据寄存器中。于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字(符)的I/O。接着再去启动读下一个数据,并置busy=1。图5-7(a)示出了程序I/O方式的流程。第五章设 备 管 理 图5-7程序I/O和中断驱动方式的流程 向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向存储器中写字传送完成?未就绪就绪出错CPUI/OI/OCPUI/OCPUCPU内存完成未完向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读字向内存中写字传送完成?就绪出错CPUI

27、/OI/OCPUI/OCPUCPU内存完成未完中断CPU做其它事向I/O控制器发布读块命令CPUDMACPU做其它事读DMA控制器的状态中断DMACPU下一条指令(a)程序I/O方式(b)中断驱动方式(c)DMA方式下一条指令下一条指令第五章设 备 管 理 5.2.25.2.2中断驱动中断驱动I/OI/O控制方式控制方式现代计算机系统中,都毫无例外地引入了中断机构,致使对I/O设备的控制,广泛采用中断驱动(Interrupt Driven)方式,即当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去

28、控制指定I/O设备。此时,CPU与I/O设备并行操作。例如,在输入时,当设备控制器收到CPU发来的读命令后,便去控制相应的输入设备读数据。一旦数据进入数据寄存器,控制器便通过控制线向CPU发送一中断信号,由CPU检查输入过程中是否出错,若无错,便向控制器发送取走数据的信号,然后再通过控制器及数据线将数据写入内存指定单元中。图 5-7(b)示出了中断驱动方式的流程。第五章设 备 管 理 在I/O设备输入每个数据的过程中,由于无需CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个

29、系统的资源利用率及吞吐量。例如,从终端输入一个字符的时间约为100 ms,而将字符送入终端缓冲区的时间小于0.1 ms。若采用程序I/O方式,CPU约有99.9 ms的时间处于忙等待的过程中。但采用中断驱动方式后,CPU可利用这99.9 ms的时间去做其它的事情,而仅用0.1 ms的时间来处理由控制器发来的中断请求。可见,中断驱动方式可以成百倍地提高CPU的利用率。第五章设 备 管 理 5.2.35.2.3直接存储器访问直接存储器访问(DMA)I/O(DMA)I/O控制方式控制方式1 1DMA(Direct Memory Access)DMA(Direct Memory Access)控制方式

30、的引入控制方式的引入虽然中断驱动I/O比程序I/O方式更有效,但须注意,它仍是以字(节)为单位进行I/O的,每当完成一个字(节)的I/O时,控制器便要向CPU请求一次中断。换言之,采用中断驱动I/O方式时的CPU是以字(节)为单位进行干预的。如果将这种方式用于块设备的I/O,显然是极其低效的。例如,为了从磁盘中读出1 KB的数据块,需要中断CPU 1K次。为了进一步减少CPU对I/O的干预而引入了直接存储器访问方式,见图 5-7(c)所示。该方式的特点是:(1)数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;第五章设 备 管 理(2)所传送的数据是从设备直接送入

31、内存的,或者相反;(3)仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。第五章设 备 管 理 2 2DMADMA控制器的组成控制器的组成DMA控制器由三部分组成:主机与DMA控制器的接口;DMA控制器与块设备的接口;I/O控制逻辑。图5-8 示出了DMA控制器的组成。这里主要介绍主机与控制器之间的接口。第五章设 备 管 理 图5-8DMA控制器的组成 DRMARDCCRI/O控制逻辑主机控制器接口控制器与块设备接口count内存

32、CPU命令系统总线DMA控制器第五章设 备 管 理 为了实现在主机与控制器之间成块数据的直接交换,必须在DMA控制器中设置如下四类寄存器:(1)命令/状态寄存器(CR)。用于接收从CPU发来的I/O命令,或有关控制信息,或设备的状态。(2)内存地址寄存器(MAR)。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。(3)数据寄存器(DR)。用于暂存从设备到内存,或从内存到设备的数据。(4)数据计数器(DC)。存放本次CPU要读或写的字(节)数。第五章设 备 管 理 3 3DMADMA工作过程工作过程我们以从磁盘读入数据为例,来说明DMA方式的工作流

33、程。当CPU要从磁盘读入一数据块时,便向磁盘控制器发送一条读命令。该命令被送到其中的命令寄存器(CR)中。同时,还须发送本次要将数据读入的内存起始目标地址,该地址被送入内存地址寄存器(MAR)中;本次要读数据的字(节)数则送入数据计数器(DC)中,还须将磁盘中的源地址直接送至DMA控制器的I/O控制逻辑上。然后,启动DMA控制器进行数据传送,以后,CPU便可去处理其它任务。此后,整个数据传送过程便由DMA控制器进行控制。第五章设 备 管 理 当DMA控制器已从磁盘中读入一个字(节)的数据并送入数据寄存器(DR)后,再挪用一个存储器周期,将该字(节)传送到MAR所指示的内存单元中。接着便对MAR

34、内容加1,将DC内容减1。若减1后DC内容不为0,表示传送未完,便继续传送下一个字(节);否则,由DMA控制器发出中断请求。图5-9是DMA方式的工作流程。第五章设 备 管 理 图5-9 DMA方式的工作流程图 设置M AR和DC初值启动DMA传送命令挪用存储器周期传送数据字存储器地址增1字计数寄存器减1DC0?请求中断在继续执行用户程序的同时,准备又一次传送否是第五章设 备 管 理 5.2.45.2.4I/OI/O通道控制方式通道控制方式1 1I/OI/O通道控制方式的引入通道控制方式的引入虽然DMA方式比起中断方式来已经显著地减少了CPU的干预,即已由以字(节)为单位的干预减少到以数据块为

35、单位的干预,但CPU每发出一条I/O指令,也只能去读(或写)一个连续的数据块。而当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域,或者相反时,则须由CPU分别发出多条I/O指令及进行多次中断处理才能完成。第五章设 备 管 理 I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要

36、执行的通道程序的首址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务。第五章设 备 管 理 2 2通道程序通道程序通道是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的。通道程序是由一系列通道指令(或称为通道命令)所构成的。通道指令与一般的机器指令不同,在它的每条指令中都包含下列诸信息:(1)操作码。操作码规定了指令所执行的操作,如读、写、控制等操作。(2)内存地址。内存地址标明字符送入内存(读操作)和从内存取出(写操作)时的内存首址。(3)计数。该信息表示本条指令所要读(或写)数据的字节数。第五章设 备 管 理(4)通道程序结束位P。该位用于

37、表示通道程序是否结束。P=1表示本条指令是通道程序的最后一条指令。(5)记录结束标志R。R=0表示本通道指令与下一条指令所处理的数据是同属于一个记录;R=1表示这是处理某记录的最后一条指令。第五章设 备 管 理 下面示出了一个由六条通道指令所构成的简单的通道程序。该程序的功能是将内存中不同地址的数据写成多个记录。其中,前三条指令是分别将813892单元中的80个字符和10341173单元中的140个字符及58305889单元中的60个字符写成一个记录;第4条指令是单独写一个具有300个字符的记录;第5、6条指令共写含500个字符的记录。第五章设 备 管 理 操 作 P R 计 数 内 存 地

38、址 WRITE 0 0 80 813 WRITE 0 0 140 1034 WRITE 0 1 60 5830 WRITE 0 1 300 2000 WRITE 0 0 250 1650 WRITE 1 1 250 2720 第五章设 备 管 理 5.3缓缓 冲冲 管管 理理 5.3.15.3.1缓冲的引入缓冲的引入(1)缓和CPU与I/O设备间速度不匹配的矛盾。事实上,凡在数据到达速率与其离去速率不同的地方,都可设置缓冲区,以缓和它们之间速率不匹配的矛盾。众所周知,CPU的运算速率远远高于I/O设备的速率,如果没有缓冲区,则在输出数据时,必然会由于打印机的速度跟不上而使CPU停下来等待;然而

39、在计算阶段,打印机又空闲无事。显然,如果在打印机或控制器中设置一缓冲区,用于快速暂存程序的输出数据,以后由打印机“慢慢地”从中取出数据打印,这样,就可提高CPU的工作效率。类似地,在输入设备与CPU之间也设置缓冲区,也可使CPU的工作效率得以提高。第五章设 备 管 理(2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。在远程通信系统中,如果从远地终端发来的数据仅用一位缓冲来接收,如图5-10(a)所示,则必须在每收到一位数据时便中断一次CPU,这样,对于速率为9.6 Kb/s的数据通信来说,就意味着其中断CPU的频率也为9.6 Kb/s,即每100 s就要中断CPU一次,而且CPU必

40、须在100 s内予以响应,否则缓冲区内的数据将被冲掉。倘若设置一个具有8位的缓冲(移位)寄存器,如图5-10(b)所示,则可使CPU被中断的频率降低为原来的1/8;若再设置一个8位寄存器,如图5-10(c)所示,则又可把CPU对中断的响应时间放宽到800 s。第五章设 备 管 理 图5-10利用缓冲寄存器实现缓冲 1位缓冲9.6 Kb/s8位缓冲寄存器送内存9.6 Kb/s8位缓冲寄存器9.6 Kb/s送内存(b)(a)(c)第五章设 备 管 理(3)提高CPU和I/O设备之间的并行性。缓冲的引入可显著地提高CPU和I/O设备间的并行操作程度,提高系统的吞吐量和设备的利用率。例如,在CPU和打

41、印机之间设置了缓冲区后,便可使CPU与打印机并行工作。第五章设 备 管 理 5.3.25.3.2单缓冲和双缓冲单缓冲和双缓冲1 1单缓冲单缓冲(Single Buffer)(Single Buffer)在单缓冲情况下,每当用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区,如图5-11 所示。在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理(计算)的时间为C。由于T和C是可以并行的(见图5-11),当TC时,系统对每一块数据的处理时间为M+T,反之则为M+C,故可把系统对每一块数据的处理时间表示为

42、Max(C,T)+M。第五章设 备 管 理 图5-11单缓冲工作示意图 工作区处理(C)缓冲区传送(M)输入(T)I/O设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程第五章设 备 管 理 2 2双缓冲双缓冲(Double Buffer)(Double Buffer)为了加快输入和输出速度,提高设备利用率,人们又引入了双缓冲区机制,也称为缓冲对换(Buffer Swapping)。在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。此时操作系统可以从第一缓冲区中移出数据,并送入用户进程(见图5-12)。接着由CPU对数据进行计算。在双缓冲时,系统处理一块数据的时间可

43、以粗略地认为是Max(C,T)。如果CT,则可使CPU不必等待设备输入。对于字符设备,若采用行输入方式,则采用双缓冲通常能消除用户的等待时间,即用户在输入完第一行之后,在CPU执行第一行中的命令时,用户可继续向第二缓冲区输入下一行数据。第五章设 备 管 理 图5-12双缓冲工作示意图 工作区用户进程缓冲区1缓冲区2I/O 设备T1(缓冲1)M1C1M2C2M3C3T2(缓冲2)T3(缓冲3)M4C4T4(缓冲4)(a)(b)第五章设 备 管 理 图5-13双机通信时缓冲区的设置 缓冲区缓冲区A机B机(a)单缓冲发送缓冲区接收缓冲区接收缓冲区发送缓冲区A机B机(b)双缓冲第五章设 备 管 理 5

44、.3.35.3.3循环缓冲循环缓冲1 1循环缓冲的组成循环缓冲的组成(1)多个缓冲区。在循环缓冲中包括多个缓冲区,其每个缓冲区的大小相同。作为输入的多缓冲区可分为三种类型:用于装输入数据的空缓冲区R、已装满数据的缓冲区G以及计算进程正在使用的现行工作缓冲区C,如图5-14所示。第五章设 备 管 理 图5-14循环缓冲 RGGGRG165423NextiNextgRGGGRC165423NextiNextgCurrent第五章设 备 管 理(2)多个指针。作为输入的缓冲区可设置三个指针:用于指示计算进程下一个可用缓冲区G的指针Nextg、指示输入进程下次可用的空缓冲区R的指针Nexti,以及用于

45、指示计算进程正在使用的缓冲区C的指针Current。第五章设 备 管 理 2 2循环缓冲区的使用循环缓冲区的使用计算进程和输入进程可利用下述两个过程来使用循环缓冲区。(1)Getbuf过程。当计算进程要使用缓冲区中的数据时,可调用Getbuf过程。该过程将由指针Nextg所指示的缓冲区提供给进程使用,相应地,须把它改为现行工作缓冲区,并令Current指针指向该缓冲区的第一个单元,同时将Nextg移向下一个G缓冲区。类似地,每当输入进程要使用空缓冲区来装入数据时,也调用Getbuf过程,由该过程将指针Nexti所指示的缓冲区提供给输入进程使用,同时将Nexti指针移向下一个R缓冲区。第五章设

46、备 管 理(2)Releasebuf过程。当计算进程把C缓冲区中的数据提取完毕时,便调用Releasebuf过程,将缓冲区C释放。此时,把该缓冲区由当前(现行)工作缓冲区C改为空缓冲区R。类似地,当输入进程把缓冲区装满时,也应调用Releasebuf过程,将该缓冲区释放,并改为G缓冲区。第五章设 备 管 理 3 3进程同步进程同步使用输入循环缓冲,可使输入进程和计算进程并行执行。相应地,指针Nexti和指针Nextg将不断地沿着顺时针方向移动,这样就可能出现下述两种情况:(1)Nexti指针追赶上Nextg指针。这意味着输入进程输入数据的速度大于计算进程处理数据的速度,已把全部可用的空缓冲区装

47、满,再无缓冲区可用。此时,输入进程应阻塞,直到计算进程把某个缓冲区中的数据全部提取完,使之成为空缓冲区R,并调用Releasebuf过程将它释放时,才将输入进程唤醒。这种情况被称为系统受计算限制。第五章设 备 管 理(2)Nextg指针追赶上Nexti指针。这意味着输入数据的速度低于计算进程处理数据的速度,使全部装有输入数据的缓冲区都被抽空,再无装有数据的缓冲区供计算进程提取数据。这时,计算进程只能阻塞,直至输入进程又装满某个缓冲区,并调用Releasebuf过程将它释放时,才去唤醒计算进程。这种情况被称为系统受I/O限制。第五章设 备 管 理 5.3.45.3.4缓冲池缓冲池1 1缓冲池的组

48、成缓冲池的组成对于既可用于输入又可用于输出的公用缓冲池,其中至少应含有以下三种类型的缓冲区:空(闲)缓冲区;装满输入数据的缓冲区;装满输出数据的缓冲区。第五章设 备 管 理 为了管理上的方便,可将相同类型的缓冲区链成一个队列,于是可形成以下三个队列:(1)空缓冲队列emq。这是由空缓冲区所链成的队列。其队首指针F(emq)和队尾指针L(emq)分别指向该队列的首缓冲区和尾缓冲区。(2)输入队列inq。这是由装满输入数据的缓冲区所链成的队列。其队首指针F(inq)和队尾指针L(inq)分别指向该队列的首缓冲区和尾缓冲区。第五章设 备 管 理(3)输出队列outq。这是由装满输出数据的缓冲区所链成

49、的队列。其队首指针F(outq)和队尾指针L(outq)分别指向该队列的首缓冲区和尾缓冲区。除了上述三个队列外,还应具有四种工作缓冲区:用于收容输入数据的工作缓冲区;用于提取输入数据的工作缓冲区;用于收容输出数据的工作缓冲区;用于提取输出数据的工作缓冲区。第五章设 备 管 理 2 2GetbufGetbuf过程和过程和PutbufPutbuf过程过程在“数据结构”课程中,曾介绍过队列和对队列进行操作的两个过程,它们是:(1)Addbuf(type,number)过程。该过程用于将由参数number所指示的缓冲区B挂在type队列上。(2)Takebuf(type)过程。该过程用于从type所指

50、示的队列的队首摘下一个缓冲区。第五章设 备 管 理 为使诸进程能互斥地访问缓冲池队列,可为每一队列设置一个互斥信号量MS(type)。此外,为了保证诸进程同步地使用缓冲区,又为每个缓冲队列设置了一个资源信号量RS(type)。既可实现互斥又可保证同步的Getbuf过程和Putbuf过程描述如下:第五章设 备 管 理 Procedure Getbuf(type)beginWait(RS(type);Wait(MS(type);B(number):=Takebuf(type);Signal(MS(type);endProcedure Putbuf(type,number)beginWait(MS(

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|