【操作系统】SPOOLing技术(外部设备联机并行操作/假脱机技术)

SPOOling技术便可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备。(生活中最常见的就是多台电脑共享同一个打印机。)

目的:为了缓和CPU的高速性与I/O设备低速性之间的矛盾而引入了脱机输入/输出技术。该技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。 SPOOLing的意思是外部设备同时联机操作,又称为假脱机输入/输出操作,是操作系统中釆 用的一项将独占设备改造成共享设备的技术。

例子:共享打印机是使用SPOOLing技术的一个实例,这项技术已被广泛地用于多用户系统和 局域网络中。当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正 立即把打印机分配给该用户进程,而只为它做两件事:

  • 由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中。
  • 输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入 其中,再将该表挂到请求打印队列上。Snip20160623_22

    SPOOLing组成:
    (1)  输入井和输出井。这是在磁盘上开辟出来的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据。输入/输出井中的数据一般以文件的形式组织管理,我们把这些文件称为井文件。一个文件仅存放某一个京城的输入(或者输出)数据,所有进程的数据输入(或输出)文件链接称为一个输入(或输出)队列。

    (2)输入缓冲区和输出缓冲区。这是在内存中开辟的两个缓冲区,用于缓和CPU和磁盘之间速度不匹配的矛盾。输入缓冲区用于暂存由输入设备传送的数据,之后再传送到输入井。输出缓冲区用于暂存从输出井传送的数据,之后再传送到输出设备。

    (3)输入进程和输出进程。输入进程也称为预输入进程,用于模拟脱机输入时的外围控制机,将用户要求的数据从输入设备传送到输入缓冲区,再存放到输入井。当CPU需要输入设备时,直接从输入井读入内存。输出进程也称为缓输出进程,用于模拟脱机输出时的外围控制机,把用户要求输入的数据从内存传送并存放到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区输出至输出设备上。

    (4)井管理程序。用于控制作业与磁盘井之间信息的交换。当作业执行过程中向某台设备发出启动输入或输出操作请求时,由操作系统调用井管理程序,由其控制从输入井读取信息或将信息输出至输出井。

    组成图:
    Snip20160623_20

 

SPOOLing技术的特点:
(1)提高了I/O速度。从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾。
(2)将独占设备改造为共享设备。因为在SPOOLing系统的系统中,实际上并没为任何进程分配设备,而知识在输入井或输出井中为进程分配一个存储区和建立一张I/O请求表。这样,便把独占设备改造为共享设备。
(3)实现了虚拟设备功能。多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,从而实现了设备的虚拟分配。不过,该设备是逻辑上的设备。

Snip20160623_21
SPOOLing除了是一种速度匹配技术外,也是一种虚拟设备技术。用一种物理设备模拟另一类物理设备,使各作业在执行期间只使用虚拟的设备,而不直接使用物理的独占设备。这种技术可使独占的设备变成可共享的设备,使得设备的利用率和系统效率都能得到提高。

【iKBC poker2】使用说明书(简体中文版)

使用说明书
图片 1

主要功能介绍:
1. 可携带式
2. 60%键盘 搭配 QWERTY 配置(61 Key)
3. Cherry MX 系列轴 (黑、青、茶、红)
4. 双层板 PCB
5. 键帽材质: ABS(喷漆镀膜-LED 专用)、PBT
6. LED 背光功能 (LED 专用)
7. USB 介面

包装内容物
1. 键盘x1
2. 使用手册 x 1
3. USB连接线x1

技术性资料
键数:
US ASCII (61 keys) = US 配置
尺寸:
约. 29.5 x 10.2 x 3.8cm (键盘)
连接线:
约 1.5 米 (mini USB B type)
按键使用寿命:
Cherry: >5000 万次

包装:
20 键盘/1 纸箱

介面:
USB (DC5V —-100mA)
可用配置:
US USA

编程说明
1. 按 PMode(FN + 右 CTRL) 进入编程模式 (空格右灯闪烁)
2. 按想要对其编程的键 (空格右灯长亮)
3. 键入编程内容然后按 PN (空格右灯再次闪烁) 【如果发现没有闪烁,可能是键盘后面第四个开关没有变为off】【如果输入着输入着发现空格爆闪,那就是说明超过了14个按键】
4. 重复步骤 2 和步骤 3 可编程其他键
5. 按 PMode(FN + 右 CTRL) 退出编程模式 (空格右灯熄灭)

备注:
• 支持 FN 层编程,在选键状态时可以对 FN 组合键(例如: FN + A)编程
• 在选键状态(步骤 1)打开文书软件(比如.txt 型文本文档)并按 PN + 任意键可自动分层显示其编程内容
• 可以加延时,每按 15ms 键(FN + F) 一次延时 15ms,每按 0.1s 键(FN + G) 一次延时 0.1s,每按 0.5s 键(FN + H) 一次延时 0.5s, 连续多次延时只计一个按键但时间累加
• 每个键最多可以编程 14 个按键
• 在编程模式 15 秒内没按任何按键会自动退出
编程使用
按 PN + 已编好程的键,或者
先按 Toggle(FN+右 SHIFT)让空格左灯亮起,再直接按已编程好的键,此时若按 PN + 已编好程的键会输出原来的键码
1. 编程示例
把A编为123:FN+右CTRL,A,1,2,3,PN
继续把FN+A编为456:FN+A,4,5,6,PN
继续把 B 编为 CTRL+C: B, CTRL(不放手), 再按 C, 放开 CTRL 和 C, PN
继续把 C 编为在 WIN7 下调用 CMD.EXE: WIN, C,FN+G,M,FN+G,D,FN+H,ENTER, PN
结束:FN+右CTRL
使用已编程的A键:PN+A =>输出123
使用已编程的FN+A键:PN+FN+A =>输出456
使用已编程的 C 键: PN + C => CMD.EXE 程序调用

切换编程直接表达层:
Toggle(FN + 右 SHIFT) => 右 FN 灯亮起
(1)使用已编程的B键:B =>输出CTRL+C的码(注:等如复制)
(2)使用已编程的 FN + A 键: FN+ A => 输出 456(注: 不需要再按 PN 键)
(3)使用已编程的 C 键: C=>调用 CMD.EXE 程序
(4)如果要输出 A 键(此时直接按 A 是输出 123): PN + A => A
返回出厂设定
按住 FN + R, 三秒后 Toggle 灯开始闪烁,继续按住 FN + R 直至空格左灯闪了 9 次便会回复出厂设定

111 222 333