一、输入输出系统的定义

计算机主机与外部进行通信系统

  • I/O系统的功能,模型和接口

1.I/O系统的基本功能

1)隐藏物理设备的细节

2)与设备的无关性
3)提高处理机和I/O设备的利用率
4)对I/O设备进行控制
5)确保对设备的正确共享
6)错误处理
2.I/O系统的层次结构

1)I/O软件的层次结构及各个层次的主要任务(如图所示)


2)I/O系统中各个模块之间层次视图

3)I/O系统的分层

(1)中断处理程序。

(2)设备驱动程序。
(3)设备独立性软件。

4)I/O系统接口

根据设备类型的不同,可以将I/O系统接口分为

1)块设备接口

2)流设备接口

3)网络通信接口

不同类型的接口所接的外设的类型

3. I/O设备和设备控制器

1)I/O设备的类型

(1)按使用特性分类:

根据外部设备的用途不同,可以将其分为输入/输出型设备与存储型设备

  1. 按传输速率分类

根据外部设备的按传输速率,可以将其分为低速设备与中速设备与高速设备

  1. 按设备的固有享属性分类(重点)
  1. 独占设备
  2. 共享设备
  3. 虚拟设备

2)设备与控制器之间的接口

通常,设备并不是直接与CPU进行通信,而是与设备控制器通信,因此,在I/O设备中应含有与设备控制器间的接口,在该接口中有三种类型的信号(见图所示),各对应一条信号线。
(1)数据信号线。
(2)控制信号线。
(3)状态信号线。

3)设备控制器

(1)设备控制器的基本功能

(1) 接收和识别命令。
(2) 数据交换。
(3) 标识和报告设备的状态。
(4) 地址识别。
(5) 数据缓冲区。
(6) 差错控制。

(2)设备控制器的组成

(1) 设备控制器与处理机的接口。
(2) 设备控制器与设备的接口。
(3) I/O逻辑。

4)内存映象I/O

I/O指令如何转换具体的I/O设备的操作,这一过程实现方式有以下两种

(1)特定的I/O指令

(2)内存映象I/O

5)I/O通道

(1)I/O通道的定义

实际上,I/O通道就是一种特殊的处理机,它具有执行I/O指令的能力,并通过执行同奥程序来控制I/O操作

(2)通道的类型

(1) 字节多路通道(Byte Multiplexor Channel)
(2) 数组选择通道(Block Selector Channel)
(3) 数组多路通道(Block Multiplexor Channel)

(3)如何解决通道处理数据的“瓶颈”问题

答:解决“瓶颈”问题的最有效的方法,便是增加设备到主机间 的通道而不增加通道,换言之,就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。多通路方式不仅解决了“瓶颈”问题,而且提高了系统的可靠性,因为个别通道或控制器的故障,不会使设备和存储器之间没有通路。

4.中断机构和中断处理程序

中断处理程序是I/O系统中最接近硬件的一层,它是整个I/O系统的基础。

1)中断处理程序何时启动?

当中断源发出请求并触发了中断屏蔽触发器,当CPU接到中断请求,并且满足相应的条件,就会响应中断,中断处理程序就会启动

2)中断处理程序的工作过程

(1)唤醒被阻塞的驱动(程序)进程

(2)保护被中断进程的CPU环境

(3)转入相应的设备处理程序

(4)中断处理

(5)恢复被中断进程的现场

3)中断处理程序调用与用户函数(子程序)调用的区别?

(1)第一,调用子程序过程发生的时间是已知和固定的,而中断过程发生的时间一般是随机的

(2)第二,子程序完全为主程序服务的,两者属于主从关系,主程序需要子程序时就去调用子程序,并把调用结果待会主程序继续执行,而中断服务现在与主程序两者一般是无关的,不存在谁为谁服务的问题,两者是平行关系

(3)第三,主程序调用子程序过程完全属于软件处理过程,怒需要专门的硬件电路,而中断系统是一个软,硬结合系统,需要专门的硬件电路才能完成中断处理过程

(4)第四,子程序嵌套可实现若干及,嵌套的最多级数由计算机内存开辟的堆栈大小限制,而中断嵌套级数主要由中断优先级数来决定,一般优先级不会很大

5.设备驱动程序

设备驱动程序是I/O系统与设备控制器之间通信程序

1)设备驱动程序的功能

(1)接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列。
(2)检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式。
(3)发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者的请求块挂在设备队列上等待。
(4)及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。

2)设备驱动程序的特点

设备驱动程序属于低级的系统例程,它与一般的应用程序及系统程序之间有下述明显差异:

(1)驱动程序是实现在与设备无关的软件和设备控制器之间通信和转换的程序,具体说,它将抽象的I/O请求转换成具体的I/O操作后传送给控制器。又把控制器中所记录的设备状态和I/O操作完成情况,及时地反映给请求I/O的进程。
(2)驱动程序与设备控制器以及I/O设备的硬件特性紧密相关,对于不同类型的设备,应配置不同的驱动程序。但可以为相同的多个终端设置一个终端驱动程序。

(3)驱动程序与I/O设备所采用的I/O控制方式紧密相关,常用的I/O控制方式是中断驱动和DMA方式。
(4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。目前有很多驱动程序的基本部分已经固化在ROM中。
(5)驱动程序应允许可重入。一个正在运行的驱动程序常会在一次调用完成前被再次调用。

3)设备处理方式

在不同的操作系统中,所采用的设备处理方式并不完全相同。
(1)为每一类设备设置一个进程,专门用于执行这类设备的I/O操作。
(2)在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。
(3)不设置专门的设备处理进程,而只为各类设备设置相应的设备驱动程序,供用户使用或系统进程调用。

4)设备驱动程序的工作过程

设备驱动程序的主要任务是启动指定设备,完成上层指定的I/O工作。但在启动之前,应先完成必要的准备工作,如检测设备状态是否为“忙”等。在完成所有的准备工作后,才向设备控制器发送一条启动命令。
  具体操作如下:
  (1)将抽象要求转换为具体要求
  (2)对服务请求进行校验
  (3)检查设备的状态
  (4)传送必要的参数
  (5)启动I/O设备

5)对I/O设备的控制方式

(1)使用轮询的可编程I/O方式

优缺点:由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费

(2)使用中断的可编程I/O方式

优缺点:在I/O设备输入每个数据的过程中,由于无须CPU的干预,因而可使CPU与I/O设备并行工作,提高了整个系统的资源利用率及吞吐量

(3)直接存储器访问方式

优缺点:

A.数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块。
B.所传送的数据是从设备直接送入内存的,或者相反。
C.仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式又进一步提高了CPU与I/O设备的并行操作程度。

(4)I/O通道控制方式

优缺点:I/O通道方式是DMA方式的发展,可进一步减少CPU的干预,即把对一个数据的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预

6.与设备无关的I/O软件

设备无关也称之为设备独立

1)设备无关的定义

应用程序独立于具体使用的物理设备

2)实现设备无关的基本思想

为实现设备独立性而引入了逻辑设备和物理设备两概念,在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称

3)与设备无关软件功能

(1)设备驱动程序的统一接口

(2)缓冲管理
(3)差错控制

(4)对独立设备的分配与回收
(5)独立于设备的逻辑数据块

4)设备分配

(1)数据结构

A.逻辑设备表LUT

在系统中可采取两种方式设置逻辑设备表:
第一种方式是在整个系统中只设置一张LUT

第二种方式是为每个用户设置一张LUT

B.设备控制表DCT(每个设备一张)

  1. 控制器控制表COCT(每个控制器一张)

E.通道控制表CHCT(每个通道一张)

F.系统设备表SDT(整个系统一张)

(2)设备分配应考虑因素

A.设备的固有属性
B.设备分配算法
C.设备分配中的安全性

(3)独占设备的分配程序

当某进程提出I/O请求后,系统额设备分配程序可按下述步骤进行设备分配

  1. 分配设备
  2. 分配控制器
  3. 分配通道:
  1. 通过COCT中与控制器连接的通道表指针,做到与该控制器连接的通道的CHCT(通道控制表),在根据CHCT内的状态信息,可知该通道是否忙碌。若忙,边疆球球I/ode进挂在该通道的等待队列上;否则,将该通道分配给进程
  2. 只有在设备,控制器和通道三者都分配成功时,这次的设备才算成功,然后,便可启动该I/O设备进行数据传送

7.用户层的I/O软件

大部分的I/O软件放在操作系统,但仍有少部分I/O软件放在用户程序中(如用户程序中涉及输入输出操作的库函数,Spooling系统)

1)系统调用和库函数之间关系

转存失败重新上传取消

2)Spooling(假脱机)系统

(1)Spooling技术

在联机情况下同时出现外围操作

(2)Spooling的组成

A.输入井和输出井。
B.输入缓冲区和输出缓冲区。
C.输入进程和输出进程。
D.井管理程序。

  1. Spooling系统的特点

A.提高了I/O的速度。
B.将独占设备改造为共享设备。
C.实现了虚拟设备功能。

  1. Spooling系统应用(假脱机打印机系统 [ 打印机共享实现方式之一] )

假脱机打印系统主要有以下三部分:
(1) 磁盘缓冲区。
(2) 打印缓冲区。
(3) 假脱机管理进程和假脱机打印进程。

  1. 守护进程(打印机共享实现方式之一)

该方案进行了某些修改,如取消该方案中的假脱机管理进程,为打印机建立一个守护进程,由它执行一部分原来由假脱机管理进程实现的功能,如为用户在磁盘缓冲区中申请一个空闲盘块,并将要打印的数据送入其中,将该盘块的首址返回给请求进程。另一部分由请求进程自己完成,每个要求打印的进程首先生成一份要求打印的文件,其中包含对打印的要求和指向装有打印输出数据盘块的指针等信息,然后将用户请求打印文件放入假脱机文件队列(目录)中。

8.缓冲区管理

缓冲区的实现有两种实现方式:一种为硬件实现(如高速缓冲区,这是在组成原理课程中所提及),一种为软件实现(将内存的特定区域在操作系统管理做为缓冲区,这是在操作系统课程所提及)

1)引进缓冲的原因

A.缓和CPU与I/O设备间速度不匹配的矛盾。
B.减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
C.解决数据粒度不匹配的问题。
D.提高CPU和I/O设备之间的并行性。

2)缓冲技术分类

A.单缓冲区

在单缓冲情况下,每当用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区,如图所示。

转存失败重新上传取消

B.双缓冲区

基本思想:

由于缓冲区是共享资源,生产者与消费者在使用缓冲区时必须互斥。如果消费者尚未取走缓冲区中的数据,即使生产者又生产出新的数据,也无法将它送入缓冲区,生产者等待。如果为生产者与消费者设置了两个缓冲区,便能解决这一问题。

转存失败重新上传取消

C.环形缓冲区

(1)环形缓冲区的组成:

多个缓冲区。在环形缓冲中包括多个缓冲区,其每个缓冲区的大小相同。作为输入的多缓冲区可分为三种类型:用于装输入数据的空缓冲区R、已装满数据的缓冲区G以及计算进程正在使用的现行工作缓冲区C。

(2)环形缓冲区的使用
nextg:指示下一个应取数据的buf

nexti:指示下一个空buf.

Getbuf:

取nextg对应缓冲区提供使用,将Nextg置为空,Nextg=(Nextg+1)Mod N

将Nexti对应缓冲区提供使用,将Nexti置为满,Nexti=(Nexti+1)Mod N

Releasebuf:

若C满,则改为G;

若C空,则改为R;

(3)进程之间的同步问题
Next i 追上Next g:

表示输入速度>输出速度,全部buf满,这时输入进程阻塞

Next g追上Next i:

输入速度<输出速度,全部buf空,这时输出进程阻塞。

转存失败重新上传取消

D.缓冲池

(1)缓冲池的组成:

三个队列:

空缓冲队列emq

输入队列inq

输出队列outq

四个工作缓冲区:

hin:收容输入数据

sin:提取输入数据

hout:收容输出数据

sout:提取输出数据

  1. 工作方式:

转存失败重新上传取消

9.磁盘存储器的性能和调度

1)磁盘的组织和格式

磁盘设备可包括一个或多个物理盘片,每个磁盘片分一个或两个存储面(Surface)(见图),每个盘面上有若干个磁道(Track),磁道之间留有必要的间隙(Gap)。为使处理简单起见,在每条磁道上可存储相同数目的二进制位。

转存失败重新上传取消

  1. 格式化处理

在真正使用磁盘时,还要进行一次高级格式化,即设置一个引导块,空闲存储管理,根目录,和一个空文件系统

转存失败重新上传取消

  1. 磁盘类型

(1)固定头磁盘

(2)移动头磁盘

4)磁盘访问时间

转存失败重新上传取消

(1)寻道时间Ts

磁头从当前位置移动到指定磁道上所经历的时间。

(s:启动磁盘时间、m:常数=0.3、n:磁道数)

Ts:随寻道距离的增大而增大,约10ms

  1. 旋转延迟时间Tr

磁头找到指定的扇区所经历的时间。

硬盘Tr=3ms       软盘100ms

(3)传输时间Tt

数据从磁盘读出,或向磁盘写入数据所经历的时间。

(r:磁盘旋转速度  N:一条磁道上的字节数  b:每次读写的字节数)

5)磁盘调度算法

(1)先来先服务(FCFS)
  这是最简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。

(2)最短寻道时间优先(SSTF)
  该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种算法不能保证平均寻道时间最短。

(3)扫描(SCAN)算法
SSTF算法的实质是基于优先级的调度算法,因此就可能导致优先级低的进程发生“饥饿”(Starvation)现象。因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必然优先满足。在对SSTF算法略加修改后,则可防止低优先级进程出现“饥饿”现象。

(4)循环扫描(CSCAN)算法
SCAN算法既能获得较好的寻道性能,又能防止“饥饿”现象,故被广泛用于大、中、小型机器和网络中的磁盘调度。但也存在这样的问题:当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,这时,该进程必须等待,待磁头继续从里向外,然后再从外向里扫描完处于外面的所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被大大地推迟。

(4)NStepSCAN算法
  在SSTF、SCAN及CSCAN几种调度算法中,都可能出现磁臂停留在某处不动的情况,例如,有一个或几个进程对某一磁道有较高的访问频率,即这个(些)进程反复请求对某一磁道的I/O操作,从而垄断了整个磁盘设备。我们把这一现象称为“磁臂粘着”(Armstickiness)。在高密度磁盘上容易出现此情况。

(5) FSCAN算法
FSCAN算法实质上是N步SCAN算法的简化,即FSCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。另一个是在扫描期间,将新出现的所有请求磁盘I/O的进程放入等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。

操作系统 第六章输入输出系统(自我总结式)相关推荐

  1. 第六章 输入输出系统-作业

    第六章 输入输出系统 1.试说明I/O系统的基本功能. 答: (1)隐藏物理设备的细节 (2)与设备的无关性 (3)提高处理机和I/O设备的利用率 (4)对I/O设备进行控制 (5)确保对设备的正确共 ...

  2. 【操作系统】第六章-输入输出系统

    六.输入输出系统 前言 I/O系统是OS的重要组成部分,用于管理诸如打印机和扫描仪等I/O设备,以及用于存储数据,如磁盘驱动器和磁带机等各种存储设备.由于I/O系统所含设备类型繁多,差异又非常大,致使 ...

  3. 第六章 输入输出系统

    包括: 需要用于输入.输出和存储信息的设备: 需要相应的设备控制器: 控制器与CPU连接的高速总线: 有的大中型计算机系统,配置I/O通道: 管理对象: • I/O设备和相应的设备控制器(I/O系统组 ...

  4. 汤晓丹的第四版计算机操作系统--第六章总结概述

    第六章 输入输出系统 1.对I/O设备进行控制:对I/O设备进行控制是驱动程序的功能. 目前对I/O设备有四种控制方式: ① 采用轮询的可编程I/O方式: ② 采用中断的可编程I/O方式: ③ 直接存 ...

  5. 【体系结构】第三章——输入输出系统

    系列文章目录 计算机体系结构是这学期(大三下)所学的一门专业课,感觉更像是操作系统与计组的融合,正好记录一下,顺带复习这两门课的内容. [体系结构]第一章--计算机系统结构的基本概念 [体系结构]计算 ...

  6. 计算机组成原理 输入输出系统,计算机组成原理(第七章输入输出系统

    计算机组成原理(第七章输入输出系统 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 第七章输入输出系统第一节基本的输入输出方式一. 外围 ...

  7. 计算机组成原理测试题——第5章 输入输出系统(上)(2)

    计算机组成原理测试题--第5章 输入输出系统(上)(2) 1单选 中断服务程序的流程可表示为(B) A.中断服务->保护现场->中断返回->恢复现场 B.保护现场->中断服务- ...

  8. 第十六章 使用系统监视器 - 系统监视器默认值

    文章目录 第十六章 使用系统监视器 - 系统监视器默认值 系统监视器默认值 默认系统监视器组件 默认系统监视器命名空间 默认系统监视器设置 第十六章 使用系统监视器 - 系统监视器默认值 系统监视器默 ...

  9. 计算机组成原理起始位,计算机组成原理第5章(输入输出系统).ppt

    文档介绍: 第五章输入输出系统5.6DMA方式5.5程序中断方式5.4程序查询方式5.3I/O接口5.2外部设备5.1概述辐滤咎尝迅香膜巍辆苞婉绒偶手赘柿基琉硕跑例退佰豆绽蛹姨亮柬鸳行爸计算机组成原理 ...

最新文章

  1. snowflake mysql_snowflake数据库
  2. sqlserver 2014使用时有Cannot find one or more components
  3. (LeetCode 203)Remove Linked List Elements
  4. python 递归目录_Python3:递归实现输出目录下所有的文件
  5. jquery判断checkbox是否选中及改变checkbox状态
  6. PAT_B_1050_C++(20分)
  7. [JavaWeb-JavaScript]JavaScript注释数据类型
  8. 哈哈哈,只有程序员才懂的黑色幽默 ... ...
  9. 【数据结构与算法】非森林版并查集V1.1的Java实现
  10. 帆软《商业智能》书籍首发,国产BI行业独家,福利发售!
  11. 基于Jenkins的嵌入式软件持续集成方法
  12. 如何在 Mac 上使用“接力”回到上次离开的地方?
  13. CSDN下载频道积分2.0
  14. 小程序框架kbone与Hybird混合开发
  15. 云原生时代,为什么基础设施即代码(IaC)是开发者体验的核心?
  16. docker,containerd,runc,docker-shim
  17. Halcon17完美破解兼容17.12.0.0附破解说明
  18. 关于JS的编码转换问题
  19. 马克•安德森:软件正在占领全世界
  20. 使用Cocoapods创建私有podspec

热门文章

  1. 国际短信系统平台发送接口说明方法|网页短信平台开发搭建-移讯云短信系统
  2. matlab应力分析,MATLAB有限元分析与应用概述.ppt
  3. VCC AVCC VDD AVDD区别(转载)
  4. Linux系统下如何复制粘贴
  5. CSS中的透明度设置
  6. vue中directives的用法
  7. 《卓有成效的管理者》——学习心得(八)
  8. 仿淘宝客户端电商平台android初级速成-张勇-专题视频课程
  9. jrtplib下载地址
  10. 关于hxxp //www hj234 com的问题