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

第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.rhkb.cn/news/407352.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stability AI发布了单目视频转4D模型的新AI模型:Stable Video 4D

开放生成式人工智能初创公司Stability AI在3月发布了Stable Video 3D,是一款可以根据图像中的物体生成出可旋转的3D模型视频工具。Stability AI在7月24日发布了新一代的Stable Video 4D,增添了赋予3D模移动作的功能。 Stable Video 4D能在约40秒内生成8…

[数据集][目标检测]手钳检测数据集VOC+YOLO格式141张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):141 标注数量(xml文件个数):141 标注数量(txt文件个数):141 标注类别…

5G+工业互联网产教融合创新实训室解决方案

一、建设背景 随着第五代移动通信技术(5G)的快速普及和工业互联网的迅猛发展,全球制造业正面临着前所未有的深刻变革。5G技术凭借其超高的传输速率、极低的延迟以及大规模的连接能力,为工业自动化、智能制造等领域带来了革命性的…

访客管理系统 对接微信公众号,发送通知消息

微信公众号模板消息 - 要实现的效果图 1 公众号设置对接的域名 打开【公众号设置】 公众号设置域名,需要先用http server做安全验证。 安全验证成功后,域名配置完毕。 2 获取公众号APPID 和 Secret 3 开通模板消息 官方审核需要2-3日 4 设置IP白名单&…

芯片后端之 PT 使用 report_timing 产生报告 之 -nets 选项

今天,我们再学习一点点 后仿真相关技能。 那就是,了解 report_timing 中的 -nets 选项 。 如果我们仅仅使用如下命令,执行后会发现: pt_shell> report_timing -from FF1/CK -to FF2/d -delay_type max 我们使用命令 report_timing 报出的如上路径延时信息,仅仅显示…

docker yapi安装

概述 YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单…

学习记录——day35 数据库 sqlite3

目录 一、安装sqlite3数据库以及sqlite3函数库 二、数据库的结构 三、常用数据库类型 1、sqlite3 2、mysql 四、sqlite3数据库的使用 1、打开数据库 2、sqlite3数据库中指令的使用 1)界面指令 2)操作指令 3)大小写敏感性 3、创建表…

外排序之文件归并排序实现

外排序介绍 外排序是指能够处理极大量数据的排序算法。通常来说,外排序处理的数据不能一次装入内存,只能放在读写较慢的外存储器(通常是硬盘)上。外排序通常采用的是⼀种“排序-归并”的策略。在排序阶段,先读入能放在内存中的数据量&#x…

贪吃蛇(Qt版)

目录 一、项目介绍 界面一:游戏大厅界面 界面二:关卡选择界面 界面三:游戏界面 最终游戏效果: 二、项目创建与资源配置 1. 创建项目 2. 添加项目资源文件 三、项目实现 1. 游戏大厅界面 2. 关卡选择界面 3. 游戏房间界…

TCP 粘包问题

TCP是一个面向字节流的传输层协议。“流” 意味着 TCP 所传输的数据是没有边界的。这不同于 UDP 协议提供的是面向消息的传输服务,其传输的数据是有边界的。TCP 的发送方无法保证对方每次收到的都是一个完整的数据包。于是就有了粘包、拆包问题的出现。粘包、拆包问…

进程的创建、终止

目录 前言1. 进程创建2. 进程终止3. exit && _exit 的异同3.1 相同点3.2 不同点 前言 紧接着进程地址空间之后,我们这篇文章开始谈论进程控制相关的内容,其中包括进程是如何创建的,进程终止的几种情况,以及进程异常终止的…

Android低内存设备系统优化

切记,所有的优化都遵循一条准则: 空间换时间,时间换空间。 一、前言 我们为什么会觉得卡顿、不流畅? 卡顿等性能问题的最主要根源都是因为渲染性能,Android系统很有可能无法及时完成那些复杂的界面渲染操作。Android系统每隔16ms发出信号,触发对UI进行渲染,如果每次渲染…

Thinkphp6 反序列化漏洞分析

本文来自无问社区,更多实战内容可前往查看http://wwlib.cn/index.php/artread/artid/10431.html 版本:Thinkphp6&PHP7.3.4 TP 环境搭建利用 composer 命令进行,同时本次分析在 windows 环境下进行 composer create-project topthink/t…

Android 架构模式之 MVP

目录 架构设计的目的对 MVP 的理解代码ModelViewPresenter Android 中 MVP 的问题试吃个小李子ModelViewPresenter效果展示 大家好! 作为 Android 程序猿,你有研究过 MVP 架构吗?在开始接触 Android 那一刻起,我们就开始接触 MVC…

高频变压器无功补偿怎么做

高频变压器的无功补偿主要是为了提高功率因数、减小无功损耗、提高电源利用率。在高频电路中,由于频率较高,传统的无功补偿方法需要进行一定的调整和优化。以下是高频变压器无功补偿的一些方法和建议: 1、无功补偿电容器 高频电容器选择&…

具有手势识别的动捕设备——mHand Pro VR数据手套

数据手套是指通过手套内置的传感器,实时采集手部运动数据的动捕设备,通常被应用于虚拟仿真、虚拟现实vr交互、动画制作等领域。其中,基于惯性动作捕捉技术研发的数据手套,凭借其高性价比的优势,在市面上的应用更为广泛…

STM32G474按钮输入和点灯

在获取到工程模板后,学习某个CPU的第一步通常都是IO口操作。因此按钮输入和点灯,就是本次学习的第一个程序。先从简单入手。 和GPIO操作有关的函数如下: __HAL_RCC_GPIOA_CLK_ENABLE();//使能GPIOA时钟 __HAL_RCC_GPIOB_CLK_ENABLE();//使能GPIOB时钟 _…

深度理解指针(2)

hello各位小伙伴们,关于指针的了解我们断更了好久了,接下来这几天我会带领大家继续我们指针的学习。 目录 数组名的理解 使用指针访问一维数组 一维数组传参的本质 二级指针 指针数组 使用指针数组来模仿二维数组 数组名的理解 我们首先来看一段…

【开源社区】Elasticsearch(ES)中 exists 查询空值字段的坑

文章目录 1、概述2、使用 null_value 处理空值3、使用 exists 函数查询值为空的文档3.1 使用场景3.2 ES 中常见的空值查询方式3.3 常见误区3.4 使用 bool 查询函数查询空值字段3.5 exists 函数详解3.5.1 bool 查询的不足3.5.3 exists 的基本使用 3.6 完美方案 1、概述 本文主要…

单例模式 详解

单例模式 简介: 让类只初始化一次, 然后不同的地方都能获取到同一个实例 这是非常常用的一种模式, 系统稍微大一点基本上都会用到. 在系统中, 不同模块的总管理类都已单例模式居多 这里我们不仅使用c实现单例模式, 也会用python2实现一遍 python代码 想要看更详细的python单…