书签 分享 收藏 举报 版权申诉 / 54
上传文档赚钱

类型第8章 输入输出管理.ppt

  • 上传人(卖家):hyngb9260
  • 文档编号:6160415
  • 上传时间:2023-06-04
  • 格式:PPT
  • 页数:54
  • 大小:7.07MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第8章 输入输出管理.ppt》由用户(hyngb9260)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第8章 输入输出管理 输入输出 管理
    资源描述:

    1、1第八章 I/O管理2第八章 输入输出管理8.1 I/O管理的概念8.1.1 引言计算机外部设备 在计算机系统中除CPU和内存储外所有的设备和装置称为计算机外部设备(外围设备、I/O设备)。38.1.1 引言存储设备:用来存放各种信息的设备称为存储设备,例如,软盘、硬盘、光盘和磁带等;I/O设备:用来向计算机输入和输出信息的设备,如键盘、鼠标、显示器、打印机等。在现代计算机系统中有些设备既可以做存储设备,也可以做I/O设备,例如,软盘、硬盘等。I/O管理就是设备管理,它是操作系统的一个重要的组成部分,负责管理系统中所有的外部设备。48.1.1 引言计算机外部设备种类繁多,特性各异。主要表现在以

    2、下几个方面:1.速度 不同的外部设备的传输速度的差别相当大,如键盘的传输速度不过几十,上百个字符,而磁盘的传输速度则是60万字节/每秒。2.传输单位 有的设备的传输单位是字节,如键盘、打印机、显示器;有的传输单位是字符块,如软盘、硬盘、磁带等;有的传输单位是位,如个人计算机中的Serial Port(s)COM1、COM258.1.1 引言3.容许的操作(操作特性)设备完成的操作种类各不相同,如打印机只允许写操作,键盘只能做读操作,而磁盘既可读,也可写。4.出错条件 不同的设备,其出错条件也不相同,即数据传输失败的原因各种各样,如打印机有缺纸错,磁盘I/O有奇偶校验错等。68.1.1 引言设计

    3、目标:1.字符代码的独立性;现在使用的ASCII码(美国信息交换标准码)2.设备独立性;3.效率;4.设备处理的一致性;78.1.2 I/O管理功能1.状态跟踪 设备控制块是存放设备管理和控制信息的数据结构。系统要掌握设备的状态。2.设备存取实现对设备的存取操作。3.设备分配 在多用户的环境下,负责设备的分配和回收。4.设备控制 设备控制包括设备的驱动、完成和故障中断处理。88.1.3 设备独立性一、设备独立性的概念 设备独立性是指用户在编程序时所使用的设备与实际设备无关。两类设备独立性:1.一个程序应独立于分配给它的某种类型的具体设备。即在用户程序中只指明I/O使用的设备类型即可。如在系统中

    4、配备了两台打印机,用户要打印时只要告诉系统要将信息送到打印机即可。2.程序要尽可能地与它使用的设备类型无关。即在用户程序中只要指出要输入或输出信息,至于信息I/O使用的设备不需用户指明。98.1.3 设备独立性二、设备独立性的实现 在UNIX系统中,把设备与文件统一处理,这比前两种设备独立性又前进了一步,对于用户来说,就没有设备的概念。108.1.3 设备独立性三、设备独立性的优点1.方便用户编程;2.使用程序运行不受具体的机器环境的限制,如UNIX系统环境下,系统提供标准输入和输出,在用户程序中的输入输出都使用这两个标准的I/O,实际运行时,根据具体情况而定。如果配备打印机,则将输出信息送到

    5、打印机打印,如果没有配备打印机,就把输出重定向到某个指定文件,把要打印的信息送到该文件中。3.便于程序移植;118.1.4 设备控制块一、设备控制块 设备控制块是设备管理的数据结构,用来存放设备的管理和控制信息,每类设备有一个设备控制块。128.1.4 设备控制块二、设备转换表(设备开关表)设备开关表存放设备驱动和控制程序入口地址。138.2 缓冲技术 8.2.1 概述 CPU与各种外部设备的速度上的差异很大,设备与设备之间的速度的差异也很大。系统有时会产生大量的数据需要I/O,有时又会很长时间没有I/O。造成I/O负荷的不均匀 要解决这两个方面的问题就要引入缓冲的概念。缓冲是用来在两种不同速

    6、度的设备之间传输信息时平滑传输过程的常用手段。缓冲技术是用来匹配CPU与设备之间速度差异和负荷的不均匀。常用的缓冲技术有三种:双缓冲、环形缓冲、缓冲池148.2.2 双缓冲 系统设置两个缓冲区,BUF1和BUF2,各进程使用这两个缓冲区。这种缓冲技术是最简单的,用于低频度I/O活动的系统。工作过程:首先输入将数据送入BUF1,然后,申请BUF2,在向BUF2输入数据的同时,输出进程可从BUF1中取数据。同理,向BUF1输入与从BUF2中取数据可以并行。教材p203图8.2是双缓冲技术应用的策略图。158.2.3 环形缓冲 在系统中设置若干缓冲区,并把这些缓冲区链接起来,这样若干个缓冲区就形成了

    7、一个环,故称环形缓冲区。168.2.3 环形缓冲环形缓冲技术使用 设置一个输入指针in、一个输出指针out、开始指针strat。系统初始时,strat=in=out。输入时,要判断in是否与out相等,若相等,则要等待。否则,将信息送入in指向的缓冲区,填满后,将缓冲区中的指向下一个缓冲区的指针next置in,如此类推。输出时,首先判断out=in,若相等,则等待(意味着系统中没有数据可取)。否则,取出缓冲区中的信息,将缓冲区中的next置out;178.2.4 缓冲池 系统设置多个缓冲区,形成一个缓冲池。这个池中的缓冲区为系统中所有的进程共享使用。例如,UNIX系统中,在块设备管理中设置了一

    8、个15个缓冲区组成的缓冲池。P204图8.3处理机输出文件队列输入文件队列装入队列出空队列输出设备输入设备后备队列188.3 设备分配8.3.1 分配原则一、静态分配和动态分配1、静态分配 当一个作业(或进程)运行时,根据作业要求的设备,系统如果能满足,则将其要求的设备全部分配给它,然后开始运行,运行完成释放其占用的所有设备。这种分配方式的优点是系统绝不会出现死锁,缺点是设备利用率太低。2、动态分配 这种分配方法是在作业(或进程)运行的过程中,需要使用设备时,就向系统申请,系统根据某种分配原则进行分配。这种方法的优点是设备的利用率高,缺点是系统有出现死锁的可能。198.3 设备分配8.3.1

    9、分配原则二、设备分配算法1、先来先服务算法2、优先级高者优先三、设备分配的安全性 设备分配应避免死锁。对于独占设备对于独占设备,不论采用静态分配还是采用动态分配都不会出现死锁。对于共享设备对于共享设备,采用动态分配有可能造成死锁。独享分配、共享分配、虚拟分配208.3 设备分配8.3.2 独享分配 输入机 行式打印机 磁带机 绘图仪设备在不同作业间切换时间过长;慢设备。218.3 设备分配8.3.3 共享分配 磁盘 磁鼓快速直接存取设备 介质共享 磁盘驱动器共享 通道共享22I/O通道8.3 设备分配8.3.4 虚拟分配 独占设备的优化管理方法1.Spool(假脱机系统)(与主机脱机和通道联机

    10、)独占设备输入/输出井用户进程预输入程序缓输出程序井管理程序238.4 I/O控制8.4.1 I/O控制方式一、循环测试I/O方式 早期的设备控制方式采用,主机处理器运行用户程序同时需要不断的测试设备状态。二、I/O中断方式 为了提高CPU和设备的利用率,就应使CPU与设备并行工作,采用I/O中断方式。采用这种方式要求控制寄存器中有一个中断位。主机CPU在用户程序I/O期间可以运行其他用户进程,该I/O进程完成I/O后发中断请求主机干预。248.4 I/O控制8.4.1 I/O控制方式在I/O中断方式下,数据的输入(或输出)步骤如下:1.要求输入数据的进程把一个启动命令和允许中断位“1”写入相

    11、应设备的控制状态寄存器中,从而启动了该设备;2.该进程因等待输入的完成进入睡眠状态,主机CPU运行其他进程;3.当输入完成后,输入设备向CPU发出完成中断请求信号;4.处理机响应中断,处理该中断,并唤醒等待输入完成的进程;5.在以后的某个时期,该程序被调度到后,继续运行。258.4 I/O控制8.4.1 I/O控制方式 这种方式的优点是大大地提高了CPU的利用效率,缺点是每次I/O都要CPU的干预,如果系统中配备了多台(套)设备时,CPU的利用率也会降低。解决的方法是采用通道技术。268.4 I/O控制8.4.1 I/O控制方式三、通道 通道是计算机系统中专门用于I/O的处理机。在大、中、小型

    12、计算机中一般称为通道,结构如图所示。四、DMA 在个人计算机系统中采用微通道,针对PC机高速随机存储设备的专用通道。278.4.2 I/O子系统一、设备接口1.块设备接口;2.主存映射接口;3.字符流设备接口;4.网络套接字接口;288.4.2 I/O子系统二、I/O控制功能 控制设备I/O工作的核心模块通常称为设备驱动程序。它包括三个方面的功能:1.解释用户I/O命令2.设备驱动3.中断处理 298.4.2 I/O子系统 接受用户的I/O请求命令,并把用户的请求转换成I/O请求块,挂到相应设备的I/O请求队列。每类设备有一个I/O请求队列,在系统初始化时,将系统中所有设备的I/O请求队列置为

    13、空。在系统初启时,系统为每类设备创建一个进程,执行程序就是该设备的设备驱动程序。由于系统初启时,相应的I/O请求队列为空,则在该队列上睡眠。一旦有I/O请求块挂入,唤醒该设备驱动进程。它被调度到时,从队列中取出一个I/O请求块,并按该块的内容执行一次I/O操作,发出I/O完成(或出错)中断信号。然后,检查请求队,若为空,则进入睡眠状态,否则,取下一个请求块。308.4.3 I/O控制过程318.5 unix系统设备管理两种设备类型1.块设备 以字符块(一般情况下是512字节)为基本I/O单位的设备称为块设备,如磁盘、磁带、光盘等;2.字符设备 以字符为基本I/O单位的设备称为字符设备。328.

    14、5 UNIX系统的设备管理8.5.1 UNIX系统设备管理的特点1.外部设备看作文件,由文件系统统一处理;2.系统设备配置改变灵活、方便;3.有效地使用了块设备缓冲技术,大大地提高了块设备存取操作的速度。338.5.2 UNIX设备驱动程序接口中断向量表348.5.3 设备管理数据结构1.主设备号和次设备号 在系统内部使用的设备名称为设备号。它由两个部分组成,主设备号和次设备号。主设备号:设备的类型编号;次设备号:同类设备的设备台号。358.5.3 设备管理数据结构2.设备开关表 设备驱动程序入口地址字符设备开关表 struct cdevsw int(*d_open)();int(*d_clo

    15、se)();int(*d_read)();int(*d_write)();int(*d_sgtty)();cdevsw;块设备表struct devtal char d_active;/*执行一个I/O请求的标志*/char d_errcnt;/*出错计数器*/struct buf*b_forw;/*设备缓冲队列前指针*/struct buf*b_back;/*设备缓冲队列后指针*/struct buf*b_actf;/*I/O请求队列头指针*/struct buf*b_actl;/*I/O请求队列尾指针*/bdevsw;368.5.3 设备管理数据结构3.设备管理数据结构的关系378.5.4

    16、 缓冲区管理一、缓冲区结构 在UNIX系统中采用缓冲池的缓冲技术,系统中设置一个有15个缓冲区的缓冲池。每个缓冲区占514个字节,其中512个字节用来存放数据,2个字节用作校验用。为了管理缓冲区,系统还设置了一个数据结构,称为缓冲区首部,其结构如下:388.5.4 缓冲区管理一、缓冲区结构struct buf int b_flags;/*标志*/struct buf*b_forw;/*设备缓冲队列前指针*/struct buf*b_back;/*设备缓冲队列后指针*/struct buf*av_forw;/*空闲缓冲队列前指针*/struct buf*ac_back;/*空闲缓冲队列后指针*/

    17、int b_dev;/*设备号*/int b_wcount;/*请求传送的字节数*/char *b_addr;/*缓冲区的首地址*/char *b_blkno;/*设备的物理块号*/char b_error;/*出错信息*/char *b_resid;/*出错时尚末传送的剩余字数*/bufNBUF;398.5.4 缓冲区管理一、缓冲区结构b_flags包括:B_WRITE 写(将信息写到磁盘上去)B_READ 读(从磁盘上读取信息到缓冲区中)B_DONE I/O操作结束B_ERROR 因I/O出错而中止B_BUSY 相应的缓冲区正在使用中B_WANTED 有进程正在等待使用该buf,清B_BU

    18、SY 时要唤 醒这种进程B_ASYNC 异步I/O标志B_DELWRI 延迟写,在相应缓存移作它用时,要将缓存中 的内容写到相应的磁盘块中。408.5.4 缓冲区管理二、空闲缓冲队列和设备缓冲队列1.空闲缓冲区队列 当系统中某个进程释放缓冲区时,将释放的缓冲区的buf挂到该队列的队尾。分配缓冲区是从该队列队首取出一个buf,分配给申请者。418.5.4 缓冲区管理二、空闲缓冲队列和设备缓冲队列2.设备缓冲区队列 当某个设备使用缓冲区时,将该缓冲区的buf挂入到相应的设备缓冲队列,并且一直保留在该队列中,直至该缓冲区分配给其它设备为止。这种处理的目的是让缓冲区中的信息尽可能长时间地保留在缓冲区中

    19、,以便以后重用。428.5.4 缓冲区管理二、空闲缓冲队列和设备缓冲队列自由缓冲队列设备缓冲队列43三、缓冲区管理算法44三、缓冲区管理算法1.读操作的过程 以读的磁盘块号和设备号找到相应的设备缓冲队列;若已读过(缓冲区中仍保存已读的磁盘块),则把缓冲区的内容复制到用户指定的内存中;(假读)若相应设备缓冲队列中无,说明没有读过,则申请一个空闲缓冲区,作读磁盘块的操作,然后,把读入缓冲区中的内存复制到用户指定的内存区中;(真读)释放缓冲区,把释放的缓冲区挂到空闲缓冲区队列的尾部。45三、缓冲区管理算法2.写操作以用户申请的写的磁盘块号和设备号查相应设备的缓冲队列;找到相应的块(原来写过),则将该

    20、缓冲区从空闲缓冲队列中摘出,将指定内存的内容写到缓冲区中;若写满缓冲区,则将该缓冲区的内容写到磁盘中去,然后,释放缓冲区,若没有写满一个缓冲区,则将缓冲区置为延迟写标志,并释放该缓冲区。则没有找到,则申请一个空闲的缓冲区,操作同前。46四、缓冲队列的初始状态缓冲区管理的初始化:1.空闲缓冲区队列2.设备缓冲队列,每类设备都有一个设备缓冲区队列。按UNIX系统的规定,每个空闲缓冲区同时要存在于两个队列中,空闲缓冲队列和某个设备缓冲队列(也有的系统在实现时,不设设备缓冲队列,而是设置一个全系统的设备缓冲的散列)。为了保证上述规定,在系统初启时,系统设置了一个特别设备,NODEV。47四、缓冲队列的

    21、初始状态48五、缓冲区分配与释放缓冲区的分配总是先查相应的设备缓冲队列,若存在于设备缓冲队列中,说明该缓冲区中的内容已经有用户使用过,可重复使用,减少物理读、写磁盘的物理操作,加快I/O的速度。释放一个缓冲区时,把释放的缓冲区首部插入空闲缓冲队列的尾部,仍然留在相应的设备缓冲队列中。缓冲区的分配和释放有五种情况。49五、缓冲区分配与释放1.用户申请读(或写)的块在某个设备缓冲队列中(散列中),且该缓冲区空闲。把buf中的b_flags置为“忙”,并将该缓冲首部从空闲缓冲队列中摘出。使用缓冲区中的信息:用户要求读:则把缓冲区中的内容复制到用户指定的内存中;释放该缓冲区,即将其buf 挂到空闲缓冲

    22、队列尾;用户要求写:则把用户指定的内容写到缓冲区中,缓冲区满,则把其内容写到磁盘上,然后释放;没有写满,则把b_flags置延迟写,释放该磁盘块。50五、缓冲区分配与释放2.设备缓冲队列中没有找到申请的块,因此,要为申请者分配一个空闲的缓冲区。从空闲缓冲队列的队首取出一个空闲的缓冲区,并且,b_flags中“延迟写”的标志没有置上。把该缓冲区的buf从原设备缓冲队列中移人申请的设备缓冲队列。使用该缓冲区:读操作:把申请的磁盘块读入缓冲区,然后,释放该缓冲区;写操作:把申请指定的内容写入缓冲区中,写满则写到相应设备中去,否则,b_flags置上“延迟写”的标志,然后释放该缓冲区。”51五、缓冲区

    23、分配与释放3.设备缓冲队列中没有找到申请的块,因此,要为申请者分配一个空闲的缓冲区,但b_flags有“延迟写”的标志。把该缓冲区的buf从空闲缓冲队列中摘去,然后以异步写的方式把缓冲区中的内容写到设备上去,去掉“延迟写”标志,将其挂到空闲缓冲队列的头部。继续取空闲缓冲队列中的空闲缓冲区,直到,找到一个没有“延迟写”写标志的空闲缓冲区为止。然后作读(或写)操作。52五、缓冲区分配与释放4.没有空闲缓冲区,在等待空闲缓冲区事件上睡眠。5.多个进程共享某个缓冲区例如:A进程申请的缓冲区“忙”,即B进程正在使用该缓冲区。A进程进入睡眠状态;B进程使用完后,释放该缓冲区,并唤醒A进程。A进程得到处理机时,而检查该缓冲区。这是一个非常复杂的过程。538.5.5 UNIX的设备I/O控制1.I/O请求队列 I/O请求块:操作类型(读或写)信息地址(读:指源地址,写:指目的地址)传送的字节数 将这些信息形成一个I/O请求块,并将该请求块挂到相应设备的I/O请求队列,若有进程等待在这个队列上,则唤醒该进程。548.5.5 UNIX的设备I/O控制2.设备驱动 设备驱动程序对应的进程是在系统初启时创建的,当没有I/O请求,进入睡眠状态,一旦有I/O请求块挂入该队列,将唤醒它,得到处理机后,取出队列中的一个请求块,做I/O工作,完成后发出完成中断信号。然后取下一个I/O请求块,若无则进入睡眠状态。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第8章 输入输出管理.ppt
    链接地址:https://www.163wenku.com/p-6160415.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库