设备管理 用户层IO软件 缓冲 磁盘

引入缓冲区的主要原因:

缓和CPUI/O设备间速度不匹配的矛盾。

缓冲区数据成批传入内存,也可进一步减少对CPU的中断频率

最终目的:提高CPUI/O设备的并行性。

 

使用缓冲区的方式:

1)单缓冲、多缓冲

每当用户进程发出一I/O请求时

OS主存中为之分配一个缓冲区。

CPU和外设轮流使用,一方处理完后等待对方处理。

进一步加快输入和输出速度,提高设备利用率制,也称缓冲对换

2)循环缓冲

3)缓冲池(Buffer Pool

 

2)循环缓冲(circular buffer)

①循环缓冲的组成

多个缓冲区。大小相同,三种类型:

¨预备装输入数据的空缓冲区R

¨装满数据的缓冲区G

¨计算进程正在使用的现行工作缓冲区C

多个指针。

¨指示正在使用的缓冲区C的指针Current

¨指示计算进程下一个可取的缓冲区G的指针Nextg

¨指示输入进程下次可放的缓冲区R的指针Nexti

②循环缓冲区的使用

 

计算进程(CPU)和输入进程(I/O操作)可利用两个过程来使用循环缓冲区。

主要就是利用指针,操作上述不同类型缓冲区

Getbuf过程:使用缓冲区时,可调用该过程

计算进程取:current=Nextg,G>Cnextg下移一个。

输入进程放:current=nextiR>Cnexti下移一个

Releasebuf过程:

计算进程:C->R

输入进程:C->G

一个时段只能用于输入或输出,不能同时双向通信

③进程同步

 

3)缓冲池(Buffer Pool

①缓冲池的组成

 

对于既可输入又可输出的公用缓冲池,至少应含有下列三种类型的缓冲区:

1.空缓冲区;

2.装满输入数据的缓冲区;

3.装满输出数据的缓冲区;

  为方便管理,将上述类型相同的缓冲区连成队列

¨空缓冲区队列(所有进程都可用)

¨输入队列n个进程有各自的队列)

¨输出队列n个进程有各自的队列)

②缓冲区的工作方式

 

磁盘

1)磁盘性能简述

首先与格式有关

数据的组织和格式

盘片、面、磁道、扇区

为方便处理,每条磁道存储容量相同,每个磁道上的每个扇区相当于一个盘块。磁盘”格式化”的过程就是按规定的格式规划盘块。

 

 

如温盘格式:

每道30个扇区,每扇600个字节。512字节用于存放数据,其余存放控制信息。

标识符字段:标识一个扇区的信息记录;  1+2+1+1+3 bytes

数据字段:每个扇区存放数据的空间。

    数据前后还有若干特定功能字节。  1+512+2 bytes

 

与速度有关

磁盘类型

固定磁头(每道一磁头)

移动磁头(每盘一磁头)

访问时间的计算

寻道时间(到磁道)

旋转延迟(到扇区)

传输时间

  传输时间占总时间的比例最小,磁盘读写速度的提高要选择合适的调度算法,减少前两项用时,使所有作业的磁盘处理时间均衡。

2)磁盘调度方法

对所有请求访问磁盘的进程进行合理调度,使对磁盘的平均访问时间最小。

目标:使平均寻道时间最少。

算法:

FCFS

 

最短寻道时间优先SSTF

选择从当前磁头位置出发移动最少的磁盘I/O请求

SSTF会导致“饥饿”现象

总选择最近的磁道访问,远磁道请求的进程会长时间得不到执行

 

扫描算法SCAN(磁盘电梯调度算法)

规定磁头移动方向:自里向外,再自外向里移动

 

循环扫描算法CSCAN

N-Step-SCAN算法

FSCAN算法

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值