I/O软件层次结构I/O核心子系统以及假脱机技术(SPOOLing技术)
Posted bfhonor
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了I/O软件层次结构I/O核心子系统以及假脱机技术(SPOOLing技术)相关的知识,希望对你有一定的参考价值。
一、I/O软件层次结构
(一)用户层软件
(二)设备独立性软件
- 主要实现的功能:
- ①、向上一层提供统一的接口。
- ②、设备的保护。
原理类似与文件保护。设备被看做是一种特殊的文件,不同用户对各个文件的访问权限是不一样的,同理,对设备的访问权限也不一样。 - ③、差错处理。
设备独立性软件需要对一些设备的错误进行处理 - ④、设备的分配与回收。
- ⑤、数据缓冲区管理。
可以通过缓冲技术屏蔽设备之间数据交换单位大小和传输速度的差异 - ⑥、建立逻辑设备名到物理设备名的映射关系;根据设备类型选择调用相应的驱动程序
用户或用户层软件发出I/O操作相关系统调用的系统调用时,需要指明此次要操作的I/O设备的逻辑设备名(eg:去学校打印店打印时,需要选择 打印机1/打印机2/打印机3 ,其实这些都是逻辑设备名) - 设备独立性软件需要通过“逻辑设备表(LUT,Logical UnitTable)”来确定逻辑设备对应的物理设备,并找到该设备对应的设备驱动程序
1. 思考:为何不同的设备需要不同的设备驱动程序?
(三)设备驱动程序
(四)中断处理程序
二、I/O核心子系统
(一)I/O调度
- 如:磁盘调度(先来先服务算法、最短寻道优先算法、SCAN算法、C-SCAN算法、LOOK算法、C-LOOK算法)。当多个磁盘I/O请求到来时,用某种调度算法确定满足I/O请求的顺序。
- 同理,打印机等设备也可以用先来先服务算法、优先级算法、短作业优先等算法来确定I/O调度顺序。
(二)设备保护
- 操作系统需要实现文件保护功能,不同的用户对各个文件有不同的访问权限(如:只读、读和写等)。
- 在UNIX系统中,设备被看做是一种特殊的文件,每个设备也会有对应的FCB。当用户请求访问某个设备时,系统根据FCB中记录的信息来判断该用户是否有相应的访问权限,以此实现“设备保护”的功能。
三、假脱机技术(SPOOLing技术)
(一)什么是脱机技术
- 手工操作阶段:主机直接从 I/O设备获得数据,由于设备速度慢,主机速度很快。人机速度矛盾明显,主机要浪费很多时间来等待设备。
(二)假脱机技术——输入井和输出井
- “假脱机技术”,又称“SPOOLing技术”是用软件的方式模拟脱机技术。
- SPOOLing 系统的组成如下:
- 要实现SPOOLing 技术,必须要有多道程序技术的支持。系统会建立 “输入进程”和 “输出进程”。
(三)共享打印机原理分析
- 独占式设备——只允许各个进程串行使用的设备。一段时间内只能满足一个进程的请求。
- 共享设备——允许多个进程“同时”使用的设备(宏观上同时使用,微观上可能是交替使用)。可以同时满足多个进程的使用请求。
- 当多个用户进程提出输出打印的请求时,系统会答应它们的请求,但是并不是真正把打印机分配给他们,而是由假脱机管理进程为每个进程做两件事:
- (1)在磁盘输出井中为进程申请一个空闲缓冲区(也就是说,这个缓冲区是在磁盘上的),并将要打印的数据送入其中;
- (2)为用户进程申请一张空白的打印请求表,并将用户的打印请求填入表中(其实就是用来说明用户的打印数据存放位置等信息的),再将该表挂到假脱机文件队列上。
- 当打印机空闲时,输出进程会从文件队列的队头取出一张打印请求表,并根据表中的要求将要打印的数据从输出井传送到输出缓冲区,再输出到打印机进行打印。用这种方式可依次处理完全部的打印任务.
- 虽然系统中只有一个台打印机,但每个进程提出打印请求时,系统都会为在输出井中为其分配一个存储区(相当于分配了一个逻辑设备),使每个用户进程都觉得自己在独占一台打印机,从而实现对打印机的共享。
- SPOOLing 技术可以把一台物理设备虚拟成逻辑上的多台设备,可将独占式设备改造成共享设备。
以上是关于I/O软件层次结构I/O核心子系统以及假脱机技术(SPOOLing技术)的主要内容,如果未能解决你的问题,请参考以下文章
I/O软件层次结构I/O核心子系统以及假脱机技术(SPOOLing技术)
输入/输出(I/O)管理-第一节5:假脱机(SPOOLing)技术
操作系统王道考研 p64-66 IO软件层次结构IO核心子系统假脱机技术(SPOOLing技术)
操作系统| 输入输出系统(磁盘调度算法的计算先来先服务最短寻道时间优先SCANCSCANI/O控制的方式I/O通道设备分配的四个表假脱机系统引入缓冲的原因)