《操作系统》课程复习资料(下)

embedded/2024/10/18 10:46:54/

本文是对我的大学课程——《操作系统》的课程知识整理,分上下两个部分,本文为下半部分,上半部分详见《操作系统》课程复习资料(上)

目录

虚拟存储器

输入输出系统


虚拟存储器

虚拟存储器是指具有请求调入置换功能,从逻辑上对内存容量加以扩充的一种存储器系统。容量取决于计算机的地址结构、可用的物理内存和外存的容量之和。

特征:多次性:一个作业允许多次调入对换性:作业可换入、换出;虚拟性

分配策略

固定分配:在进程生命周期中,保持固定数目的物理块 。可变分配:保持可变数目的物理块.

置换策略

局部替换:发生缺页时,仅从该进程的物理块中淘汰页面

全局替换:发生缺页时,从系统中任一进程的物理块中淘汰页面

可组合出以下三种内存分配策略

1) 固定分配局部置换 (Fixed Allocation , Local Replacement)

2) 可变分配局部置换 (Variable Allocation , Local Replacement

3) 可变分配全局置换 (Variable Allocation , Global Replacement

常用的页面置换算法:最佳置换算法(OPT算法)、先进先出页面淘汰算法(FIFO 算法)、最近最久未使用页面淘汰算法(LRU 算法)、Clock 置换算法

OPT: 淘汰以后不再需要或最长时间不再访问的页面(看以后)

FIFO:淘汰在内存中驻留时间最长的(Belady现象对于一些特定的访问序列,存在分配的页面数增多,但缺页率反而提高的异常现象)

LRU:淘汰最近最久未使用的页面,

Clock:置1置0

产生 “ 抖动 ” 的原因:1.进程数量多,每个进程分配的物理块少。

2.系统中运行的进程太多,由此分配给每一个进程的物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时,频繁地出现缺页,必须请求系统将所缺之页调入内存。

预防方法:

1. 采取局部置换策略2. 把工作集算法融入到处理机调度中。调入作业前,先检查每个进程在内存的驻留页面是否足够多3. 利用“ L=S” 准则调节缺页率

“ L=S” 来调节多道程序度。L是缺页之间的平均时间,S是平均缺页服务时间,即用于置换一个页面所需的时间。L>>S ,说明很少发生缺页,磁盘未充分利用L<<S ,说明频繁发生缺页,缺页的速度过高。只有当L与S接近时,磁盘和处理机都可达到最大利用率4. 选择暂停的进程。减少多道程序的数目。


输入输出系统

I/O设备

按信息交换的单位分 分块设备和字符设备

按使用特性 存储设备 I/O设备

按信息传输速率 低俗 中速 高速

I/O 设备由两部分:I/O 操作的机械部件机械部件即设备本身

执行控制 IO 的电子部件:电子部件称为设备控制器(或适配器)

四种 IO 控制方式

使用轮询的程序控制方式,传送单位: 字

中断 I/O 控制方式传送单位字

直接 DMA 控制, 传送单位:数据块

通道控制方式

早期计算机系统中,无中断机构,CPU 对 I/O 设备的控制采取程序直接控制方式,又称轮询方式

进程需要数据时,通过 CPU 发出指令,启动外围设备准备数据。进程进入阻塞状态,等待输入完成,进程调度。

DMA方式-直接存储器访问方式:CPU 要从磁盘读入一数据块时,便向磁盘控制器发送一条读命令。该命令被送入命令寄存器 CR 中。同时,需要将本次要读入数据在内存的起始目标地址 送入寄存器 MAR 中

I/O 通道设备的引入:当主机所配置的外设很多时, CPU 的负担仍然很重。故CPU 和设备控制器之间又增设了 I/O 通道。IO 通道是一种特殊的处理机 ,通道可以识别和执行一系列通道指令, 并通过执行 IO 程序来控制 IO 操作。其目的是使一些由 CPU 处理的 IO任务转通道承担

IO系统目标:(1)提高设备的利用率(2)为用户提供方便、统一的界面

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

(5)确保对设备的正确共享(6)错误处理

设备独立性(设备无关性): 应用程序中所用的设备,不局限于某个具体的物理设备,通过设备逻辑名来使用设备,必须在设备驱动程序上再设置一层软件,对设备进行管理。

设备驱动程序功能1接收上层发来的命令和参数。2检查用户 I/O 请求的合法性。3发出 I/O 命令。4及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。

设备分配的原则和策略1充分发挥设备的使用效率,尽可能地让设备忙起来2避免由于不合理的分配而造成死锁的发生3将用户程序和具体物理设备相隔离

设备分配方式1静态分配: 用户进程开始执行之前,操作系统就将该进程所

需要的全部设备、设备控制器和通道一次性地分配给它2动态分配: 指进程在运行过程中需要 I/O 时,再由操作系统为其分配设备

系统调用:将 CPU 状态由用户态转换到内核态 ;转向 OS 中相应过程,由该过程完成所需的 I/O 操作。 执行完后, CPU 状态由内核态转换到用户态。

假脱机(Spooling)系统

假脱机技术通过假脱机技术,将一台物理 I/O 设备虚拟为多台逻辑 I/O 设备,允许多个用户共享一台物理 I/O 设备。是在联机情况下实现脱机 I/O功能

虚拟设备:用一个物理设备模拟出的多个逻辑设备,通过缓冲等方式,将独占设备改造为共享设备。允许多个用户共享一台物理 I/O 设备。

输入井和输出井 :在磁盘上开辟两个存储空间;输入井用于暂存 I/O 设备输入的数据;输出井用于暂存用户程序的输出数据, 以文件形式管理

SPOOLing 的设计与实现输入进程:输入进程将用户要求的数据从输入设备传送到输入缓冲区,再存放到输入井 。

输出进程:将用户要求输出的数据,先从内存送到输出井,待输出设备空闲时 , 再将输出井中的数据送到输出设备上 。

缓冲区是一个存储区域,可由专门的硬件寄存器组成,也可利用内存作为缓冲区

假脱机打印系统主要包括三部分:

①磁盘缓冲区(输出井) :在磁盘上开辟的存储空间,暂存要打

印的数据。

②打印缓冲区 :在内存中,暂存从磁盘缓冲区送来的数据。

③假脱机管理进程和假脱机打印进程

SPOOLing实现原理:当用户进程请求打印输出时,Spooling 同意为它打印输出 , 但并不立即把打印机分配给它,假脱机管理进程做两件事:① 在输出井中为它申请一个空闲磁盘块区,将要打印的数据送入其中暂存。② 为用户进程申请一张空白的用户请求打印表,将用户的打印要求填入其中,再将该表挂到 请求打印队列上

缓冲区是一个存储区域,可由专门的硬件寄存器组成,也可利用内存作为缓冲区

缓冲区的作用1缓和 CPU 与 I/O 设备间速度不匹配的矛盾。2减少对 CPU 的中断频率,放宽对 CPU 中断响应时间的限制。3解决数据粒度不匹配的问题, 如生产者和消费者之间交换的数据粒度不匹配4提高 CPU 和 I/O 设备之间的并行性

扫描 (SCAN) 算法- 电梯调度算法 在方向一致的下优先调度与当前磁头最近的请求。单向到最大后返回至较大循环扫描 (CSCAN) 单向到最大后返回至较小

以柱面、磁头、扇区表示的为绝对扇区,又称物理磁盘地址,即CHS

公式:存储容量=磁头数*磁道(柱面)*每道扇区数*每扇区字节数

文件系统基本目标:实现按名存取

文件系统是操作系统中负责管理和存取文件的程序集合。由文件控制块、存储分配表等数据结构、相应的管理软件和被管理的文件组成。

文件结构分为 逻辑结构 和 物理结构

逻辑结构 : 用户所看到的文件组织形式,是用户可以直接处理的数据及其结构,它独立于文件的物理特性,称为文件组织  。根据用户需求和文件内容决定。

物理结构 :又称为文件的存储结构,是指文件在外存上的存储组织形式。这不仅与存储介质的存储性能有关,而且与所采用的外存分配方式有关。

逻辑结构按文件是否有结构分类(1)无结构文件(流式文件)由字符序列组成的文件,其内部不再划分结构,字符是该文件的基本信息单位。例如:文本文件、源程序、可执行文件等。对流式文件的访问,采用读/ 写指针来指示下一个要访问的字节 。(2) 有结构文件(记录式文件)

按文件的组织方式分类,有结构文件分为三类:(1)  顺序文件 (2) 索引文件 (3) 索引顺序文件


关注我,持续分享有趣有用的知识!


http://www.ppmy.cn/embedded/39723.html

相关文章

Qt | QSpinBox 类 QDoubleSpinBox 类(微调框)

01、QSpinBox 类 1、QSpinBox类是 QAbstractSpinBox 类的直接子类和具体实现, 2、QSpinBox 类被设计用于处理整数和离散值集合,对于浮点值使用 QDoubleSpinBox 类实现。 3、QSpinBox 默认只支持整数值,但可通过其内部的成员函数进行扩展,以支持使用不同的 字符串。 02…

ASP.NET WebApi 如何使用 OAuth2.0 认证

前言 OAuth 2.0 是一种开放标准的授权框架&#xff0c;用于授权第三方应用程序访问受保护资源的流程。 OAuth 2.0 认证是指在这个框架下进行的身份验证和授权过程。 在 OAuth 2.0 认证中&#xff0c;涉及以下主要参与方&#xff1a; 资源所有者&#xff08;Resource Owner&…

k8s集群部署

部署k8s集群 要求&#xff1a; 主机192.168.199.149&#xff08;master&#xff09;node节点&#xff08;192.168.199.150,192.168.199.151&#xff09;2个cpu或更多 所有机器可以联网&#xff0c;湖湘之间可以ping同&#xff0c;关闭防火墙&#xff0c;selinux&#xff0c;…

【JVM】阅读Class字节码:常量池

目录 基本结构解析 常量池 常量池简介 如何阅读Class文件中的常量池信息 基本结构解析 Magic(魔数) Magic的唯一作用是确定这个文件是否为一个能被虚拟机所接受的class 文件。魔数值固定为0xCAFEBABE&#xff0c;不会改变。 常量池 常量池简介 下图是反编译过后的字节码文…

表面的相似,本质的不同

韩信与韩王信&#xff0c;两个韩信的结局都是被刘邦所杀&#xff0c;似乎结局类似。但是&#xff0c;略加分析&#xff0c;就会发现其中存在本质的区别。 韩信属于必杀。他的王位是要来的&#xff0c;有居功自傲的本意&#xff0c;功高震主而且毫不避讳。而且年轻&#xff0c;…

AI终端设备的自动化分级

摘要&#xff1a; 大语言模型&#xff08;LLM&#xff09;被认为是通用人工智能&#xff08;AGI&#xff09;的潜在火花&#xff0c;为构建通用人工智能代理带来了希望。在此基础上&#xff0c;客户端设备在人工智能的帮助下不断发展&#xff0c;从基于应用程序&#xff08;AP…

linux学习:音视频编程+alsa声音架构

目录 概念 采样 量化 编码 音频文件wav 格式 标准音频接口 ALSA 录制音频 步骤 api 获取pcm设备句柄 设置 PCM 设备参数 代码 播放音频 步骤 代码 概念 信号都是模拟信号&#xff0c;不管是声音还是光线&#xff0c;这些模拟信号需要被 A/D 转换器转换成数字信…

Unity引擎是什么?有哪些优点

大家好&#xff0c;我是咕噜土豆&#xff0c;很高兴又和大家见面了。今天我们一起来了解一下Unity引擎和它有哪些优点。 首先带大家了解什么是Unity引擎 Unity引擎是一款由Unity Technologies开发的跨平台游戏开发引擎&#xff0c;广泛用于创建2D和3D游戏以及其他交互式内容&…