《计算机操作系统》(第4版)第6章 输入输出系统 复习笔记

news2024/10/2 10:33:59

第6章 输入输出系统

一、I/O 系统的功能、模型和接口 1.I/O    系统的基本功能

(1)隐藏物理设备的细节。

(2)与设备的无关性。

(3)提高处理机和I/O 设备的利用率。 ( 4 ) I/O 设备进行控制。

(5)确保对设备的正确共享。

(6)错误处理。

2.I/O   系统的层次结构和模型

(1)I/O    软件的层次结构

如图6-1所示为I/O 系统的层次结构,图中的箭头表示I/O 的控制流:

图6-1 I/O 系统的层次结构

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

如图6-2所示,I/O 系统中各种I/O 模块之间的层次视图。

图6-2 I/O 系统中各种模块之间的层次视图

3.I/O   系统接口

在I/O 系统与高层之间的接口中,根据设备类型的不同,又进一步分为:

(1)块设备接口。

(2)流设备接口(字符设备接口)。

(3)网络通信接口。

二、I/O 设备和设备控制器

1.I/O   设备

(1)I/O    设备的类型

①按使用特性分类

I/O 设备按照使用特性分为存储设备和I/O 设备,其中I/O 设备又可分为输入设备、输出设备和交互式设备。

②按传输速率分类

从设备的传输速率上I/O 设备又分为低速设备、中速设备和高速设备。

③信息交换的单位

I/O 设备按照信息交换的单位分为块设备和字符设备。

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

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

2. 设备控制器

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

①接收和识别命令。

②数据交换。

③标识和报告设备的状态。

④地址识别。

⑤数据缓冲区。

⑥差错控制。

(2)设备控制器的组成

设备控制器的组成如图6-4所示,包括:

①设备控制器与处理机的接口。

②设备控制器与设备的接口。

③I/O 逻辑。

图6-4 设备控制器的组成

3.I/O    通道

(1)I/O    通道设备的引入 ①定义

I/O 通道是专门负责输入/输出的处理机。

②与一般处理机的差别

a. 其指令类型单一;

b.  通道没有自己的内存,通道程序是放在主机的内存中的,即通道与CPU 共享内存。

(2)通道类型

根据信息交换方式的不同,可把通道分成以下三种类型:

①字节多路通道。

②数组选择通道。

③数组多路通道。

三、中断机构和中断处理程序

1. 中断简介

(1)中断和陷入 ①中断

中断是指CPU  I/O 设备发来的中断信号的一种响应。中断是由外部设备引起的,故又称外中断。 ②陷入

a. 定义

陷入是指一种由CPU 内部事件所引起的中断,也称为内中断。

b.  与中断的区别

中断和陷入的主要区别是信号的来源,即是来自CPU 外部,还是CPU 内部。

(2)对多中断源的处理方式

①屏蔽(禁止)中断。

②嵌套中断。

2. 中断处理程序

中断处理程序的处理过程可分成以下几个步骤:

(1)测定是否有未响应的中断信号。

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

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

(4)中断处理。

(5)恢复CPU 的现场并退出中断。 中断的处理流程如图6-5所示。

图6-5 中断处理流程

四、设备驱动程序

1. 设备驱动程序概述

(1)设备驱动程序的功能

①接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列。

②检查用户I/O 请求的合法性,了解I/O 设备的工作状态,传递与I/O 设备操作有关的参数,设置设备的工 作方式。

③发出I/O 命令,如果设备空闲,便立即启动I/O 设备,完成指定的I/O 操作;如果设备忙碌,则将请求者 的请求块挂在设备队列上等待。

④及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。

(2)设备驱动程序的特点

①驱动程序是实现在与设备无关的软件和设备控制器之间通信和转换的程序。

②不同类型的设备应配置不同的驱动程序。

③驱动程序与I/O 设备所采用的I/O 控制方式紧密相关。

④有很多驱动程序的基本部分已经固化在ROM  中。

⑤驱动程序应允许可重入。

(3)设备处理方式

①为每一类设备设置一个进程。

②在整个系统中设置一个I/O 进程。

③不设置专门的设备处理进程,而只为各类设备设置相应的设备驱动程序,供用户或系统进程调用。

2. 设备驱动程序的处理过程

(1)将抽象要求转换为具体要求。

(2)对服务请求进行校验。

(3)检查设备的状态。

(4)传送必要的参数。

(5)启动I/O 设备。

3 . I/O 设备的控制方式

(1)程序I/O  

此时CPU  I/O 设备只能串行工作。图6-6(a) 示出了程序I/O 式的流程。

图6-6 程序I/O 和中断驱动方式的流程

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

此时,CPU  I/O 设备并行操作。图6-6 (b)   显示了中断驱动方式的流程。

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

图6-6 (c)   显示了DMA 方式的基本流程。

DMA 方式的特点

a.  数据传输的基本单位是数据块,即在CPU  I/O 设备之间,每次传送至少一个数据块。

b.  所传送的数据是从设备直接送入内存的,或者相反。

c. 仅在传送一个或多个数据块的开始和结束时才需CPU 干预,整块数据的传送是在控制器的控制下完成的。

DMA 控制器的组成

如图6-7所示,DMA控制器由主机与DMA 控制器的接口;DMA 控制器与块设备的接口;I/O控制逻辑三部分组成。

图6-7 DMA 控制器的组成

DMA  工作过程

图6-8是DMA方式的工作流程。

图6-8 DMA  方式的工作流程图

【说明DMA 方式在内存和I/O 设备之间开辟直接数据通道。

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

①I/O 通道控制方式的特点

a.  数据传输的基本单位是一组数据块。

b.  实现了CPU、通道和I/O 设备三者的并行操作。

②通道程序

通道程序是由一系列通道指令(或称为通道命令)所构成的。

五、与设备无关的I/O 软件

1. 基本概念

(1)I/O    重定向

所谓I/O 重定向,是指用于I/O 操作的设备可以更换(即重定向),而不必改变应用程序。

(2)设备无关性

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

2.与设备无关的软件

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

(2)缓冲管理。

(3)差错控制。

(4)对独立设备的分配与回收。

(5)独立于设备的逻辑数据块。

3. 设备分配

(1)设备分配中的数据结构

①设备控制表DCT

系统为每一个设备都配置了一张设备控制表,用于记录设备的情况,如图6-9所示。

图6-9 设备控制表

②控制器控制表、通道控制表和系统设备表

a.  控制器控制表 (COCT)

系统为每一个控制器都设置了用于记录控制器情况的控制器控制表,如图6-10(a)所示。

b.  通道控制表 (CHCT)

每个通道都有一张通道控制表,如图6-10(b)所示。

c.  系统设备表 (SDT)

记录了系统中全部设备的情况,每个设备占一个表目,如图6-10(c)所示。

图6-10 COCT CHCT SDT 

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

①设备的固有属性。

②设备分配算法。

③设备分配中的安全性。

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

首先分配设备,其次分配控制器,最后分配通道。

4. 逻辑设备名到物理设备名映射的实现

(1)逻辑设备表LUT

在逻辑设备表的每个表目中包含了三项:逻辑设备名、物理设备名和设备驱动程序的入口地址。

(2)逻辑设备表的设置问题

①在整个系统中只设置一张 LUT。

②为每个用户设置一张LUT

六、用户层的I/O 软件

1. 系统调用与库函数

(1)系统调用

系统调用将CPU 的状态从用户态转换到核心态,图6-11显示了系统调用的执行过程。

图6-11 系统调用的执行过程

(2)库函数

内核提供了OS 的基本功能,而库函数扩展了OS 内核,使用户能方便取得操作系统的服务。

2 .假脱机 (SPOOLing)  系统

(1)假脱机技术 (Simultaneaus Periphemal Operating OnLine,SPOOLing 技术)

把在联机情况下外围操作与CPU 对数据的处理同时进行的技术称为SPOOLing  技术,或称为假脱机技术。

(2)SPOOLing   的组成

如图6-12 (a)   所示为SPOOLing系统的组成。SPOOLing的工作原理如图6-12 (b)   示。

图6-12 SPOOLing 系统组成及工作原理 SPOOLing 系统主要由以下四部分构成:

①输入井和输出井

输入井和输出井是在磁盘上开辟出来的两个存储区域。

②输入缓冲区和输出缓冲区

这是在内存中开辟的两个缓冲区,用于缓和CPU 和磁盘之间速度不匹配的矛盾。

③输入进程(预输入进程)和输出进程(缓输出进程)。

④井管理程序。

(3)SPOOLing   系统的特点

①提高了I/O的速度。

②将独占设备改造为共享设备。

③实现了虚拟设备功能。

七、缓冲区管理

1. 缓冲的引入

(1)缓和CPU  I/O 设备间速度不匹配的矛盾。

(2)减少对CPU 的中断频率,放宽对CPU 中断响应时间的限制。

(3)解决数据粒度不匹配的问题。

(4)提高CPU  I/O 设备之间的并行性。

2.单缓冲区和双缓冲区

(1)单缓冲区

假定从磁盘把一块数据输入到缓冲区的时间为T,OS  将该缓冲区中的数据传送到用户区的时间为M, CPU 对这一块数据处理(计算)的时间为C T  C 是可以并行的(见图6-13)。单缓冲区处理每块数据的用时为  max(C,T)+M

图6-13 单缓冲工作示意图

(2)双缓冲区

双缓冲区处理一块数据的用时为max(C+M,T), 如图6- 14所示。

图6-14 双缓冲工作示意图

3. 环形缓冲区

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

4. 缓冲池

(1)缓冲池的组成

①缓冲区的组成

缓冲池管理多个缓冲区,每个缓冲区由用于标识和管理的缓冲首部以及用于存放数据的缓冲体两部分组成。

②三个队列

a.  空白缓冲队列emq

b. 输入队列inq

c.   输出队列outq

③四种工作缓冲区

a.  用于收容输入数据的工作缓冲区; b.  用于提取输入数据的工作缓冲区; c.  用于收容输出数据的工作缓冲区;

d.   以及用于提取输出数据的工作缓冲区。 (2)缓冲区的工作方式

缓冲区可以工作在如下四种工作方式,如图6-15所示。

图6-15 缓冲区的工作方式

八、磁盘存储器的性能和调度

1. 磁盘性能简述

(1)数据的组织和格式

①磁盘的结构和布局如图6-16所示。

图6-16 磁盘的结构和布局

②磁盘格式化

为了在磁盘上存储数据,必须先将磁盘低级格式化。

(2)磁盘的类型

①固定头磁盘。

②移动头磁盘。

(3)磁盘访问时间

可把对磁盘的访问时间分成以下三部分。

①寻道时间Ts。假 设s 为启动磁臂的时间;m 是与磁盘驱动器速度有关的常数;n 为磁头移动的磁道数,则

②旋转延迟时间L。 假设磁盘的旋转速度为r,则

③传输时间Tt。假设每次所读/写的字节数为b, 一条磁道上的字节数为N, 

因此,总的平均访问时间Ta 表示为:

2.早期的磁盘调度算法

(1)先来先服务 (FCFS)   算法

FCFS 算法根据进程请求访问磁盘的先后次序进行调度。

(2)最短寻道时间优先 (SSTF)    算法

SSTF 算法每次选择与当前磁头所在的磁道距离最近的磁道,以使每次的寻道时间最短。

SSTF 算法不能保证平均寻道时间最短,可能导致优先级低的进程发生“饥饿”现象。

3. 基于扫描的磁盘调度算法

( 1 )   (SCAN)   算 

扫描算法在磁头当前移动方向上选择与当前磁头所在磁道距离最短的磁道。

(2)循环扫描 (CSCAN)   算法

为了减少SCAN    CSCAN 算法规定磁头单向移动,到尽头后直接返回到另一端的开始位置。

(3)LOOK     CLOOK 调度算法

LOOK算法

LOOK 算法是对 SCAN 算法的一种改进,由于SCAN 算法的磁头要走到磁盘尽头才会转换方向,而实际上 并不需要走到尽头,只需要走到该方向上最后一个请求即可。

CLOOK  算法

CLOOK  同理是一种对CSCAN  算法的改进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2065557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

21.1 Netty介绍及服务搭建

21.1 基于Netty实现聊天 一. 章节概述二. `Netty`介绍三. 阻塞与非阻塞1. 阻塞与非阻塞简介2. BIO同步阻塞3. NIO同步非阻塞4. AIO异步非阻塞IO5. 异步阻塞IO(用的极少)6. 总结四. Netty三种线程模型1. 单线程模型2. 多线程模型3. 主从线程模型五. 构建Netty服务器************…

【传输层协议】UDP协议 {端口号的范围划分;UDP数据报格式;UDP协议的特点;UDP的缓冲区;基于UDP的应用层协议}

一、再谈端口号 1.1 端口号标识网络进程 如何通过端口号找到主机上的网络进程? 在socket编程中bind绑定是最为重要的一步:他将套接字与指定的本地 IP 地址和端口号关联起来,这意味着指定的套接字可以接收来自指定 IP 地址和端口号的数据包…

跟李沐学AI:转置卷积

定义 卷积不会增大输入的高宽,通常卷积层后高宽不变或减半。转置卷积则可以用来增大输入的宽高。 转置卷积是一种卷积,它将输入和核进行了重新排列,通常用作上采用。 如果卷积将输入从变为,同样超参数的情况下,转置…

坐标大连!提交EI、Scopus、知网检索!第五届经济管理与大数据应用国际学术会议(ICEMBDA 2024)

合作ACM出版-EI稳检索 高录用,快见刊! 管理、经济、金融、计算机相关主题均可投稿 目前仍有口头汇报名额,如有需要请尽快报名 重要信息 会议官网:www.icembda.org 会议时间:2024年10月25日-27日 会议地点&#x…

20.缓存的更新策略

定义 缓存中的旧数据与数据库不一致。 缓存更新策略的类型 1.内存淘汰,利用redis的内存淘汰机制,当内存不足时自动淘汰部分数据。下次查询时更新缓存。redis默认开启了此机制。这种保证数据的一致性差。 2.超时剔除,给缓存数据添加TTL时间…

保证MQ的高可用性:RabbitMQ为例

保证MQ的高可用性:RabbitMQ为例 一、单机模式二、普通集群模式三、镜像集群模式 💖The Begin💖点点关注,收藏不迷路💖 消息队列(MQ)在软件开发中至关重要,其高可用性关乎系统稳定。R…

48、Python之模块和包:当导入模块时,Python解释器做了什么

引言 上一篇文章中,我们简单介绍了各种导入模块的方法,并通过代码演示了模块被导入之前的模块查找的路径解析过程,但是,只是局限在了加载模块之前。 今天这篇文章,打算把整个模块导入的全流程进行梳理,从…

Windows上传Linux文件行尾符转换

Windows上传Linux文件行尾符转换 1、Windows与Linux文件行尾符2、Windows与Linux文件格式转换 1、Windows与Linux文件行尾符 众所周知,Windows、Mac与Linux三种系统的文件行尾符不同,其中 Windows文件行尾符(\r\n): L…

【初阶数据结构题目】40. 计数排序

计数排序 计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。 操作步骤: 统计相同元素出现次数 根据统计的结果将序列回收到原来的序列中 思路: 例如:{6,1,2,9,4,…

书生模型实战L1---OpenCompass 评测

书生模型实战系列文章目录 第一章 入门岛L0(Linux) 第二章 入门岛L0(python) 第三章 入门岛L0(Git) 第四章 基础岛L1(书生全链路开源介绍) 第五章 基础岛L1(Demo&#x…

【计算机三级-数据库技术】操作题大题(第六套)

第六套操作题 第46题 假定要建立一个学校科研项目管理的信息系统,需要管理如下信息: 教师:教师编号、教师姓名; 项目:项目编号、项目名称、资助额: 学生:学生编号、学生姓名、学位&#xff0c…

Spring底层机制环境搭建

文章目录 1.模块创建和依赖引入1.聚合模块,下面有一个myspring2.查看父模块是否管理了子模块3.myspring模块引入基本包 2.进行环境搭建1.目录概览2.UserController.java3.UserService.java4.UserDao.java5.AppMain.java6.beans.xml7.测试8.配置UserController.java为…

教程3_单元层次结构1

单元层次结构是指通过将多个单元嵌套使用,形成具有层次结构的设计。每个单元可以包含其他单元的实例,这些实例称为“子单元”,而包含这些子单元的单元称为“父单元”。这种结构使得复杂设计变得模块化和可复用。 1、创建并使用单元实例 创建…

解读电子看板如何助力线缆行业目视化改革

线缆行业作为国民经济的重要组成部分,其生产过程复杂,环节众多,对生产效率和质量控制有着严格的要求。传统的管理方式往往难以满足现代化生产的需求,而电子看板的引入,为线缆行业带来了全新的管理理念和模式&#xff0…

23.合并K个升序链表-----力扣

一、题目: 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 题目链接 二、示例: 输入:lists [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释…

​元宇宙虚拟展厅如何搭建?制作​线上虚拟展厅的成本

电子商务热潮的日益普及,让更多企业开始寻找具有创新性的方式来向客户展示他们的产品和服务。而元宇宙中的虚拟展厅也为企业提供了一个独特的机会,作为帮助企业展示其产品和服务特色的平台,元宇宙越发地受欢迎。不过在元宇宙中制作虚拟展厅的…

自带灭火电池?深蓝SL03托底事故揭秘

近日,网络上的一段热传视频,让不少网友看得先是惊心动魄,然后却又啧啧称奇。 该视频显示,8月18日晚上19点28分,一辆深蓝SL03在行驶中意外遭遇严重托底事故,车辆瞬间腾空跳跃,紧接着底盘出现明火…

【状态模式】设计模式系列:理解与实践(详细解读)

文章目录 状态模式详解:理解与实践1. 引言2. 状态模式简介2.1 定义2.2 应用场景2.3 与其他模式的关系 3. 状态模式的基本概念3.1 上下文(Context)类的角色3.2 状态(State)接口/抽象类3.3 具体状态(Concrete State)类3.4 UML类图和时序图 4. 状态模式的工作原理4.1 如…

用Python解决预测问题_多元线性回归模板

多元线性回归是一种统计学方法,用于分析两个或多个自变量(解释变量)与一个因变量(响应变量)之间的关系。在最简单的线性回归模型中,只有一个自变量和一个因变量,它们之间的关系可以用一条直线来…

Java对象的内存结构

文章目录 概述1. 对象头 (Header)Mark Word1. 32位HotSpot虚拟机中的MarkWord2. 64位HotSpot虚拟机中的MarkWord Class PointerArray Length指针压缩原理指针压缩测试 2. 实例数据 (Instance Data)3. 填充数据 (Padding Data) 查看 Java 对象的内存结构使用反射和VisualVM、JCo…