IO子系统

IO子系统是个啥?
想象一下,你的电脑就像一个忙碌的办公室,IO子系统就是那个负责收发快递的前台。它要确保所有的数据(快递包裹)都能按时、按顺序、安全地送到正确的人(程序)手里。
IO调度
就像你决定先处理哪个快递一样,IO调度就是决定哪些数据请求先处理,这样可以让整个系统运行得更顺畅。
高速缓存和缓冲区
高速缓存:就像你在办公桌旁边放一个小柜子,用来放最常用的东西,这样拿起来快。电脑里也有这样的小柜子,叫做高速缓存,它让数据读写更快。
缓冲区:缓冲区就像一个大一点的储物箱,用来暂时存放数据,这样CPU(电脑的大脑)和输入输出设备(比如硬盘)之间的工作速度差异就不会那么明显。
缓冲区的类型
单缓冲:就像你有一个抽屉,东西只能先放进去,然后再拿出来。
双缓冲:想象你有俩抽屉,一个满了,另一个就可以开始用了。
循环缓冲:就像一排连在一起的抽屉,你可以从任何一个开始放东西,满了就从头开始。
缓冲池:就像一个有很多不同类型抽屉的大箱子,有的用来放进来的东西,有的用来拿出去的东西。
设备分配
就像办公室里的打印机和复印机,有的只能一个人用,有的可以大家轮流用。设备分配就是决定谁什么时候能用这些设备。
设备分配的策略
静态分配:就像你一开始就决定好谁用打印机,直到工作结束。
动态分配:就像你根据需要随时决定谁用打印机。
设备分配算法
先来先服务:就像排队,谁先来谁先用。
优先级分配:就像VIP,重要的人可以先用。
小贴士
管道通信,就像两个对讲机,需要两个管道才能双向通话。


设备分配与回收
想象一下,操作系统就像个管家,要管理家里的各种设备(比如打印机、硬盘等)。分配设备的时候,管家得小心,不能让家里的成员(进程)因为抢设备而打起来,这就是所谓的“死锁”。
安全分配:就像你请求管家帮忙打印文件,管家说“好的,你先等等”,然后专心帮你打印,直到打印完才叫你。这样做很安全,但管家和打印机不能同时做其他事。
不安全分配:如果你告诉管家“我要打印,但你可以继续做其他事”,管家可能会在你打印的时候又去忙别的,这样虽然效率高,但有时候管家可能会忘记你在打印,导致打印出错。
逻辑设备名到物理设备名的映射
这就像是管家有个记事本,记录了每个设备的名字和它们实际的位置。这样做的好处是,即使设备换了位置,只要记事本更新了,你还是能找到它。
整个系统一张表:就像家里只有一本记事本,记录了所有的设备。
每个用户一张表:就像每个人有自己的记事本,只记录自己关心的设备。
SPOOLING技术(假脱机技术)
这个技术就像是管家用一个中间人(外围控制机)来协调家里的速度慢的设备和速度快的设备。
输入井和输出井:就像是管家用来暂时存放东西的地方,输入井放进来的东西,输出井放出去的东西。
缓冲区:就像是管家的小推车,用来临时放东西,方便随时取用。
输入进程和输出进程:就像是管家的助手,一个负责把东西从外面拿进来,另一个负责把东西送出去。
这个技术的好处是:
让慢设备也能快速工作。
让本来只能一个人用的设备,现在可以大家一起用。
让设备看起来更高级,像是虚拟设备。
要实现这个技术,家里得有足够的帮手(多道程序技术)来帮忙。

 

知识点链接
IO子系统概述
IO子系统是操作系统中负责处理输入输出请求的关键部分。它提供以下服务:
IO调度:确定执行I/O请求的顺序,以提高系统效率。
缓冲与高速缓存:使用内存来加速数据的读写过程。
设备分配与回收:根据请求分配设备,并在不需要时进行回收。
假脱机:一种技术,允许用户在没有物理设备的情况下执行操作。
设备保护:确保设备不会被错误使用或损坏。
差错处理:处理I/O过程中可能出现的错误。
IO调度概念
IO调度的目的是确定一个高效的I/O请求执行顺序,以改善系统的整体效率。
高速缓存与缓冲区
磁盘高速缓存:逻辑上属于磁盘,但物理上是内存中的盘块。使用高速缓存可以提高磁盘的IO速度。
缓冲区:用于缓和CPU与IO设备之间的速度差异,减少中断频率,解决数据单元大小不匹配问题,提高并行性。
缓冲区的实现方法
硬件缓冲器:成本高,一般只在关键位置使用。
内存缓冲区:位于内存区域,用于数据交换。
缓冲区的分类
单缓冲:设备和处理机之间只有一个缓冲区。
双缓冲:使用两个缓冲区,提高并行操作程度。
循环缓冲:包含多个大小相等的缓冲区,形成环形结构。
缓冲池:缓冲区分为三个队列,分别用于输入数据的接收、提取,以及输出数据的接收、提取。
参数表示
C:CPU对数据的处理时间。
T:数据写入缓冲区的时间。
M:缓冲区数据传入用户区的时间。
设备分配与回收
概念:根据用户IO请求分配设备,避免进程死锁。
设备类型分类:
独占式使用设备:一个时段只能分配给一个进程(如打印机)。
分时共享使用设备:可同时分配给多个进程使用(如磁盘)。
SPOOLing方式使用设备:通过SPOOLing技术将独占设备改造成共享设备。
设备分配的数据结构
设备控制表(DCT):表征一个设备的各项属性。
控制器控制表(COCT):与DCT一一对应,表示控制器。
通道控制表(CHCT):提供服务的设备控制器。
系统设备表(SDT):记录所有连接到系统中的物理设备。
设备分配的策略
分配原则:充分发挥设备效率,避免进程死锁。
分配方式:
静态:一次性分配,直到作业结束。
动态:根据执行需要进行分配。
设备分配算法
先请求先分配:类似于先来先服务。
优先级高者优先:根据优先级进行设备分配。
小贴士
管道通信中的“管道”实际上是缓冲区。要实现数据的双向传输,必须设置两个管道
设备分配与回收
设备分配的安全性:在操作系统中,设备分配需要避免进程死锁,即多个进程在等待对方释放资源,导致系统无法继续执行。
安全分配方式:进程发出I/O请求后进入阻塞状态,直到I/O操作完成才被唤醒。这种方式确保了设备分配的安全性,但可能导致CPU和I/O设备串行工作,降低效率。
不安全分配方式:进程在发出I/O请求后继续执行,可能在需要时发出更多I/O请求。这种方式可以快速推进进程,但存在产生死锁的风险。
逻辑设备名到物理设备名的映射
目的:提高设备分配的灵活性和利用率,实现I/O重定向,引入设备独立性。
实现方法:通过引入逻辑设备表(LUT),将逻辑设备名映射为物理设备名。有两种建立方式:
整个系统设置一张LUT,记录所有设备的分配情况。
每个用户建立一张LUT,分别记录设备的分配情况。
SPOOLING技术(假脱机技术)
概念:为了解决CPU与I/O设备速度差异的问题,使用外围控制机将低速I/O设备的数据传送到高速磁盘上,或反向操作。
输入井和输出井:输入井用于接收I/O设备的数据,输出井用于模拟输出时的磁盘。
输入缓冲区和输出缓冲区:输入缓冲区暂存由输入设备送来的数据,输出缓冲区暂存从输出井送来的数据。
输入进程和输出进程:
输入进程:模拟脱机输入时的外围控制机,将数据从输入机通过输入缓冲区送到输入井中,供CPU使用。
输出进程:模拟脱机输出时的外围控制机,将数据从内存送到输出井中,待输出设备空闲时再发送到输出设备。
特点:
提高了I/O速度。
将独占设备转变为共享设备。
实现了虚拟设备功能。
实现SPOOLING技术需要多道程序技术的支持。
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值