当前位置: 首页 > news >正文

【操作系统复习】第6章 虚拟存储器 2

请求分页中的内存分配

在为进程分配物理块时,要解决下列的三个问题:

1. 保证进程可正常运行所需要的最少物理块数

2. 每个进程的物理块数,是固定值还是可变值(分配策略)

3. 不同进程所分配的物理块数,是采用平均分配算法还是根据进程的大小按照比例予以分配(分配算法)

一、最小物理块数的确定

1. 最小物理块数只保证进程正常运行所需的最小物理块数。

2. 进程应获得的最小物理块数与计算机的硬件机构有关,取决于指令的格式、功能和寻址方式。

二、内存分配策略

在请求分页中,可采取两种分配策略,即固定和可变分配策略。在进行置换时,也可采取两种策略,即全局置换和局部置换(置换范围不同)。于是组合出三种适用的策略:

1、固定分配局部置换

思路

– 分配固定数目的内存空间,在整个运行期间都不改变

策略

– 如果缺页,则先从该进程在内存的页面中选中一页,进行换出操作,然后再调入一页

特点

– 为每个进程分配多少页是合适的值难以确定

2、可变分配全局置换

思路

– 每个进程预先分配一定数目的物理块,同时OS也保持

一个空闲物理块队列

策略

– 当缺页时,首先将对OS所占有的空闲块进行分配,从而增加了各进程的物理块数。当OS的空闲块全部用完,将引起换出操作

3、可变分配局部置换

思路

– 系统根据缺页率动态调整各进程占有的物理块数目,使其保持在一个比较低的缺页率状态下

特点

– 使大部分进程可以达到比较近似的性能

三、物理块分配算法

在采用固定分配策略时,可使用下列方法来分配:

1. 平均分配算法:将系统中所有可供分配的物理块,平均分配给各个进程。

2. 按比例分配算法:按照进程的大小比例分配物理块。

3. 考虑优先权的分配算法:为了对于紧迫的作业,能够尽快完成。可以将内存的物理块分成两部分,一部分按照比例分配给各进程,另一部分根据进程优先级,适当增加其相应的份额,分配给各进程。

页面调入策略

何时调入页面

预调页策略:预先调入一些页面到内存

请求调页策略:发现需要访问的页面不在内存时,调入内存

从何处调入页面

如系统拥有足够的对换区空间,全部从对换区调入所需页面

如系统缺少足够的对换区空间,凡是不会被修改的文件,都直接从文件区调入;当换出这些页面时,由于未被修改而不必再将它们重写磁盘,以后再调入时,仍从文件区直接调入

UNIX方式:未运行过的页面,从文件区调入;曾经运行过但又被换出的页面,从对换区调入。

① 进程需要的页面不在内存,引起缺页中断

② 中断处理程序保留现场环境,转入缺页中断处理程序

③ 中断处理程序查找页表,得到对应的外存物理块号。如果内存有空闲,则启动磁盘操作,将所缺的页面读入,并修改页表。否则,到4。

④ 执行置换算法,选出要换出的页面,如果该页修改过,应将其写入磁盘,然后将所缺页调入内存,修改相应表项,将其存在位置为‘1’,并放入快表。

⑤ 利用修改后的页表,形成物理地址,访问内存数据。

缺页率

访问页面成功(在内存)的次数为S

访问页面失败(不在内存)的次数为F

总访问次数为A=S+F

缺页率为 f= F/A

影响因素:页面大小、分配内存块的数目、页面置换算法、程序固有属性

缺页中断处理的时间

请求分页存储管理方式

优点:

– 可提供多个大容量的虚拟存储器:作业的地址空间不再受主存大小的限制

– 主存利用率大大提高:作业中不常用的页不会长期驻留在主存,当前运行用不到的信息也不必调入主存

– 能实现多道作业同时运行

– 方便用户:大作业也无须考虑覆盖问题

缺点:

– 缺页中断处理增加系统开销

– 页面的调入调出增加I/O系统的负担

– 此外页表等占用空间且需要管理,存在页内零头

页面置换算法

功能:

需要调入页面时,选择内存中哪个物理页面被置换。

目标:

未来不再使用的或短期内较少使用的页面调出,通常只能在局部性原理指导下依据过去的统计数据进行预测。

抖动:

不适当的算法会导致进程发生“抖动”,即刚换出的页很快就要被访问,又需重新调入

几种页面置换算法:

最佳置换算法(OPT, optimal)*

先进先出算法(FIFO)*

最近最久未使用算法(LRU, Least Recently Used)*

轮转算法(clock)

最不常用置换算法(LFU, Least Frequently Used)*

页面缓冲算法(page buffering)

最佳置换算法(OPT, optimal)

1. 最佳置换算法所选择的被淘汰页面,将是以后永不使用的, 或许是在最长(未来)时间内不再被访问的页面。采用最佳置换算法,通常可保证获得最低的缺页率。

2. 这是一种理想情况,是实际执行中无法预知的,因而不能实现。可用作性能评价的依据

先进先出算法(FIFO)

1. 选择装入最早的页面被置换。可以通过链表来表示各页的建立时间先后。

2. 性能较差。较早调入的页往往是经常被访问的页,这些页在FIFO算法下被反复调入和调出。

3. 并且有抖动现象

最近最久未使用算法(LRU, Least Recently Used)

1. 选择内存中最久未使用的页面被置换

2. 这是局部性原理的合理近似,性能接近最佳算法。(“最近的过去”对“最近的将来”的近似)

3. 但由于需要记录页面使用时间的先后关系,硬件开销太大

轮转算法(clock)

1、简单的Clock置换算法

也称最近未使用算法(NRU, Not Recently Used),它是LRU(最近最久未使用算法)和FIFO的折衷。

–内存中所有页面通过链接指针形成一个循环队列

–每页有一个使用访问位(use bit),若该页被访问则置use bit=1。

–置换时采用一个指针,从当前指针位置开始按地址先后检查各页,寻找use bit=0的页面作为被置换页。

–指针经过的user bit=1的页都修改user bit=0,最后指针停留在被置换页的下一个页。

2、改进型Clock置换算法

由于Clock算法不考虑换出页面时,页面是否修改过的问

题。这样在换出的页面如果被修改过的话,则必须做拷回

磁盘处理,开销比较大。于是,改进型的Clock算法为每

个页又增加了一个修改位

选择页面时,尽量选择既未使用又没有修改的页面。

最不常用置换算法(LFU, Least Frequently Used)

目的

–选择到当前时间为止被访问次数最少的页面被置换;

实现方法1

–每个页面设立移位寄存器:被访问时左边最高位置1,定期右移并且最高位补0,这样,在最近一段时间内时用最少的页面将是ΣRi最小的页。

实现方法2

–每页设置访问计数器,每当页面被访问时,该页面的访问计数器加1;发生缺页中断时,淘汰计数值最小的页面,并将所有计数清零。

页面缓冲算法(page buffering)

页面缓冲算法 PBA

内存分配采用可变分配和局部置换置换算法为FIFO

它是对FIFO算法的发展,通过被置换页面的缓冲,有机会找回刚被置换的页面;

被置换页面的选择和处理:由操作系统中专门的页面置换进程,用FIFO算法选择被置换页,把被置换的页面放入两个链表(空闲页面链表和已修改页面链表)之一。

如果页面未被修改,就将其归入到空闲页面链表的末尾

访问内存的有效时间

• 访问页表、访问实际物理地址数据、缺页中断处理

• 被访问页在主存,且相应页表项在快表

EAT=λ+t

• 被访问页在主存,但相应页表项不在快表

EAT= λ+t+λ+t=2( λ+t )

• 被访问页不在主存

EAT= λ+t+ε+λ+t=ε+2( λ+t )

抖动

如果一个进程没有足够的页,那么缺页率将很高,这将导致:

CPU利用率低下.

操作系统认为需要增加多道程序设计的道数

系统中将加入一个新的进程

抖动(Thrashing) :一个进程的页面经常换入换出

根本原因:

同时在系统中运行的进程太多;

因此分配给每一个进程的物理块太少,不能满足进程运行的基本要求,致使进程在运行时,频繁缺页,必须请求系统将所缺页面调入内存。

工作集定义

所谓工作集,指在某段时间间隔Δ里进程实际要访问页面的集合。

把某进程在时间t的工作集记为w(tΔ),其中的变量Δ称为工作集的“窗口尺寸”。

工作集w(tΔ)是二元函数,即在不同时间t的工作集大小不同,所含的页面数也不同;工作集与窗口尺寸Δ有关,是Δ的非降函数,即:

抖动的预防方法

01 采取局部置换策略:只能在分配给自己的内存空间内进行置换;

02 把工作集算法融入到处理机调度中;

03 利用“L=S”准则调节缺页率:

L是缺页之间的平均时间

S是平均缺页服务时间,即用于置换一个页面的时间

L>S,说明很少发生缺页

L<S,说明频繁缺页

L=S,磁盘和处理机都可达到最大利用率

04 选择暂停进程。

请求分段存储管理方式

1. 请求分页系统建立的虚拟存储器,是以页面为单位进行换入、换出操作的。

2. 在请求分段系统中实现的虚拟存储器,以分段为单位进行换入和换出。

3. 程序在运行之前,只需要装入必要的若干个分段即可运行。当访问的分段不在内存时,可由OS将所缺少的段调入内存

请求段表机制

存取方式:表示段存取属性为只执行、只读或允许读/

访问字段A:记录该段在一段时间内被访问的次数

修改位M:标志该段调入内存后是否被修改过

存在位P:指示该段是否在内存

增补位:表示该段在运行过程中是否做过动态增长,在请求页式中没有该位

外存始址:指示该段在外存中的起始地址(盘块号)

缺段中断机构

在指令执行期间产生和处理中断信号

一条指令在执行期间,可能产生多次缺段中断

由于段不是定长的,对缺段中断的处理要比对缺页中断的处理复杂

地址变换机构

请求分段系统的地址变换机构,是在分段系统的地址变换机构基础上形成的。

由于分段可能不在内存,因此会引起缺段中断。先将需要的段调入内存,修

改段表,然后再利用段表进行地址变换。

分段保护

越界检查:

由地址变换机构来完成;

比较段号与段表长度;段内地址与段表长度。

存取控制检查:以段为基本单位进行。

通过“存取控制”字段决定段的访问方式;

基于硬件实现。

环保护机构:

低编号的环具有高优先权;

一个程序可以访问驻留在相同环或较低特权环(外环)中的数据;

一个程序可以调用驻留在相同环或较高特权环(内环)中的服务。

相关文章:

【操作系统复习】第6章 虚拟存储器 2

请求分页中的内存分配 在为进程分配物理块时&#xff0c;要解决下列的三个问题&#xff1a; 1. 保证进程可正常运行所需要的最少物理块数 2. 每个进程的物理块数&#xff0c;是固定值还是可变值&#xff08;分配策略&#xff09; 3. 不同进程所分配的物理块数&#xff…...

【OAI】OAI5G核心网VPP-UPF网元分析

文章目录 VPP_UPF_CONFIG_GENERATION.mdVPP UPF Configuration GenerationEnvironment variablesInterfacesInterface Configuration ExamplesCentral UPFA-UPFI-UPFUL CL FEATURE_SET.mdVPP_UPG_CLI参考文献 VPP_UPF_CONFIG_GENERATION.md VPP UPF Configuration Generation …...

【上进小菜猪】使用Ambari提高Hadoop集群管理和开发效率:提高大数据应用部署和管理效率的利器

&#x1f4ec;&#x1f4ec;我是上进小菜猪&#xff0c;沈工大软件工程专业&#xff0c;爱好敲代码&#xff0c;持续输出干货&#xff0c;欢迎关注。 介绍 Hadoop是一种开源的分布式处理框架&#xff0c;用于在一组低成本硬件的集群上存储和处理大规模数据集。Ambari是一种基…...

Day3--C高级3

一.编写一个名为myfirstshell.sh的脚本&#xff0c;它包括以下内容。 1、包含一段注释&#xff0c;列出您的姓名、脚本的名称和编写这个脚本的目的 2、和当前用户说“hello 用户名” 3、显示您的机器名 hostname 4、显示上一级目录中的所有文件的列表 5、显示变量PATH和HO…...

第9章 CURD操作与MemoryCache缓存的强制清理的实现

1 重构 Data.Repository<TEntity> using Core.Caching; using Core.Domain; using Core.Events; using Microsoft.EntityFrameworkCore; namespace Data { ///<typeparam name"TEntity">泛型类型实例(这里特指:1个指定实体的类型实例)。</typepa…...

TCP 协议特性详解

TCP 协议特性总结 TCP协议特点TCP协议段格式TCP原理确认应答&#xff08;安全机制&#xff09;超时重传&#xff08;安全机制&#xff09;连接管理&#xff08;安全机制&#xff09;(面试高频题)三次握手四次挥手 滑动窗口&#xff08;效率机制&#xff09;流量控制&#xff08…...

电子招投标采购系统源码:采购过程更规范,更透明

满足采购业务全程数字化&#xff0c; 实现供应商管理、采购需求、全网寻源、全网比价、电子招 投标、合同订单执行的全过程管理。 电子招标采购&#xff0c;是指在网上寻源和采购产品和服务的过程。对于企业和企业主来说&#xff0c;这是个既省钱又能提高供应链效率的有效方法…...

一篇了解智慧网关

智慧网关是指基于互联网技术的智能网关&#xff0c;能够连接不同的物联网设备和传感器&#xff0c;实现数据采集、信息传递、远程控制、通信管理等功能。作为物联网架构中的核心设备之一&#xff0c;智慧网关在智能家居、智慧城市、智能制造、智能交通、智能农业等领域得到了广…...

自学软件测试,从10K到40K的技术路线,也就是这些东西...

如果有一天我从梦中醒来时&#xff0c;发现自己的几年自动化测试工程师经验被抹掉&#xff0c;重新回到了一个小白的状态。我想要重新自学自动化测试&#xff0c;然后找到一份自己满意的测试工作&#xff0c;我想大概只需要6个月的时间就够了&#xff0c;如果比较顺利的话&…...

Qt libqrencode二维码——QtWidgets

前言 之前写过二维码的程序&#xff0c;但是在U盘上&#xff0c;没带&#xff0c;又重新找的网上资料写的。 网上二维码的生成&#xff0c;大多用到是第三方库libqrencode,这也一样&#xff1a; 效果图 本来是个动图的&#xff0c;都被和谐了&#xff0c;所以换成截图&…...

KDZD绝缘子表面电导盐密度测试仪

一、简介 智能电导盐密测试仪&#xff0c;也称为直读式等值盐密度测试仪&#xff0c;专为测试智能电导盐密度而设计。系统内置智能电导盐密度计算公式&#xff0c;读数直观。 人机交互采用真彩TFT液晶屏&#xff0c;操作简单&#xff0c;测试参数和结果一目了然。仪器自带微型打…...

如何降低电动汽车软件的开发成本和风险?

大多数的汽车制造商无法从销售电动汽车&#xff08;EV&#xff09;中获得利润&#xff0c;但计划快速进入市场的电动汽车初创公司是无法承担这样的损失的。 由于飙升的电池价格、高昂的组件成本和低迷的销量削弱了盈利能力&#xff0c;电动汽车初创公司必须将视线转到软件开发…...

使用pytest和allure框架实现自动化测试报告优化

目录 -x出现一条测试用例失败就退出测试 生成测试报告json pytest&#xff1a; 需要安装pytest和pytest-html(生成html测试报告&#xff09; pip install pytest 和 pip install pytest-html 命名规则 Pytest单元测试中的类名和方法名必须是以test开头,执行中只能找到test开头…...

chatGPT免费站点分享

下面的应该都能用&#xff0c;试试吧... ChatGPT是一种人工智能聊天机器人&#xff0c;能够生成虚拟语言和交互回复。使用ChatGPT&#xff0c;您可以与机器人进行真实的交互&#xff0c;让机器人根据您提出的问题或请求来生成回复。但是&#xff0c;在使用ChatGPT时&#xff0…...

【计算机网络】已知一个/27网络中有一个地址是 167.199.170.82,问这个网络的网络掩码,网络前缀长度和网络后缀长度是多少?网络前缀是多少?

目录 题&#xff1a; 1. 网络掩码 2.网络前缀长度 3.网络前缀 4.网络后缀长度 题&#xff1a; 已知一个/27网络中有一个地址是 167.199.170.82&#xff0c; 问这个网络的网络掩码&#xff0c;网络前缀长度和网络后缀长度是多少&#xff1f;网络前缀是多少&#xff1f; 1.…...

Java8 - Stream

介绍 Java8中有两大最为重要的改变。第一个是 Lambda 表达式; 另外一个则是 Stream API(java.util.stream.*)。Stream是 Java8中处理集合的关键抽象概念&#xff0c;它可以指定你希望对集合进行的操作&#xff0c;可以执行非常复杂的查找、过滤和映射数据等操作。使用 Stream …...

什么样的冷链保温箱,既环保又实用?

冷链物流运输已经应用在了很多行业中&#xff0c;作为冷链物流运输中的重要设备——冷链保温箱&#xff0c;起到了举足轻重的作用。如果选择不当&#xff0c;选到了劣质产品&#xff0c;尤其是化学行业或者食品行业&#xff0c;就有可能造成试剂失效或者是影响粮食食品安全问题…...

Eclipse的介绍与安装

Eclipse简介 Eclipse 是一个开放源代码的&#xff0c;基于 Java 的可扩展开发平台。Eclipse官方版是一个集成开发环境(IDE)&#xff0c;可以通过安装不同的插件实现对其它计算机语言编辑开发&#xff0c;如C、Php、Python等等。 Eclipse的下载 下载时需要访问网址 http://…...

<IBM AIX> 《AIX中HA的网卡IP确认方法》

《HA网卡确认方法》 1 HA IP地址类型2HA IP地址设置原则3 HA网卡日常查看方法3.1 查看hosts文件3.2 查看网卡和IP 4 通过命令方式直接查看5 直接查看HA配置4 HA网卡SMIT查看方法&#xff08;暂不完整&#xff09;4.1 根据hosts文件确认IP对应的别名4.2 根据serviceIP确认Persis…...

AMB300系列母线槽红外测温解决方案某锂电厂房项目案例分享

安科瑞 耿敏花 一、 行业背景 近年来&#xff0c;在国家政策引导与技术革新驱动的双重作用下&#xff0c;锂电产业保持快速增长态势&#xff0c;产业规模持续扩大&#xff0c;同时新能源产业工厂锂电池生产线对于电的依赖性很高&#xff0c;因而对供电设备的可靠性提出…...

go语言学习——4

文章目录 Map Map map是一种特殊的数据结构&#xff1a;一种元素对pair的无序集合&#xff0c;pair的一个元素是key&#xff0c;对应一个value&#xff0c;这种结构也称为“关联数组或字典”引用类型 map声明 var map1 map[keytype] valuetype var map1 map[string] intmap可以…...

vulnhub-RAVEN:2(MYSQL-UDF提权,手工提权/工具自动提权)

镜像下载&#xff1a;Raven: 2 ~ VulnHub 实验环境&#xff1a;kali&#xff1a;192.168.78.128 vulnhub镜像&#xff1a;192.168.78.133 1、kali查看本地ip地址&#xff0c;以便使用nmap扫描ip段存活主机 2、nmap扫描IP段&#xff0c;发现靶机的IP地址为192.168.78.133 4、访问…...

如何完整地掌握一个机器学习模型

如何完整地掌握一个机器学习模型 要全面地学习、掌握一个机器学习模型&#xff0c;可以遵循以下步骤&#xff1a; 基础理论学习&#xff1a;了解该模型的背后数学原理和推导过程&#xff0c;包括假设、损失函数、优化方法等。 学习算法实现&#xff1a;通过查阅论文、教程或…...

Nevron Open Vision for .NET 2022.3 Crack

Nevron Open Vision for .NET 适用于 Blazor、WPF、WinForms 和 Xamarin.Mac 的领先用户界面组件 Nevron Open Vision for .NET 是一套高级 UI 组件&#xff0c;可帮助您从单个代码库开发功能丰富的 Web &#xff08;Blazor WebAssembly&#xff09; 和桌面 &#xff08;WinFor…...

【Linux】冯诺依曼体系结构以及操作系统的初步认知

&#x1f3d6;️作者&#xff1a;malloc不出对象 ⛺专栏&#xff1a;Linux的学习之路 &#x1f466;个人简介&#xff1a;一名双非本科院校大二在读的科班编程菜鸟&#xff0c;努力编程只为赶上各位大佬的步伐&#x1f648;&#x1f648; 目录 前言一、冯诺依曼体系结构二、操…...

盖雅工场重磅发布「劳动力账户」,助力企业实现全面工时成本管理

2023年5月10日&#xff0c;亚太地区领先的劳动力管理云服务商盖雅工场宣布&#xff0c;在原有的智能排班和实时考勤系统基础之上&#xff0c;正式推出全新模块「劳动力账户」&#xff0c;通过为企业里的每一位员工建立劳动力账户&#xff0c;实现工时与成本的全面管控&#xff…...

数据结构与算法基础(青岛大学-王卓)(2)

第二弹火爆来袭中 这波是单链表的内容整理&#xff0c;废话不多说&#xff0c;上小龙虾呀(又到了龙虾季节了&#xff0c;哎&#xff0c;口水直流了~~) beautiful的分割线 文章目录 第二弹火爆来袭中这波是单链表的内容整理&#xff0c;废话不多说&#xff0c;上小龙虾呀(又到了…...

水产亚硝酸盐偏高解决办法,饮用水亚硝酸盐超标

使用常规的离子交换树脂处理含硫酸盐水中的硝酸盐是困难的。因为树脂几乎交换了水中的所有的硫酸盐后&#xff0c;才与水中的硝酸盐交换。也就是说&#xff0c;硫酸盐的存在会降低树脂对硝酸盐的去除能力。采用Tulsimer A-62MP除硝酸盐树脂优先交换硝酸盐&#xff0c;对硝酸盐的…...

linux 设备树详解

设备树 描述设备树的文件叫做 DTS(Device Tree Source)&#xff0c;这个 DTS 文件采用树形结构描述板级设备&#xff0c;也就是开发板上的设备信息&#xff0c;比如CPU 数量、 内存基地址、IIC 接口上接了哪些设备、SPI 接口上接了哪些设备等等。 树的主干就是系统总线&#x…...

STM32 学习笔记_7 定时器中断:输出比较

输出比较 电机相关比较重要。 OC Output Compare&#xff08;IC 是输入捕获&#xff0c;CC代指这两个单元&#xff09;&#xff0c;用于输出一定频率和占空比的PWM波形。 右下角四个就是CCR。只有通用计时器和高级计时器有&#xff0c;共用一个cnt计数器&#xff0c;高级计数…...