设备管理(二)

2019-04-02  本文已影响0人  菜根小友

目录

5.3 缓冲技术

5.4 驱动调度技术


缓冲技术

引入缓冲技术的目的:

缓冲技术实现的基本思想

  1. 进程执行写操作输出数据时,向系统申请一个缓冲区,若为顺序写请求,则不断把数据填到缓冲区,直到被装满。此后,进程继续它的计算,系统将缓冲区内容写到I/O设备上。

  2. 进程执行操作输入数据时,向系统申请一个缓冲区,系统将一个物理记录的内容读到缓冲区,根据进程要求,把当前需要的逻辑记录从缓冲区中选出并传送给进程。

  3. 在输出数据时,只有在系统还来不及腾空缓冲而进程又要写数据时,它才需要等待;

  4. 在输入数据时,仅当缓冲区空而进程又要从中读取数据时,它才被迫等待。

5.3.1 单缓冲
对于块设备,单缓冲机制如下工作:

image.png

5.3.2 双缓冲

输入数据时,首先填满缓冲区1,操作系统可从缓冲区1把数据送到用户进程区,用户进程便可对数据进行加工计算;与此同时,输入设备填充缓冲区2。

当缓冲区1空出后,输入设备再次向缓冲区1输入。操作系统又可把缓冲区2的数据传送到用户进程区,用户进程开始加工缓冲2的数据。

传输和处理一块的时间

5.3.3 多缓冲

操作系统从内存区域中分配一组缓冲区组成循环缓冲,每个缓冲区的大小等于物理记录的大小。多缓冲的缓冲区是系统的公共资源,可供各个进程共享,并由系统统一分配和管理。
缓冲区可用途分为:

5.3.4 缓冲区高速缓存

操作系统建立页高速缓存。每当应用进程打开、关闭或撤销文件时,激活高速缓存管理程序管理文件的数据块。其实现思想如下。

  1. 当请求从指定文件读写数据时,给定设备号和磁盘块号,快速查询所需数据块是否在页高速缓存中,如果在,是在哪个缓冲区并获得其内容。可设计散列表来快速访问缓冲区,散列数组的每个元素指向一个缓冲区链表,把具有相同散列值的磁盘块链接在一起。
  2. 高速缓存中的每个缓冲区链表都有一个缓冲控制块,包含如下信息:逻辑设备号、磁盘块号、高速缓存虚拟地址、数据所属文件的文件描述符、数据在文件内的位移、缓冲区链接指针、空闲缓冲区指针、活动计数 、状态字等。
  3. 若数据块不在高速缓存中,就从磁盘读取数据,并将其缓存,系统要把尽可能多的数据保存在缓冲区高速缓存。向磁盘写入数据也暂存于数据缓冲区高速缓存中,供回写磁盘前再次使用。内核需判定数据是否需要回写,或是否很快就要被回写,采用延迟写减少I/O 操作。
  4. 当文件关闭或撤销时,需要解决缓冲区释放和重用问题,可采用一定策略 (如LRU) 把单独的缓冲区链接在一起,于是,最不可能被再次访问的缓冲区将被最先释放重用。
  5. 提供一组高速缓存操作,为文件驱动程序实现读写文件数据。这些操作通常有:写缓存、延迟写缓存、读缓存、预读缓存等。

5.4 驱动调度技术

驱动调度能减少为若干个I/O请求服务所需的总时间,提高系统效率、除了I/O请求的优化排序外,信息在辅助存储器上的排列方式,存储空间分配方法都能影响存取访问速度。

5.4.1 存储设备的物理结构

顺序存取存储设备是严格依赖信息的物理位置进行定位和读写的存储设备 ,具有存储容量大、稳定可靠、卷可装卸和便于保存等优点 。

直接存取存储设备

磁盘是一种直接(随机)存取存储设备。每个物理记录有确定的位置和唯一的地址,存取任何一个物理块所需的时间几乎不依赖于此信息的位置。
访问磁盘记录参数:柱面号、磁头号、块号


image.png

5.4.2 循环排序

考虑磁道保存4个记录的旋转型设备,假定收到四个I/O请求:
请求次序 记录号
(1) 读记录4
(2) 读记录3
(3) 读记录2
(4) 读记录1


image.png

多种I/O请求排序方法

方法1:按照I/O请求次序读记录4、3、2、1,平均用1/2周定位,再加上1/4周读出记录,总处理时间等于3周,即60毫秒。
方法2:如果次序为读记录1、2、3、4。总处理时间等于1.5周,即30毫秒。
方法3:如果知道当前读位置是记录3,则采用次序为读记录4、1、2、3。总处理时间等于1周,即20毫秒。

5.4.3 优化分布
考虑10个逻辑记录A,B……,J被存于旋转型设备上,每道存放10个记录,安排如下:

image.png

处理10个记录的总时间 :

10毫秒(移动到记录A的平均时间)+ 2毫秒(读记录A)+4毫秒(处理记录A)+9×[16毫秒(访问下一记录) +2毫秒(读记录)+4毫秒(处理记录)] =214毫秒

按照下面方式对信息优化分布:


image.png

处理10个记录的总时间为:
10毫秒(移动到记录A的平均时间)+10×[2毫秒(读记录)×4毫秒(处理记录)]
=70毫秒

5.4.4 交替地址

每个记录重复记录在设备的多个区域,读相同的数据,有几个交替地址,也称为多重副本或折迭。
成功与否取决于下列因素:数据记录总是读出使用,不需修改写入;数据记录占用的存储空间总量不太大;数据使用极为频繁。

5.4.5 搜查定位

移臂调度有若干策略
(1)“先来先服务” 算法
(2)“最短查找时间优先”算法
(3)“扫描”算法
(4)“分步扫描”算法
(5)“电梯调度”算法
(6)“循环扫描”算法
举例:假如磁盘机共有200个柱面,编号0至199,考虑依次到达下列柱面访问请求序列:
150,30,190,20,100,55,90
同时假磁头当前处于50号柱面位置,且正在向柱面号大的方向移动。

移动臂移动柱面总=210。


image.png

5.4.5 提高磁盘I/O速度的方法


上一篇 下一篇

猜你喜欢

热点阅读