《计算机操作系统》(第4版)第5章 虚拟存储器 复习笔记

news2024/11/13 8:54:09

第5章 虚拟存储器

一 、虚拟存储器概述

1. 常规存储管理方式的特征和局部性原理

(1)特征

①一次性。

②驻留性。

(2)局部性原理

局部性原理表现在时间局部性和空间局部性两方面。

2.虚拟存储器的定义和特征

(1)虚拟存储器的定义

虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。

(2)虚拟存储器的特征

①多次性。

②对换性。

③虚拟性。

3. 虚拟存储器的实现方法

(1)请求分页系统

分页请求系统是在分页系统的基础上增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。它通 过调页功能及页面置换功能陆续地把即将运行的页面调入内存,同时把暂不运行的页面换出到外存上,为了能实 现请求调页和页面置换功能,系统必须提供必要的硬件支持和实现请求分页的软件。

①硬件支持

a.  请求分页的页表机制

它是在纯分页的页表机制上增加若干项而形成的,作为请求分页的数据结构。

b.  缺页中断机构

每当用户程序要访问的页面尚未调入内存时,便产生一缺页中断,以请求 OS 将所缺的页调入内存。

c.   地址变换机构

它同样是在纯分页地址变换机构的基础上发展形成的。

②实现请求分页的软件

包括有用于实现请求调页的软件和实现页面置换的软件。它们在硬件的支持下,将程序正在运行时所需的页 面(尚未在内存中的)调入内存,再将内存中暂时不用的页面从内存置换到磁盘上。

(2)请求分段系统。

(3)请求段页式系统。

二、请求分页存储管理方式

1. 请求分页中的硬件支持

(1)请求页表机制

在请求分页系统中的每个页表应含以下诸项:

缺页中断与一般中断的区别:

①在指令执行期间而不是一条指令执行完后产生和处理中断信号,属于内部中断。

②一条指令在执行期间可能产生多次缺页中断。

(3)地址变换机构

图5-1示出了请求分页系统中的地址变换过程。

图5-1 请求分页中的地址变换过程

2. 请求分页中的内存分配

(1)内存分配策略

①固定分配局部置换。

②可变分配全局置换。

③可变分配局部置换。

(2)物理块分配算法

采用固定分配策略时,可以采用以下几种算法将系统中可供分配的所有物理块分配给各个进程:

①平均分配算法。

②按比例分配算法。

如果系统中共有n 个进程,每个进程的页面数为S,    则系统中各进程页面数的总和为:

又假定系统中可用的物理块总数为m, 则每个进程所能分到的物理块数为 b;可由下式计算:

 bi 应该取整,它必须大于最小物理块数。

③考虑优先权的分配算法。

3.页面调入策略

(1)何时调入页面

①预调页策略。

②请求调页策略。

(2)页面调入过程

①发出缺页中断。

②将所缺页调入内存。

③修改页表。

(3)缺页率 ①定义

如果在进程的运行过程中,访问页面成功的次数为S,   访问页面失败的次数为F,    f  

②影响因素

a.  页面大小。

b.  进程所分配物理块的数目。

c.   页面置换算法。

d.   程序固有特性。

③计算公式

假设被置换的页面被修改的概率是β,其缺页中断处理时间为ta,被置换页面没有被修改的缺页中断时间为 t, 那么,缺页中断处理时间的计算公式为

三、页面置换算法

1. 最佳置换算法和先进先出置换算法

(1)最佳置换算法

①最佳置换算法所选择的被淘汰页面将是以后永不使用的,或许是在最长(未来)时间内不再被访问的页面。

②该算法是无法实现的,但可以利用该算法去评价其他算法。

(2)先进先出(FIFO)页面置换算法

FIFO 算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。

FIFO 算法可能出现 Belady 异常。

FIFO 算法没有基于局部性原理。

2. 最近最久未使用和最少使用置换算法

(1)最近最久未使用 (LRU)  置换算法

LRU 页面置换算法选择最近最长时间未使用的页面予以淘汰。

②最佳置换算法是从“向后看”的观点出发的;而LRU 算法则是“向前看”的。

LRU 算法基于局部性原理。

LRU 算法是堆栈类算法。

(2)最少使用 (LFU)   置换算法

LFU 算法选择在最近时期使用最少的页面作为淘汰页。

3.Clock 置换算法

(1)简单的Clock 置换算法(最近未用算法或NRU   ) 图5-2显示出了该算法的流程和示例。

图5-2 简单Clock 置换算法的流程和示例

(2)改进型Clock 置换算法

在改进型Clock 算法中,又增加了修改位M

①四种页面类型

a.1    (A=0,M=0):  表示该页最近既未被访问,又未被修改,是最佳淘汰页。

b.2   (A=0,M=1):   表示该页最近未被访问,但己被修改,并不是很好的淘汰页。

c.3   (A=1,M=0):   表示最近已被访问,但未被修改,该页有可能再被访问。

d.4 类 (A=1,M=1):   表示最近已被访问且被修改,该页可能再被访问。

②执行过程

a. 从指针的当前位置开始,扫描循环队列,在这次扫描期间不改变访问位A,  选择第一个A=0  M=0  页面用于置换。

b. 如果第一步失败,则重新扫描,选择第一个A=0  M=1 的页面用于置换。在第二轮扫描期间,将所有 扫描过的页面的访问位都置0。

c. 如果第二步也失败,则将指针返回到开始的位置,且所有的访问位均为0。然后重复第一步,如果仍失败,必要时再重复第二步。

4. 访问内存的有效时间

在具有快表机制的请求分页管理方式中,存在下面三种方式的内存访问操作,以及是否考虑命中率和缺页率, 其内存有效访问时间分别为:

(1)被访问页在内存中,且其对应的页表项在快表中时:EAT=λ+t

(2)被访问页在内存中,且其对应的页表项不在快表中时:EAT=λ+t+λ+t=2×(λ+t)

(3)被访问页不在内存中,假设缺页中断处理时间为ε,则EAT=λ+t+ε+λ+t=ε+2(λ+t)

(4)考虑快表的命中率a 和缺页率f 等因素时:EAT=λ+a×t+(1-a)×[t+fx(ε+λ+t)+(1-f)×(λ+t)]

(5)如果不考虑命中率,仅考虑缺页率,设缺页中断处理时间为φ,得EAT=t +f×(φ+t)4-(1-f)xt   EAT 为内存的有效访问时间,λ为查找快表的时间,t 为访问实际物理地址所需的时间。

四、“抖动”与工作集

1. 抖动

(1)定义

页面置换中,频繁的页面调度行为称为抖动或颠簸。

(2)产生“抖动”的原因

某个进程频繁访问的页面数目高于可用的物理页帧数目。

2.工作集

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

3. “抖动”的预防方法

(1)采取局部置换策略。

(2)把工作集算法融入到处理机调度中。

(3)利用 “L=S”   准则调节缺页率。

(4)选择暂停的进程。

 、请求分段存储管理方式

1. 请求分段中的硬件支持

(1)请求段表机制

请求段表的段表项中包括以下字段:段名(号)、段长、段基址、存取方式、访问字段A、修改位M、 存 

 P、增补位、外存始址。

(2)地址变换机构

图5-3示出了请求分段系统的地址变换过程。

图5-3 请求分段系统的地址变换过程

2 . 分段保护

(1)越界检查。

(2)存取控制检查。

(3)环保护机构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2065420.html

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

相关文章

java之表格数据存储

java之表格数据存储 摘要表格数据存储javabean 介绍javabean 设计类表格数据存储 摘要 本博客主要讲述java如何存储表格数据。 表格数据存储 在解决实际问题的时候,需要涉及到如何存储表格的数据,这里讲述了一种使用javabean的方法存储表格 javabea…

STM中的I2C

常见的几种通信接口 I2C总线定义 定义 I2C - Inter-Integrated Circuit:两线式 串行总线:说明处理器和外设之间只需两根信号线,分别是SCL时钟控制信号线和SDA数据线 SCL(serial clock line) 时钟控制信号线&#xff…

makefile文件基本语法

一、makefile文件基本介绍 Makefile 文件是 make 工具使用的配置文件,它定义了如何自动化构建项目的规则和命令。Makefile 文件的主要作用是指定如何编译和链接程序,以及管理文件之间的依赖关系,从而实现高效的构建过程。 1.1 Makefile 的基…

【FreeRTOS】队列实验-分发数据给多个任务(赛车游戏)

目录 0 前言1 队列实验_分发数据给多个任务(赛车游戏)2 赛车游戏2.1 game.c2.2 注册队列2.3显示汽车2.4隐藏汽车2.5 CarTask2.6 car_game2.7 MX_FREERTOS_Init 3 总结 0 前言 学习视频: 【FreeRTOS入门与工程实践 --由浅入深带你学习FreeRTOS(FreeRTOS教…

如何用Python实现山东省旅游数据爬虫与K-means满意度分析

🎓 作者:计算机毕设小月哥 | 软件开发专家 🖥️ 简介:8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 🛠️ 专业服务 🛠️ 需求定制化开发源码提…

AI一键视频多语言配音/翻译工具:打造无缝多语言视频体验

在全球化的今天,视频内容的传播不再受限于地域和语言。然而,如何高效地将视频内容翻译成多种语言并保持其自然度和流畅性,一直是业界面临的挑战。为了解决这一难题,我们推出了一款智能视频多语言AI配音和翻译工具——Linly Dubbing。该工具基于YouDub-webui的灵感进行了创新…

开源:cuda studio云原生一站机器学习、深度学习、大模型AI平台

文章目录 1、 cuda studio云原生一站机器学习、深度学习、大模型AI平台2、网址 1、 cuda studio云原生一站机器学习、深度学习、大模型AI平台 cube studio开源云原生一站式机器学习/深度学习/大模型AI平台,支持sso登录,多租户,大数据平台对接…

3级线性反馈移位寄存器在C3=1时可有4种线性反馈函数,设其初始状态为(a1,a2,a3)=(1,0,1),求各线性反馈函数的输出序列及周期

标题是题目 题解 1.补充知识 2.分析四种情况: 结合我所给的反馈数公式以及a31,可以得到反馈函数为: fC1*a3⊕C2*a2⊕C3*a1C1*a3⊕C2*a2⊕a1 附:别把初始状态为(a1,a2,a3)(1,0,1)带入,因为a1,a2,a3的值…

小程序学习day11-生命周期函数、组件所在页面的生命周期、自定义组件的插槽、自定义组件的父子通信

40、自定义组件(续)(续) (10)生命周期函数 1)小程序里的全部生命周期函数 ①created(在组件刚被创建时执行)(被创建,但未被放入页面&#xff09…

【AD9361 数字基带】多片基带内FPGA补偿 I/Q Rotation

I/Q 旋转 Rotation 在许多多通道射频系统中,如 AD-FMCOMMS5,甚至在 AD-FMCOMMS2、AD-FMCOMMS3 上,都需要测量或校正两个复数 (I/Q) RF 信号之间的相位差。 从纯粹的数学描述来看,单个正弦波没有相位&…

NNG简介和使用总结

先认识下ZeroMQ 参考:ZeroMQ详解 - 南哥的天下 - 博客园 (cnblogs.com) ZeroMQ(简称ZMQ)是一个基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。…

RK3568开发笔记-buildroot系统scp拷贝文件报错dbclient no such file or directory

目录 ​​​​​​​ 前言 一、问题分析 什么是 Dropbear Dropbear 的优点 二、解决办法 总结 前言 在使用RK3588开发板进行系统开发时,很多开发者会选择使用Buildroot来构建自己的定制化系统。在开发过程中,通常需要通过scp(Secure Copy Protocol)命令将文件从本地计…

IDEA工具设置默认使用maven的settings.xml文件

第一步:打开idea工具,选中 File ——> New Projects Setup ——> Settings for New Projects 第二步:先设置下自动构建项目这个选项 第三步:选中 Build Tools ——> Maven,让后就可以设置自己安转的maven和se…

xlsx表格-A列的值需要从C列中匹配到然后输出C列旁边D列的值,怎么写公式?

公式: IFERROR(VLOOKUP(A1, C:D, 2, FALSE), "") 解释: 在VLOOKUP函数中,2表示要返回的列的索引。具体来说,VLOOKUP函数的语法如下: VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])…

功能测试和性能测试区别简析,软件测试公司如何开展有效测试?

软件功能测试旨在验证软件是否按照需求和设计规范正常运行,软件性能测试则是用来评估软件在特定负载条件下的行为和响应时间,确保软件在高并发和高需求的环境中能够稳定运行。 虽然两者都属于软件测试的重要组成部分,但它们的目的和重点却有…

零基础5分钟上手谷歌云GCP - 服务器自动扩展

简介 欢迎来到小李哥谷歌云GCP云计算知识学习系列,适用于任何无云计算或者谷歌云技术背景的开发者,让大家零基础5分钟通过这篇文章就能完全学会谷歌云一个经典的服务开发架构方案。 我将每天介绍一个基于全球三大云计算平台(AWS, Azure, GC…

改编版猜数字小游戏,猜错了就黑屏(整蛊版本)

1. 前情提要 在前一篇博客中,我们了解到了如何获得随机数,并且通过运算可以规定所获得的这个随机数的范围在多少数值之间 那么接下来我们就需要去具体去实现猜数字游戏的各种布置 2. 布置主菜单 玩一个游戏,最开始的界面都会是一个主菜单…

iPhone13手机照片被误删,有什么方法可以恢复吗?

在日常使用手机时,我们可能因为误操作、手机崩溃、或者其他原因,导致iPhone13手机中的照片丢失。遇到这种情况,手机误删照片如何恢复?在本文中,我们将分享3个妙招,帮助您恢复iPhone13上误删的照片。 一、通…

2024年第二季度SSD出货量下滑18.4%,降至6750万部,但容量增长4.1%至90.6EB

2024年第二季度SSD Exabytes实现连续季度增长 仅企业级PCIe SSD有所增长:尽管所有其他类别均出现下滑,但企业级PCIe SSD的增长是由其所有终端市场需求增加所驱动的。总体SSD出货量:总体SSD出货量环比下降18.4%,降至6750万部&…

Leetcode JAVA刷刷站(76)最小覆盖子串

一、题目概述 二、思路方向 为了解决这个问题,我们可以使用滑动窗口的方法。滑动窗口是数组/字符串问题中常用的一个技巧,特别是用于寻找子数组或子字符串的问题。 这里的关键是,我们需要知道字符串t中每个字符的出现次数,并在遍…