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

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

目录

虚拟存储器

输入输出系统


虚拟存储器

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

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

分配策略

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

置换策略

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

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

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

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.mzph.cn/news/835515.shtml

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

相关文章

在Linux系统上安装Conda安装教程

在Linux系统上安装Conda安装教程 在Linux系统上安装Conda&#xff0c;特别是Miniconda&#xff08;Conda的一个小型版本&#xff0c;包含conda、Python和一些必要的库&#xff0c;非常适合快速开始使用&#xff09;的步骤如下&#xff1a; 1. 准备工作 打开终端&#xff1a;首…

Unity ECS 对数据改变有两种方法,Entity command buffers (ECB)和EntityManager

1、创建&#xff0c;销毁Entity&#xff0c;以及对Entity的结构进行更改&#xff08;比如增加删除Component&#xff09;都要通过EntityManager等接口来实现。主线程实现Componet 数据操作修改 如下&#xff1a; [BurstCompile] public void OnUpdate(ref SystemState sta…

kNN 算法在 Elasticsearch 中的应用

kNN 算法在 Elasticsearch 中的应用 kNN 算法在 Elasticsearch 中的应用一、知识背景二、Elasticsearch的kNN算法三、Elasticsearch中kNN算法的应用Elasticsearch基于kNN算法的相关插件或模块使用kNN算法进行基于相似度的文本搜索使用kNN算法进行基于相似度的推荐系统构建 kNN …

geotrust企业通配符证书2990

随着时代的变化&#xff0c;人们获取信息的方式由报纸、书籍变为手机、电脑&#xff0c;因此很多企事业单位用户开始在互联网中创建网站来进行宣传&#xff0c;吸引客户。为了维护网站安全环境&#xff0c;保护客户数据&#xff0c;企事业单位也开始使用SSL数字证书&#xff0c…

ubuntu install vivado 2023

Downloads sudo mkdir /opt/vivado

C++语法|引用的本质、左值引用、右值引用

推荐一篇博客&#xff0c;讲的非常详细&#xff0c;本文主要从汇编角度分析了他们到底是个啥 详解 C 左值、右值、左值引用以及右值引用 文章目录 引用的基本概念CPU 眼里的引用和指针左值和右值1.左值2.右值总结 左值引用const左值引用的本质 右值引用右值引用的使用汇编角度理…

算法练习day7

四数相加II 代码随想录 0454.四数相加II 454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; &#xff08;用时&#xff1a;0.5小时&#xff09; 思路 本道题是需要在四个数组中&#xff0c;各找一个数&#xff0c;这些数加起来能够等于0&#xff0c;那么就是答案元…

onnx模型截取部分

这个是有需求的&#xff0c;比如有多个输入节点&#xff0c;我只用其中几个&#xff0c;或有多个输出节点&#xff0c;我只用其中几个。 比如这个输入&#xff0c;我们可以直接把transpose去掉&#xff0c;用类pytorch的N,C,H,W的格式输入。 还有如下输出&#xff1a; tran…

喜报|才聚荣获“2024年度PMI(中国)注册教育机构杰出机构奖”!

5月10日&#xff0c;“2024PMI&#xff08;中国&#xff09;注册教育机构合作伙伴大会”隆重举行&#xff0c;才聚集团受邀参加此次盛会。 本次大会就项目管理职业生态、发展趋势等热门问题进行了深入探讨分析。 PMP认证自1999年引入中国&#xff0c;为国家培养了大量项目管理…

Springboot+Vue项目-基于Java+MySQL的宠物商城网站系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

618有什么好物推荐?618平价好物清单,让你买到物超所值的好货!

618大促即将开启&#xff0c;大家是不是已经跃跃欲试&#xff0c;准备大肆采购一番了呢&#xff1f;别心急&#xff0c;让我为你揭晓几款数码、家居领域中的明星产品。这些好物不仅实用&#xff0c;而且性价比超高&#xff0c;让你在享受购物乐趣的同时&#xff0c;也能买到真正…

人工智能的未来:Sam Altman 揭穿搜索引擎谣言,调侃 ChatGPT 和 GPT-4 的“神奇”更新

人工智能的未来&#xff1a;Sam Altman 揭穿搜索引擎谣言&#xff0c;调侃 ChatGPT 和 GPT-4 的“神奇”更新 概述 科技界充斥着有关人工智能研究先驱组织 OpenAI 将推出类似谷歌搜索引擎的传言。然而&#xff0c;首席执行官 Sam Altman 已经平息了这些谣言&#xff0c;并透露…

大小写绕过与双写绕过

大小写绕过 这是最简单也是最无用的绕过方式&#xff0c;可以利用的原因有两个&#xff1a;SQL语句对大小写不敏感、开发人员做的过滤过于简单。 双写绕过 双写绕过的原理是后台利用正则匹配到敏感词将其替换为空 例如&#xff1a;敏感词为 informtain 时&#xff0c;我们编…

mac 讨厌百度网盘怎么办

一、别拦我 首先请允许我泄个愤&#xff0c;tmd百度网盘下个1g的文件下载速度竟然超不过200k&#xff0c;只要不放在所有已打开软件的最前面&#xff0c;它就给你降到10k以内&#xff0c;关键是你慢就慢了&#xff0c;我也不是很着急&#xff0c;关键是你日常下载失败并且总是…

SpringBoot Mockito 依赖注入

SpringBoot Mockito 依赖注入 1 添加依赖2 Mock MockBean InjectMocks3 ExtendWith(MockitoExtension.class) RunWith(MockitoJUnitRunner.class)4 Mockito 单元测试4.1 JunitTestService4.2 JunitTestServiceImpl4.3 TestService4.4 TestServiceImpl4.5 MockTest 1 添加依赖 …

代码随想录算法训练营第36期DAY24

DAY24 235二叉搜索树的最近公共祖先 迭代法&#xff1a; /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solutio…

2024年5月10日有感复盘

2024年5月10日有感复盘 时间 今天是一个很美好的一天&#xff0c;原因是很平凡&#xff0c;读书很平凡&#xff0c;玩游戏很平凡&#xff0c;然后生活很平凡&#xff0c;未来可期&#xff0c;听歌很舒服&#xff0c;很喜欢一个人呆在图书馆的感觉&#xff0c;很喜欢发呆&…

pytorch2ONNX时,AdaptiveAvgPool2d的相关问题

1、torchvision.models.vgg11_bn from torchsummary import summary import torch from torchvision import modelsdevice torch.device(cuda if torch.cuda.is_available() else cpu) model models.vgg11_bn(num_classes2).to(device)# 打印模型结构 backbone1 summary(mo…

DeepMind的首席执行官Demis Hassabis表示,未来一到两年内,能够独立完成复杂任务的AI代理将成为现实

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

根据指标体系数重排序算法

指标体系数 例子&#xff1a; 2 2.3 2.3.1 2.3.4 2.4 2.4.3 2.4.5 public static void changeOrderValueWithNaturalNumber(List<ExportAnnualDataDto> resultList) {if (org.apache.commons.collections4.CollectionUtils.isEmpty(resultList)){return;}// 序号按点分割…