设备管理---用户层I/O软件、磁盘存储器

一、用户层的I/O软件

小部分I/O系统软件放在了用户应用层上。
库函数(与应用程序链接) 和 假脱机技术(虚拟设备)

  1. 系统调用与库函数
    OS在用户层中引入了系统调用,应用程序可以通过它,间接调用OS中的I/O过程,对I/O设备进行操作
  2. 设备分配中的虚拟技术—— SPOOLing技术
    如何将一台物理I/O设备虚拟为多台逻辑I/O设备,允许多个用户共享“同时使用” ?
    (1)多道程序技术,专门利用程序模拟脱机I/O的外围机,完成设备I/O操作。
    (2)SPOOLing系统的组成
    ①输入井和输出井:磁盘上开辟两大存储空间。输入井模拟脱机输入的磁盘设备,输出井模拟脱机输出时的磁盘。
    ②输入缓冲区和输出缓冲区:为缓解速度矛盾,内存中开辟两大缓冲空间,输入缓冲区暂存输入设备送来的数据,再送给输入井;输出缓冲区暂存输出井送来的数据,再送输出设备。
    ③输入进程和输出进程:用一进程模拟脱机输入时外围设备控制器的功能,把低速输入设备上的数据传送到高速磁盘上;用另一进程模拟脱机输出时外围设备控制器的功能,把数据从磁盘上传送到低速输出设备上
    在这里插入图片描述
    (3)SPOOLing技术的使用:
    当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给用户进程,而只为它做两件事:
    ①由输出进程在输出井中为之请求一个空闲磁盘块区,并将要打印的数据送入其中.
    ②输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂在请求打印队列上
    (4)守护进程
    守护进程(Daemon)是运行在后台 的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。
    ==》利用守护进程实现打印机
    ①为打印机建立一个守护进程,由它执行一部分原来由假脱机管理进程功能的功能。
    ②由请求进程生成一份要求打印的文件,并将用户请求打印文件放入假脱机文件队列(目录)中。
    (5)SPOOLing系统的特点
    提高了I/O的速度。利用输入输出井模拟成脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾。
    将独占设备改造为共享设备。并没有为进程分配设备,而是为进程分配一存储区和建立一张I/O请求表。
    实现了虚拟设备功能。多个进程可“同时”使用一台独占设备。

二、磁盘存储器的性能和调度

  1. 磁盘性能简述
    (1)数据的组织和格式
    *盘片、面、磁道、扇区
    *为方便处理,每条磁道存储容量相同,每个磁道上的每个扇区相当于一个盘块。磁盘”格式化”的过程就是按规定的格式规划盘块
    (2)磁盘类型
    固定磁头(每道一磁头)
    移动磁头(每盘一磁头)
    (3)访问时间的计算
    寻道时间(到磁道)
    旋转延迟(到扇区)
    传输时间

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

  2. 磁盘调度方法
    目标:使平均寻道时间最少
    (1)FCFS(先来先服务):磁盘I/O执行顺序按磁盘请求的先后顺序
    (2)最短寻道时间优先(SSTF):选择从当前磁头位置出发移动最少的磁盘I/O请求
    SSTF会导致“饥饿”现象:
    总选择最近的磁道访问,远磁道请求的进程会长时间得不到执行。
    在这里插入图片描述
    (3)扫描算法SCAN(磁盘电梯调度算法):
    *规定磁头移动方向:自里向外,再自外向里移动。
    *后续的I/O磁道请求,哪个在规定方向上距离最近,就先执行哪个。
    例题:
    在这里插入图片描述
    SCAN的错过问题:
    容易错过与当前磁道距离近,但方向不一致的磁道。
    ===>
    ①循环扫描算法CSCAN:将SCAN规定的移动方向改为“单向移动”。由里向外后,再由里向外。
    前述最近寻道算法共同问题:
    “磁臂粘着”——磁头静止在一个磁道上,导致其它进程无法及时进行磁盘I/O。(因:高密度盘,进程的读写可能集中在某一磁道)(33235215333:将会一直访问3)
    ②N-Step-SCAN算法:
    *将磁盘请求队列分成长为N 的子队列。
    *按FCFS选择子队列。队列内又按SCAN算法
    *处理子队列过程中产生的新I/O再依次排队列
    *N=1时,就是FCFS,N很大时就是SCAN
    ③F-SCAN算法:
    请求队列只分为两个子队列
    当前一个队列,按SCAN算法执行;
    扫描期间新生成的组成一个队列,等待被扫描

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值