目录
5.5 设备分配
- 设备独立性
- 设备分配及其数据结构
5.6 虚拟设备
- 问题的提出
- SPOOLing设计与实现
- SPOOLing应用
5.7 Linux设备管理
- 设备管理概述
- 字符设备
- 块设备
5.8 本章小结
设备分配
5.5.1 设备独立性
用户不指定特定设备,指定逻辑设备,使得用户作业和物理设备独立开来,通过其它途径建立逻辑设备和物理设备之间对应关系,这种特性为“设备独立性”。
好处:
- 用户与物理的外围设备无关,系统增减或变更外围设备时程序不必修改;
- 易于对付输入输出设备的故障。
5.5.2 设备分配及其数据结构
从设备的特性来看,可以把设备分成
- 独占设备
- 共享设备
- 虚拟设备
相应的管理和分配外围设备的技术可分成
- 独占方式
- 共享方式
- 虚拟方式 。
常用的I/O设备分配算法:先请求先服务,优先级高者先服务等。此外,在多进程请求I/O设备分配时,应防止因循环等待对方所占用的设备而产生死锁,应预先进行性检查。
I/O设备分配的实现
设备分配的数据结构:设备类表和设备表。
系统中拥有一张设备类表,每类设备对应于表中一栏,包括内容有:设备类、总台数、空闲台数和设备表起始地址等。
每一类设备都有各自的设备表,用来登记这类设备中每一台设备的状态,包含的内容有:物理设备名、逻辑设备名、占有设备的进程号、已分配/未分配、好/坏等。
采用通道结构的系统中,设备分配的数据结构设置:系统设备表、通道控制表、控制器控制表和设备控制表。
系统建立一张系统设备表,记录配置在系统中的所有物理设备的情况。
每个通道、控制器、设备各设置一张表,记录各自的地址(标识符)、状态(忙/闲)、等待获得此部件的进程队列指针、及一次分配后相互勾链的指针,以备分配和执行I/O时使用。
虚拟设备
5.6.1 问题的提出
- 静态分配方式是不利于提高系统效率
- 采用脱机外围设备操作
- 联机同时外围设备操作(又称作假脱机操作)
5.6.2 SPOOLING设计和实现
“井”是用作缓冲的存储区域,采用井的技术能调节供求之间的矛盾,消除人工干预带来的损失。
“预输入程序”
“缓输出程序”
“井管理程序”
SPOOLING数据结构
- 作业表 登记进入系统的所有作业的作业名、状态、预输入表位置等信息。
- 预输入表 每个用户作业有一张用来登记该作业的各个文件的情况,包括设备类、信息长度及存放位置等。
- 缓输出表 每个用户作业拥有一张包括作业名、作业状态、文件名、设备类、数据起始位置、数据当前位置等。
井文件空间的管理
连接方式,输入的信息被组织成连接文件,这种方式的优点是数据信息可以不连续存放,文件空间利用率高
计算方式,假定磁盘井文件空间,每个磁道存放100个80字节记录,每张卡片为80个字节,若每个柱面有20个磁道,则一个柱面可存放2000张卡片信息。第n张卡片信息被存放在:
磁道号=卡片号n /100
记录号=(卡片号n)% 100
用卡片号n除以100的整数和余数部分分别为其存放的磁道号和记录号。
SPOOLING应用
- 打印机SPOOLING守护进程
- 网络通信SPOOLING守护进程
网友评论