IO管理《第五章》

磁盘存储器的管理(磁盘性能、磁盘调度、磁盘高速缓存)
磁盘的结构:柱面,磁道,扇区
磁盘调度的目标:使磁盘的平均寻道时间最少
早期的磁盘调度算法:先来先服务(FCFS),最短时间寻道优先(SSTF)
基于扫描的磁盘调度算法:扫描算法(SCAN),循环扫描算法(CSCAN)
磁盘管理:磁盘格式化,引导块,坏扇区
设备管理的目标
方便性:向用户提供方便的设备使用接口;
并行性:设备传输与 CPU 重叠,各设备之间并行工作;
均衡性:即要使设备忙碌,又要避免忙闲不均
独立性:又称与设备无关性,它是隐蔽设备的物理特性
设备管理的基本功能:
动态的掌握并记录设备的状态;按照设备的类型和系统中所采用的分配算法,决定把某一个 设备分配给要求该设备的进程;完成实际的 I/O 操作。
I/O 系统
I/O 系统即输入输出系统,操作系统中负责管理输入输出设备的部分称为 i/o 系统,完成设 备管理功能,包括外设编址,数据通路的建立,向主机提供外设的状态信息等。i/o 系统的组成有:I/O 设备,设备控制器及 I/O 操作有关的软硬件。
I/O 系统的基本功能
1)隐藏物理设备的细节
2)与设备的无关性,
3)提高处理机和 I/O 设备的利用率
4)对 I/O 设备进行控制,
5)确保设备的正确共享
6)错误处理
I/O 控制方式
通道(IO处理机,协处理器):实现内存与外设之间的信息传输
引入通道目的:建立独立的IO操作,使原来由CPU处理的IO任务转由通道来承担,从而把CPU从繁忙的IO任务中解脱出来I/O软件层次结构
I/O调度:就是确定一个好的顺序来执行这些I/O请求。I/O子系统还可以使用主存或磁盘上的存储空间的技术,如缓冲、高速缓冲、假脱机等,来改善计算机效率。
磁盘高速缓存技术不同于通常意义下的介于CPU与内存之间的小容量高速存储器,而是指利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息。因此,磁盘高速缓存在逻辑上属于磁盘,物理上则是驻留在内存中的盘块。
高速缓存在内存中分为两种形式:一种是在内存中开辟一个单独的存储空间作为磁速缓存,大小固定;另一种是把未利用的内存空间作为一个缓沖池,供请求分页系统和磁盘I/O时共享。
磁盘和虚拟盘(RAM)的主要区别:虚拟盘中的内容完全由用户控制,而磁盘告诉缓存中的内容则是由OS控制的。例如:RAM盘在开始时是空的,仅当用户(程序)在RAM盘中创建了文件后,RAM盘中才有内容。
为什么引入缓冲区
1 缓和 CPU 与 I/O 设备间速率不匹配(18)的矛盾
2 减少 CPU 的中断频率,放宽对 CPU 中断相应时间的限制
3 解决数据粒度不匹配的问题 4 提高 CPU 和 I/O 设备之间的并行性。
单缓冲 是 OS 提供的一种最简单的缓冲。当用户进程发出一个 I/O 请求时,OS 便在主存中分配一 个缓冲区。 对于单缓冲,缓冲区属于临界资源,即不允许多个进程同时对一个缓冲区进行操作。因此, 单缓冲虽然能匹配设备和 CPU 的处理速度,但无法实现设备与设备之间的并行操作。 在块 设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为 T,操作系统将该缓冲区中的数 据传送到用户区的时间为 M,而 CPU 对这一块数据处理(计算)的时间为 C。由于T 和 C 是可以并行的,当 T>C 时,系统对每一块数据的处理时间为 M+T,反之则为 M+C,故可把系 统对每一块数据的处理时间表示为 Max(C,T)+M。
双缓冲区机制也称为缓冲对换(Buffer Swapping)。在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。此时操作系统可以从第一缓冲区中移出数据,并送入用户进程。
循环缓冲
(1)多个缓冲区。在循环缓冲中包括多个缓冲区,其每个缓冲区的大小相同。作为输入的 多缓冲区可分为三种类型:用于装输入数据的空缓冲区 R、已装满数据的缓冲区 G 以及计算进程正在使用的现行工作缓冲区 C。
(2) 多个指针。作为输入的缓冲区可设置三个指针:用于指示计算进程下一个可用缓冲区G 的指针 Nextg、指示输入进程下次可用的空缓冲区 R 的指针 Nexti,以及用于指示计算进程正在使用的缓冲区 C 的指针 Current。
缓冲池
对于既可用于输入又可用于输出的公用缓冲池,其中至少应含有以下三种类型的缓冲区:
① 空(闲)缓冲区;
② 装满输入数据的缓冲区;
③ 装满输出数据的缓冲区。
设备分配
备控制表(DCT)
系统为每一个设备都配置了一张设备控制表,用于记录本设备的情况。
(1) 控制器控制表(COCT)。
(2) 通道控制表(CHCT)。
(3) 系统设备表(SDT)。记录了系统中全部设备的情况
设备的固有属性可分成三种:
1 独占性,是指这种设备在一段时间内只允许一个进程独占,此即第二章所说的“临界资源”;
2 是共享性,指这种设备允许多个进程同时共享;
3 可虚拟设备,指设备本身虽是独占设备,但经过某种技术处理,可以把它改造成虚拟设备。
对上述的独占、 共享、可虚拟三种设备应采取不同的分配策略。

  1. 独占设备。对于独占设备,应采用独享分配策略,即将一个设备分配给某进程后,便由该进程独占,直至该进程完成或释放该设备。
  2. 共享设备。对于共享设备,可同时分配给多个进程使用。
  3. 可虚拟设备。一台可虚拟设备是可共享的设备,可以将它同时分配给多个进程使用,并对这些访问该(物理)设备的先后次序进行控制。
    什么是 SPOOLing
    脱机输入、脱机输出技术利用专门的外围控制机,将低速 I/O 设备上的数据传送到高速磁盘上;或者相反。当系统中引入了多道程序技术后,利用其中的一道程序模拟脱机输入时的外围控制机功能,把低速 I/O 设备上的数据传送到高速磁盘上;再用另一道程序模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。这样,便可在主机的直接控制下 ,实 现 脱 机 输 入 、 输 出 功 能 。 这 种 在 联 机 情 况 下 实 现 的 同 时 外 围 操 作 称 为 SPOOLing,或称为假脱机操作。SPOOLing 系统主要有以下三部分:
    (1)输入井和输出井。(2)输入缓冲区和输出缓冲区。(3)输入进程 SPi 和输出进程 SPo。
    SPOOLing 系统具有如下主要特点:
    (1) 提高了 I/O 的速度。对数据所进行的 I/O 操作,已从对低速 I/O 设备进行的 I/O 操作,演 变为对输入井或输出井中数据的存取,如同脱机输入输出一样。
    (2) 将独占设备改造为共享设备。在 SPOOLing 系统中只是在输入井或输出井中为进程分配一个存储区和建立一张 I/O 请求表。便把独占设备改造为共享设备。打印机利用 SPOOLing 技术,可将之改造为一台可供多个用户共享的设备,从而提高
    设备的利用率。当用户进程请求打印输出时,SPOOLing 系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而只为它做两件事:① 由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;② 输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。如果还有进程要求打印输出,系统仍可接受该请求,也同样为该进程做上述两件事。
    (3) 实现了虚拟设备功能。SPOOLing 系统实现了将独占设备变换为若干台对应的逻辑设备的功能。
    事务:p272(汤)
    是用于访问和修改各种数据项的一个程序单位。也可以被看做是一系列相关的读写操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值