设备与I/O管理

设备及其分类

存储型设备   IO型设备  网络设备

共享型设备(块型) 独占型设备(块型) 独占型设备(字符型)

设备的物理特性

程序查询方式  (programmed IO) (polling)
CPU and Device can not work in parallel 
中断方式  (interrupt)
CPU and device can work in parallel, too many interrupts for CPU
直接内存方式 (DMA)

DMA controller in charge of block io


通道方式  (channel)
special processor for dealing with io operations
在通道控制方式中,数据传送方向、存放数据的内存始址及传送的数据块长度均由一个专门负责输入/输出的硬件——通道来控制。一个通道可控制多台设备与内存进行数据交换。


字节多路通道  数组选择通道   数组多路通道



 设备的分配与去配

设备分配是指将设备资源分配给某申请进程;
设备去配是指将设备资源由某占有资源的进程处收回。

设备分配原则:要充分发挥设备的使用效率,尽可能的让设备忙碌,但又要避免由于不合理的分配方式造成进程毫无限制的申请资源造成的进程死锁。


独占型设备的分配与去配
块型独占

字符型独占


共享型设备的分配与去配
块型共享


设备驱动

设备处理程序通常又称为设备驱动程序,它是I/O进程与设备控制器之间的通信程序,又由于它常以进程的形式存在,故简称为设备驱动进程。
主要任务是接受上层软件发来的抽象要求,再把它转换为具体要求后,发给设备控制器启动设备去执行;此外,它也将由设备控制器发来的信号传送给上层软件

通道程序
CCW指令序列
静态编制或动态生成
设备启动
通道启动
中断处理
通道向CPU发的中断



设备调度、

优化服务顺序
    寻道时间:磁头在引臂带动下移动到指定磁道所花的时间
    旋转延迟时间:指定扇区旋转到磁头下所需的时间

    传输时间:由磁头进行读写完成信息传输的时间

寻道时间Ts计算公式如下:
Ts=m×n﹢s
其中,n为跨越磁道数,m为跨越一个磁道所用时间,s为启动时间。
旋转延迟Tr计算公式如下:
Tr=1/(2r)
其中,r为磁盘转速。该公式给出的是平均旋转延迟,它是磁盘旋转一周时间的一半,即旋转半周所花费的时间。

传输时间Tt计算公式如下:
Tt=b/(rN)
其中,b为读/写字节数,r为磁盘转速,N为一条磁道上的字节数。


考虑因素

     公平性
        防止饥饿, 或饿死
     高效性
        减少磁盘引臂移动量
        减少旋转延迟


会出现饥饿死锁





解答:
(1)磁盘引臂移动序列为: 100→120→30→70→85,跨越磁道数:20+90+40+15=165。共需寻道时间165×1ms=165ms.
(2) 1次访盘的旋转延迟为:Tr=1/(2r)=1/(2×(6000/m))=1/(2×(100/s))=5ms,4次访盘的旋转延迟为4×5ms=20ms.
(3) 1次访盘的传输时间为:Tt=1/(rM)=1/((6000/m)×100)=1/((100/s)×100)=0.1ms,4次访盘的传输时间为4×0.1ms=0.4ms.
(4)所有访问处理时间=165+20+0.4=185.4(ms)

缓冲技术

缓和CPU与I/O设备间速度不匹配的矛盾
减少对CPU的中断频率,放宽对中断响应时间的限制
提高CPU和 I/O设备之间的并行性

Buffering vs. Caching
buffering: 处理数据到达与离开速度不一致所采用的技术。
caching: 将慢速存储器上活动信息缓冲到快速存储设备上的技术。
硬缓冲与软缓冲 
    硬缓冲区通常设在设备中 
    软缓冲区通常设在内存系统空间中(操作系统管理) 
私用缓冲与公共缓冲 
    私用缓冲: 一个缓冲区与一个固定设备相联系,不同设备使用不同的缓冲区 
利用率低 
    公用缓冲: 缓冲区由系统统一管理,按需要动态分派给正在进行I/O传输的设备





缓冲技术实现:输入设备



缓冲技术实现:输出设备



输入输出设备:


输入输出进程

专门负责IO传输的进程
    另外一种IO模式—服务模式
    C/S Model
特点
    界面清晰,方便使用
    两次进程切换,速度问题

RAID级别

RAID级别:  行业标准规定的数据在多个磁盘上的存放方法。
    常见RAID级别: level0, …, level5; 
RAID分条(stripping)数据存储方式
    位级分条(bit-level stripping)
    块级分条(block-level stripping)

RAID衡量指标
    速  度: 是否支持多个访问同时进行;
    可靠性: 是否能够发现和改正错误;
    成  本: 是否有额外的开销和开销的大小.




纠错能力强, 可靠性高;
发现2个错误, 纠正1个错误.

需要较多纠错盘存放汉明纠错码, 成本较高;
不能同时为多个请求服务, 速度较慢
读操作:所有磁盘同时访问, 数据与错误校验码被送到磁盘阵列控制器;
写操作:必须同时访问所有数据盘和纠错盘




读操作不进行异或校验(不需访问校验盘), 可以并行;
写操作要更新异或校验信息, 都访问校验盘, 不能并行; 写操作时校验信息更新:
      P’4~7=(block4 xor block4’)xor p4~7
异或校验信息用于磁盘发生故障时数据块的恢复。
      例如:  若block7所在的Disk4发生故障, 要恢复block7。
                  block7= p4~7 XOR (block4 XOR block5 XOR block6) 


校验码计算:
p4~7=block4 XOR block5 XOR block6 XOR block7
若block7发生故障,可通过下式恢复
block7=p4~7 XOR block4 XOR block5 XOR block6

磁盘数量至少为3个;
读操作可并行;
不涉及相同数据盘和校验盘的写操作可以并行;
对于单盘容量为S、数量为N的磁盘阵列, 
     有效存储容量为:   S×(N-1)
      磁盘利用率为:   (N-1)/N
任意磁盘发生故障, 均可根据其它N-1个磁盘恢复;


虚拟设备

利用共享型设备实现的数量较多、速度较快的独占型设备

    输入型虚拟设备
    输出型虚拟设备
虚拟设备的例子
    SPOOLing输入
    SPOOLing输出


输入型虚拟设备的实现
申请:
    分配一虚设备
    分配一实设备
    信息由实设备虚设备(连续传输)
去配该实设备
使用:
    信息由虚设备进程空间(可以间断传输)
释放:
    去配虚设备





稳定存储器:不丢失信息的存储器称为稳定存储器  冗余



猜你喜欢

转载自blog.csdn.net/liudongdong19/article/details/80770817