计算机操作系统(慕课版)第七章学习笔记

2024-02-29 22:04

本文主要是介绍计算机操作系统(慕课版)第七章学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第七章 输入/输出系统
在这里插入图片描述
7.1 I/O系统的功能、模型和接口

I/O系统管理的主要对象
I/O设备和相应的设备控制器。
其最主要的任务
完成用户提出的I/O请求
提高I/O速率
提高设备的利用率
为更高层的进程方便地使用这些设备提供手段

7.1.1 I/O系统的基本功能
1、能够隐藏物理设备的细节
2、能够保证OS与设备无关
3、能够提高处理机和I/O设备的利用率
4、能够对I/O设备进行控制
5、能够确保对设备的正确共享
6、能够处理错误

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

I/O软件的层次结构
在这里插入图片描述

I/O系统中各种模块之间的层次视图
在这里插入图片描述

7.1.3 I/O系统接口
在I/O系统与高层之间的接口中,根据设备类型的不同,又进一步分为若干个接口。
1 块设备接口

  • 块设备:也叫存储设备。信息交换的基本单位为字符块,属于有结构设备,块大小一般为512B—4KB,典型的有:磁盘、-光盘等。通常采用DMA I/O方式
  • 隐藏了磁盘的二维结构。
  • 将抽象命令映射为低层操作。
    (如收到读磁盘命令时,先将抽象命令中的逻辑块号转换为磁盘的盘面、磁道和扇区等)

2 流设备接口
该接口又称为字符设备接口,它反映了大部分字符设备的本质特征,用于控制字符设备的输入或输出。

  • 字符设备:信息交换的基本单位为字符,典型的有:键盘、打印机和显示器等。通常采用中断驱动I/O方式。
  • get和put操作。字符设备采用顺序存取方式
    • get操作用于从字符缓冲区取得一个字符(到内存),并将它返回给调用者。
    • put操作用于将一个新字符(从内存)输出到字符缓冲区网络。
  • in-control指令。包含许多参数,每个参数均表示一个与具体设备相关的特定功能。

3 网络通信接口
OS提供相应的网络软件和网络通信接口,以使计算机能通过网络同网络上的其他计算机进行通信,或上网浏览信息。

7.2 I/O设备和设备控制器
1 I/O设备一般是由执行I/O操作的机械部分和执行控制I/O的电子部件组成,电子部分称为设备控制器或适配器,机械部分是设备本身。

2 设备与控制器之间的接口
通常,设备并不是直接与CPU进行通信,而是与设备控制器通信,因此,在I/O设备中应含有与设备控制器之间的接口。有三种类型的信号线:
在这里插入图片描述

1)数据信号线。这类信号线用于在设备和设备控制器之间传送数据信号。
2)控制信号线。这是作为由设备控制器向I/O设备发送控制信号时的通路。该信号规定了设备将要执行的操作,如读操作或写操作,或执行磁头移动等操作。
3)状态信号线。用于传送指示设备当前状态的信号。设备的当前状态有正在读(或写),设备已读/写完成,并准备好新的数据传送。

1.设备控制器的功能:

  • 控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换
  • 设备控制器是CPU和I/O设备之间的接口。接收从CPU发来的命令,并去控制I/O设备工作
  • 设备控制器是一个可编址的设备
    • 当仅控制一个设备时,它只有一个惟一的设备地址
    • 若控制器可连接多个设备时,则应含有多个设备地址,并使每一个设备地址对应一个设备
      2 设备控制器的组成
  • 设备控制器与处理机的接口
  • 设备控制器与设备接口
  • I/O逻辑
  • 硬件支持:控制寄存器(存放命令及参数)、数据寄存器(存放数据)、状态寄存器(记录设备状态)

在这里插入图片描述

CPU与控制器接口:实现CPU与设备控制器之间的通信,包括数据线、地址线和控制线
设备控制器与设备的接口:一个设备控制器可以连接一个或多个设备
I/O逻辑:实现对设备的控制。

7.2.3 内存映像I/O
驱动程序将抽象I/O命令转换成具体的命令和参数等装入设备控制器的相应寄存器,由控制器执行这些命令,具体实施对I/O设备的控制。具体方法:
1.利用特定的I/O指令

  • 访问内存和设备需要两种不同的指令
    2.采用内存映像I/O
  • 在编址上不在区分内存单元地址和设备控制器中的寄存器地址,统一编址 k 。 k在0~n-1范围时,为内存地址;若k>=n时,为某控制器的寄存器地址
  • 统一了访问方法,简化了I/O编程
    在这里插入图片描述
    7.2.4 I/O 通道
    引入通道的目的:
    使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来

用于I/O操作的命令主要有两种:
I/O指令:启动通道程序
通道命令:对I/O操作进行控制

7.2.5 I/O设备的控制方式
1.使用轮询的可编程I/O方式(基本不用)

  • ①由CPU定时发出询问,询问设备是否忙,进程进入忙等
  • ②不忙即进行I/O,否则转①
    实现容易,但效率偏低,CPU会长期处于忙等待
    2.使用中断的可编程I/O方式(广泛采用)
  • 当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定的I/O设备。此时,CPU与I/O设备并行操作。

设备管理的主要任务之一就是控制设备和内存或CPU之间的数据传送。
选择和衡量控制方式有如下3条原则:

  • 数据传送速度足够高,能满足用户需要但又不丢失数据;
  • 系统开销小,所需处理控制程序少;
  • 能充分发回硬件资源的能力,使I/O设备尽量忙,而CPU等待时间少

DMA工作过程
1 CPU提供被读取块磁盘地址,并将目标存储地址和待读取字节数分别存放在MAR与DC中。
2 校验无误,进程入阻塞态。
3 控制器按照MAR中地址,把第一个字节送入主存,然后计数器值(DC)减1 ,按指定字节数进行数据传送其他字节,直到字节计数器等于0。
4 控制器引发中断,通知操作系统,操作完成。
在这里插入图片描述

7.3.2 中断处理程序
在这里插入图片描述
7.5 与设备无关的I/O软件
基本概念:为了提高OS的可适应性和可扩展性,在现代OS中都无一例外地增加了与设备无关的I/O软件,以实现了设备独立性,也称设备无关性。

7.5.5 I/O调度
调度一组I/O请求:按照确定好的顺序来执行I/O操作;提高计算机效率。
通过I/O调度可以

  • 改善系统整体性能;
  • 在进程间公平共享设备访问;
  • 减少完成I/O调度所需的平均等待时间。

7.6.2 假脱机系统

  • 1 为了缓和CPU的高速性与I/O设备的低速性间矛盾而引入
    • 利用一个程序模拟脱机输入时的外围控制机功能,将低速的I/O设备上的数据传送到高速的磁盘上。
    • 用另一道程序模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备
  • 外围操作与CPU对数据的处理同时进行,这种在联机情况下实现的同时外围操作称为SPOOLing
    • 是操作系统中采用的一项将独占设备改造成为共享设备的技术。

SPOOLING系统的组成

  • 输出井和输入井:在磁盘上开辟的两个大的存储空间,

    • 输入井:模拟脱机输入时的磁盘设备,用于暂存输入设备输入的数据
    • 输出井:模拟脱机输出时的磁盘,用于暂存用户程序的输出数据
  • 输入缓冲区和输出缓冲区:为了缓和CPU和磁盘之间速度不匹配的矛盾,在内存中开辟了两个缓冲区。

    • 输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井;
    • 输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。
  • 输入进程Spi

    • Spi模拟脱机输入时的外围控制机,将用户要求的数据从输入设备通过输入缓冲区再送入输入井,当CPU需要输入数据时,直接从输入井读入内存
  • 输出进程Spo

    • Spo模拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上
  • 井管理程序

    • 用于控制作业与磁盘井之间信息的交换

在这里插入图片描述
3 SPOOLING系统的特点

  • 提高了I/O的速度
    -对数据进行的I/O操作,已从对低速I/O设备进行的I/O操作,演变为对输入井或输出井中数据的存取

  • 将独占设备改造成共享设备

    • 实际上并没有为任何进程分配设备,只是在输入井或输出井中为进程分配一个存储区和建立一张I/O请求表
  • 实现了虚拟设备功能

    • 宏观上,多个进程同时使用一台独占设备;对每个进程来说,认为是自己独占了一个设备
  • 假脱机管理进程

    • 在磁盘缓冲区中为之申请一个空闲盘块,并将要打印的数据送入其中暂存
    • 为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入表中,再将该表挂到假脱机文件队列上
  • 假脱机打印进程

    • 当打印机空闲时,进程从请求打印队列的队首取出一张请求打印表,根据表中的要求将要打印的数据,从输出井传送到内存缓冲区,再由打印机进行打印
    • 打印完,进程再次察看请求打印队列,若非空,重复上述工作,直到队列为空。此后进程才将自己阻塞起来。仅当下次再有打印请求时,进程才被唤醒

7.7 缓冲管理
缓冲的引入
通道的建立提供了CPU、通道和I/O设备之间并行操作的可能性,但由于通道数量不足会产生“瓶颈”现象,影响并行的程度,引入缓冲可以减少占用通道的时间,缓解“瓶颈”现象。
引入缓冲的主要原因

  • 缓冲CPU与I/O设备间速度不匹配的矛盾。
  • 减少中断CPU的次数
  • 解决数据粒度不匹配的问题。
  • 提高CPU与I/O设备的并行性

缓冲:就是用来对数据传送速度不同的设备的传送速度进行匹配/缓冲的一种常用手段。
其实现方法除在关键地方可采用硬件缓冲器外,大都采用软件缓冲来实现。

在这里插入图片描述

单缓冲:
在设备和处理机之间设置一个缓冲。设备与处理机交换数据时,先把交换的数据写入缓冲区,然后需要数据的设备/处理机再从缓冲区中取走数据。
特点:缓冲区数只有一个;设备与处理机对缓冲区的操作是串行的。是操作系统能提供的最简单的缓冲技术。

双缓冲:
在设备和处理机之间设置2个缓冲。设备与处理机交换数据时,先把交换的数据写入缓冲区,然后需要数据的设备/处理机再从缓冲区中取走数据。因缓冲区有2个,提高了设备与处理机并行操作的程度,只有当两个均为空时,需数据的进程才等待。

循环缓冲
(1) 多个缓冲区
作为输入的多缓冲区可分为三种类型:
用于装输入数据的空缓冲区R,
已装满数据的缓冲区G
计算进程正在使用的现行工作缓冲区C
(2)多个指针
nextg(指示程序下一次可用的已经装满的数据缓冲区G)
nexti(指示输入设备下一次可使用的空缓冲区R)
current(用来指示程序正在使用的现行缓冲区)

缓冲池
1、缓冲池:将系统内所有的缓冲区统一管理起来,就形成了能用于输入/输出的缓冲池。缓冲池通常由若干大小相同的缓冲区组成,是系统的公用资源,任何进程都可以申请使用缓冲池 中的各个缓冲区。
在这里插入图片描述
缓存(cache)

  • 缓存是保存数据副本的高速内存区域:
    - CPU缓存、磁盘缓存、光驱缓存等。
  • CPU缓存(高速缓存):
    - 为了缓和CPU运行速率与内存读/写速率不匹配的矛盾
    - 当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理;若没有找到,则从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据库调入缓存中。
  • 缓存和缓冲:
    - 缓冲可以保存数据项的唯一的现有版本。
    - 缓存只是提供一个位于其他地方的数据项的更快存储副本
    - 有时,同一个内存区,既可以是缓冲,也可以是缓存。

7.8 磁盘存储器的性能和调度
磁盘性能简述
磁盘设备可包括一个或多个物理盘片,每个磁盘片分一个或两个存储面(Surface);

磁盘容量计算
容量=柱面×磁头×扇区,每扇区存放512B数据
40GB硬盘
cylinder:19710;head:16;sector:255
计算:19710×255×16×512B=41173401600B=40GB
1.44MB软盘
Sides:2
Tracks:80
Sectors:18
计算:2×80×18×512B=1.44MB

在这里插入图片描述

磁盘访问时间

  • 磁盘在工作时是以恒定速率旋转。
  • 为了读或写,
    - 磁头必须能移动到所指定的磁道上
    - 并等待所指定的扇区的开始位置旋转到磁头下
    - 再开始读或写数据。
  • 一次访盘时间 = 寻道时间+旋转延迟时间+存取时间
    - 寻道时间:把磁头移动到指定磁道上所经历的时间。
    - 旋转延迟时间:指定扇区移动到磁头下面所经历的时间。
    - 存取时间:把数据从磁盘读出或向磁盘写入数据所经历的时间。

先来先服务FCFS、最短寻道时间优先SSTF、 SCAN算法、循环扫描算法CSCAN这些算法结合题目容易理解。
先写课后题。

这篇关于计算机操作系统(慕课版)第七章学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/760239

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个