第八章 输入输出管理

29
第第第 第第第第第第 (一) I/O 第第第第第第第 第第 第第第第 () 第第 第第第第第第 () 第第 () I/O 第第

description

第八章 输入输出管理. (一) I/O 管理的基本概念 (二) 缓冲技术 (三) 设备分配技术 (四) I/O 控制. (一) I/O 管理的基本概念. 一 . 计算机外部设备 在计算机系统中除 CPU 和内存储外所有的设备和装置称为计算机外部设备(外围设备、 I/O 设备)。 1. 存储设备: 用来存放各种信息的设备称为存储设备。 2. I/O 设备: 用来向计算机输入和输出信息的设备。 在现代计算机系统中有些设备既可以做存储设备,也可以做 I/O 设备。. 3. 计算机外部设备的特征: ( 1 )速度 ( 2 )传输单位 - PowerPoint PPT Presentation

Transcript of 第八章 输入输出管理

Page 1: 第八章   输入输出管理

第八章 输入输出管理

(一) I/O 管理的基本概念(二) 缓冲技术(三) 设备分配技术(四) I/O 控制

Page 2: 第八章   输入输出管理

(一) I/O 管理的基本概念一 . 计算机外部设备

在计算机系统中除 CPU 和内存储外所有的设备和装置称为计算机外部设备(外围设备、 I/O 设备)。

1. 存储设备:用来存放各种信息的设备称为存储设备。

2. I/O 设备:用来向计算机输入和输出信息的设备。

在现代计算机系统中有些设备既可以做存储设备,也可以做 I/O 设备。

Page 3: 第八章   输入输出管理

3. 计算机外部设备的特征:

( 1 )速度

( 2 )传输单位

( 3 )容许的操作(操作特性)

( 4 )出错条件

Page 4: 第八章   输入输出管理

4. 设计目标

(1) 字符代码的独立性 现在使用 ASCII 码

(2) 设备独立性

(3) 效率

(4) 设备处理的一致性

Page 5: 第八章   输入输出管理

二 . I/O 管理功能

1. 状态跟踪 设备控制块是存放设备管理和控制信息的数据结构,

动态的记录各种设备的状态。2. 制订设备分配策略 决定设备分配策略,以确定谁、何时使用设备,使用多

长时间。3. 设备分配与回收 作业级——静态分配

进程级——动态分配4. 设备控制 实施设备驱动和中断处理的工作。设备控制包括设备

的驱动、完成和故障中断处理。

Page 6: 第八章   输入输出管理

三 . 设备独立性

1. 设备独立性的概念( 1 )逻辑设备名

逻 辑设备名是用户自己定义的设备名(或设备号)。它是暂时的,可更改的。

( 2 )物理设备名物理设备名是系统提供的设备的标准名

称,它是永久的、不可更改的。( 3 )设备独立性

设备独立性是指用户在编程序时所使用的设备与实际设备无关。也就是在用户程序中可使用逻辑设备名。

Page 7: 第八章   输入输出管理

2. 两类设备独立性

( 1 )一个程序应独立于分配给它的某种类型的具体设备

即在用户程序中只指明 I/O 使用的设备类型即可。如在系统中配备了两台打印机,用户要打印时只要告诉系统要将信息送到打印机即可。

( 2 )程序要尽可能地与它使用的设备类型无关即在用户程序中只要指出要输入或输出信息,

至于信息 I/O 使用的设备不需用户指明。

Page 8: 第八章   输入输出管理

3. 设备独立性的优点

方便用户编程

提高系统资源的利用率 使用程序运行不受具体的机器环境的限制。

提高系统的可扩展性和可适应性

Page 9: 第八章   输入输出管理

四 . 设备控制块

1. 什么是设备控制块( DCB )设备控制块是设备管理的数据结构,用来存放设备的硬件特性、连接和使用情况,每类设备有一个设备控制块。

2. 设备控制块的内容设备名:是设备的系统名,即设备的物理名。设备属性:是描述设备现行状态的一组属性。命令转换表:转换表包含该设备的I/O 例程的地址。

Page 10: 第八章   输入输出管理

(二) 缓冲技术一 . 缓冲的概念1. 为什么要使用缓冲( 1 )两种设备之间传输信息时速度不匹配

( 2 )负载不均匀 系统有时会产生大量的数据需要 I/O ,有时又会很

长时间没有 I/O ,造成 I/O 负荷的不均匀。

慢速设备 快速设备

慢速设备 快速设备中速设备缓冲

Page 11: 第八章   输入输出管理

2. 什么是缓冲

缓冲是用来在两种不同速度的设备之间传输信息时平滑传输过程的常用手段。缓冲技术是用来匹配 CPU 与设备之间速度差异和负荷的不均匀。

3. 缓冲的实现( 1 )缓冲器

用来暂时存放数据的一种硬件存储装置,容量较小。

( 2 )软件缓冲区 I/O 操作期间,用来临时存放 I/O 数据的一块主存区域。

Page 12: 第八章   输入输出管理

二 . 常用的缓冲技术1. 双缓冲

系统设置两个缓冲区, BUF1 和 BUF2 ,各进程使用这两个缓冲区。这种缓冲技术是最简单的,用于低频度活动号I/O 。

S1S1w

S1S1

S2S2wS3S3

S2S2

wr

r

Page 13: 第八章   输入输出管理

2. 环形缓冲

在系统中设置若干缓冲区,并把这些缓冲区链接起来,这样若干个缓冲区就形成了一个环,故称环形缓冲区。

Page 14: 第八章   输入输出管理

3. 缓冲池

系统设置多个缓冲区,形成一个缓冲池。这个池中的缓冲区为系统中所有的进程共享使用。

UNIX 系统中,设置了一个 15 个缓冲区组成的缓冲池;为了管理这些缓冲区,建立相应的数据结构:

缓冲区管理信息数据结构

空闲缓冲区队列

满缓冲区队列等

Page 15: 第八章   输入输出管理

(三)设备分配一 . 分配原则

1. 静态分配和动态分配 静态分配 当一个作业(或进程)运行时,根据作业要求的设备,系统如果能满足,则将其要求的设备全部分配给它,然后开始运行,运行完成释放其占用的所有设备。 这种分配方式的优点是系统绝不会出现死锁,缺点是设备利用率太低。

动态分配这种分配方法是在作业(或进程)运行的过程中,需要使用设备时,就向系统申请,系统根据某种分配原则进行分配。这种方法的优点是设备的利用率高,缺点是系统有出现死锁的可能。

Page 16: 第八章   输入输出管理

2. 设备分配算法先来先服务算法优先级高者优先

3. 设备分配的安全性对于共享设备,不论采用静态分配还是采用

动态分配都不会出现死锁。对于独占设备,采用动态分配有可能造成死锁

独享分配、共享分配、虚拟分配

Page 17: 第八章   输入输出管理

设备分配的主要技术:独享、共享、虚拟技术二 . 独享分配

1. 什么是独享设备在一段时间内,由一个作业独自占用(即使没有使用)的设备。

2. 什么是独享分配在一个作业执行前,或进程提出资源申请后,将所要使用的设备分配给它;当作业结束,或进程释放后,才将分配给它的这类设备收回(不能强行收回)。

问题:设备的利用率低。

Page 18: 第八章   输入输出管理

三 . 共享分配

1. 什么是共享设备由多个作业、进程共同使用的设备称为共享设备。

2. 什么是共享分配当进程提出资源申请时,由设备管理模块进行分配。进程使用完毕后,立即收回(只让用,不让占,类似于如 CPU)。

问题:有些设备只能独享,能否将独享设备变成共享设备?

Page 19: 第八章   输入输出管理

四 . 虚拟分配1. 什么是虚拟技术

所谓虚拟技术,是在一类物理设备(如外存)上模拟另一类物理设备(如打印机)的技术,是将独占设备转化为共享设备的技术。

2. 什么是虚拟设备通常把用来代替独占设备的那部分外存空间(包括有关的控制表格)称为虚拟设备。

3. 虚拟分配当进程需要与独占型设备交换信息时,系统将分配磁盘空间,并建立相应的数据结构,这种分配方法称为设备的虚拟分配。

Page 20: 第八章   输入输出管理
Page 21: 第八章   输入输出管理

五、 SPOOLING 系统

SPOOLING系统提供假脱机技术,或称外围设备同时联机操作。

1. 设计思想(1) 预输入

在作业需要数据前,操作系统已将所需数据预先输入到辅存输入井存放。当作业(或进程)需要数据时,可以从辅存中读入内存。

(2) 缓输出在作业执行时,将输出数据写入辅存输出井中。当作业(或进程)执行完毕(或需要数据时),由操作系统将数据输出。

Page 22: 第八章   输入输出管理

2. 实现 SPOOLING 系统的基础(1) 大容量的辅存空间

在辅存上需开辟两个较大的输入井和输出井,用以存放多作业的输入信息和输出信息。

(2) 硬件基础通道装置、中断系统

(3) 数据结构预输入表、缓输出表:描述辅存输入井和输出井的状态变化的表格。

(4) 所需的软件预输入程序:控制信息从独占设备输入到辅存缓输出程序:控制信息从辅存输出到独占设备井管理程序:控制用户程序和辅存之间的信息交换

Page 23: 第八章   输入输出管理

3. 什么是 SPOOLING 系统

利用通道、中断技术,在主机控制之下,由通道完成输入输出工作。系统提供一个软件系统(包括预输入程序、缓输出程序、井管理程序、预输入表、缓输出表)。它提供输入收存和输出发送的功能,使外部设备可以并行处理。这一软件系统称为 SPOOLING 系统。

4. SPOOLING 系统的优点(1) 提供虚拟设备(2) 加快作业处理速度(3) 外围设备同时联机操作

Page 24: 第八章   输入输出管理

(五)设备控制一 . 输入 / 输出控制方法1. 循环测试 I/O 方式

早期的设备控制方式采用。问题:不能并发操作,设备的利用率低。

2. I/O 中断方式主要适用于字符设备

3. DMA 方式主要适用于磁盘

4. 通道方式

Page 25: 第八章   输入输出管理

二 . I/O 控制功能

控制设备 I/O工作的核心模块通常称为设备驱动程序。它包括三个方面的功能:

1. 解释用户 I/O命令2.设备驱动3.中断处理

设备处理程序设备处理程序是能直接控制设备运转的程序,它根据各类设备的特点和性能来编写。每一类设备有一个相应的设备处理程序,能控制同类中多台物理设备同时工作。

Page 26: 第八章   输入输出管理

控制 I/O 核心模块的方式

( 1 )以设备处理进程的方式 为每一类设备设置一个设备处理进程(对应的程序就是设备处理

程序) 该进程当有 I/O 请求来到时,被唤醒,进行设备驱动工作 当没有 I/O 请求时,就睡眠I/O控制模块的接口程序,负责解释用户的 I/O系统调用;转换成 I/O控制模块认识的命令形式;将 I/O 请求发给对应的设备处理进程。

( 2 )将设备与文件一样对待将设备与文件一样对待,使用文件系统的系统调用命令进行设备的读、写。 Unix系统就是采用这种方法。

Page 27: 第八章   输入输出管理

三 . I/O 接口程序( I/O 过程)1. 将逻辑设备转换为物理设备

根据 I/O系统调用中给出的逻辑设备名( ldev) 根据逻辑设备描述器,将逻辑设备名转换为物理设备

2. 合法性检查对所需进行的操作进行合法性检查。 根据 I/O系统调用中给出的操作模式mode 根据 DCB中命令转换标中允许的操作

3. 形成 I/O 请求块,发消息给对应的设备处理进程 将请求的参数输入到 I/O 请求块( IORB) 将 I/O 请求块( IORB)挂到对应的设备请求队列上

Page 28: 第八章   输入输出管理

四 . 请求 I/O 的进程、 I/O 过程、设备处理进程、中断处理程序之间的同步关系

Page 29: 第八章   输入输出管理

第八章 小 结一 . 设备管理的基本概念

1. I/O管理的功能2. 设备独立性 定义 优点3. 设备控制块 定义

二 . 缓冲技术1. 什么是缓冲2. 常用的缓冲技术3. 双缓冲技术4. Unix系统的缓冲管理

三 . 设备分配1. 常用的设备分配技术2. 独享设备 独享分配 定义3. 共享设备 共享分配 定义4. 虚拟设备 虚拟技术 定义

四 . I/O控制的主要功能、各进程之间的关系