计算机操作系统设备管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从缓冲区A把数据送到用户进程区,用户进程便 可对数据进行加工计算;与此同时,输入设备填充 缓冲区B。 当缓冲区A空出后,输入设备再次向缓冲区1
输入。操作系统又可把缓冲区B的数据传送到
用户进程区,用户进程开始加工缓冲B的数据。
双缓冲
用户进程 处理机
工作区

缓冲区A 缓冲区B

I/O设备
双缓冲
用户进程 处理机
对于字符设备,缓冲区用于暂存用户输入的一行数 据,输入时,进程挂起等待输入完毕;输出时进程 将一行数据输入到缓冲区,继续执行处理。如果前 面的数据尚未提取完毕,则进程应阻塞。 用户进程 处理机 工作区
传送(M)
单缓冲
输入(T)
I/O设备
缓冲区属于临界资源,不允许多个进 程同时对一个缓冲区操作,读、写在单缓 冲上互斥发生,因此单缓冲无法实现CPU 与设备的并行操作。
循环缓冲
Nexti :指示写进程下次可 用的空缓冲区R
R
Current_R
C
Next i
R
Next g
C G
Current_W
G G
循环缓冲
R
Current_R
C
Next i
R
Nextg :指示读进程 下一个可用的缓冲区G
Next g
C G
Current_W
G G
循环缓冲
R
Current_R: 指示读进程 正在使用的缓冲区
继续它的计算,系统将缓冲区内容写到I/O设
备上。 进程执行读操作输入数据时,向系统申请 一个缓冲区,系统将一个物理记录的内容读 到缓冲区,根据进程要求,把当前需要的逻 辑记录从缓冲区中选出并传送给进程。

在输出数据时,只有在系统还来不及腾空 缓冲而进程又要写数据时,它才需要等待; 在输入数据时,仅当缓冲区空而进程又要 从 中读取数据时,它才被迫等待。 根据系统对缓冲区的不同设置,可把缓冲 技 术分为以下几类: 单缓冲 双缓冲 循环缓冲 缓冲池
循环缓冲
R
Current_R
C
Next i
R
Next g
C G
Current_W
G G

循环缓冲区的使用
(1)访问缓冲区的过程Getbuf : –

Current_R= Nextg ; Nextg = Nextg next; 读操作;· · · · · ·
Current_W = Nexti ; Nexti = Nexti
Current_R
C
Next i
R
Next g
C G
Current_W
G G
循环缓冲
R
Current_R
C
Next i
R
Next g
C G
Current_W
G G
Current_W: 指示写进程 正在使用的缓冲区
进程同步问题
(1)Nexti指针追赶上Nextg指针。
这意味着进程输入数据的速度大于进程取数据的速度,已 把全部缓冲区装满。此时,写进程应阻塞,直到读进 程把某个缓冲区的数据全部提取完,使之成为空缓冲 区R,并调用Releasebuf过程将它释放时,才将写进 程唤醒。 (2)Nextg指针追赶上Nexti指针 这意味着读进程取数据的速度高于写进程输入数据的速度, 使全部缓冲区都被抽空,读进程只能阻塞,直到写进 程装满某个缓冲区,调用Releasebuf过程将它释放时, 才去唤醒计算进程。
工作区

缓冲区A 缓冲区B

I/O设备
如果C<T,由于M远小于T,在将磁盘上的一块数据 传送到缓冲区期间(所花时间为T),计算机已完成将另 一个缓冲区中的数据传送到用户区并对这块数据进行计 算的工作,一块数据的传输和处理时间为T、即
max(C,T),显然,这种情况下可保证块设备连续工作;
如果C>T,当上一块数据计算完毕后,需把一个缓 冲区中的数据传送到用户区,花费时间为M,再对这块
数据进行计算,花费时间为C,所以,一块数据的传输
和处理时间为C+M、即max(C,T)+M,这种情况下进程 不必要等待I/O。
双缓冲
计算机系统中的外围设备较多,读/写 数据速度有很大的差异,在向缓冲区读/写 数据的过程中,高速设备等待的情况仍然 比较严重,设备利用率比较低。
循环缓冲
环形缓冲技术是在主存中分配一组大小 相等的存储区作为缓冲区,并将这些缓冲区 链接起来,每个缓冲区中有一个指向下一个 缓冲的指针,最后一个缓冲区的指针指向第 一个缓冲区,这样n个缓冲区就成了一个环形。 三种类型的缓冲区:用于装输入数据 的空缓冲区R、已经装满数据的缓冲区G、以 及计算进程正在访问的工作缓冲区C。 设置了四个指针。
一次仅允许一个进程 访问的资源称为临界 资源。 硬件资源 如打印机、 磁带机等。 软件资源 如共享变 量、表格、队列、栈 等。
缓冲区属于临界资源,不允许多个进 程同时对一个缓冲区操作,读、写在单缓 冲上互斥发生,因此单缓冲无法实现CPU 与设备的并行操作。
双缓冲--提高设备并行操作
输入数据时,首先填满缓冲区A,操作系统可
制作者:张晓艳 2010年5月
第四章 设备管理
设备管理程序的功能:
(1)提供和进程管理系统的接口。 (2)进行设备分类。按照设备类型和相应的分配算法把设
备和其他有关的硬件分别给请求该设备的进程,并把未分配到
所请求设备或其他有关硬件的进程放入等待队列。 (3)实现设备和设备、设备和CPU等之间的并行操作。 (4)进行缓冲管理,解决低速I/O设备与高速CPU之间传送 数据不匹配问题。
4.3 缓冲管理
引入缓冲技术的目的
•改善中央处理器与外围设备之间速度不配的 矛盾,凡是数据到达和离去速度不匹配的地方均 可采用缓冲技术。 •减少对CPU的中断频率,放宽对CPU中断响 应时间的限制, •提高CPU和I/O设备的并行性。
缓冲技术实现的基本思想:
பைடு நூலகம்
进程执行写操作输出数据时,向系统申
请一个缓冲区,若为顺序写请求,则不断把 数据填到缓冲区,直到被装满。此后,进程
单缓冲
单缓冲是操作系统提供的最简单的一种缓冲形 式。每当一个进程发出一个I/O请求时,操作系统 便在主存中为之分配一缓冲区,该缓冲区用来临 时存放输入/输出数据。 对于块设备,单缓冲机制如下工作: OS为进程分配一缓冲区,块设备输入时从磁 盘把一块数据输入缓冲区的时间为T,OS将缓冲 区的数据传送给用户区的时间为M,计算时间为 C,则T和C时可以并行的。数据处理时间约为 max[C,T]+M。
相关文档
最新文档