Windows操作系统存储管理——实存管理和虚存管理

news2024/11/28 10:42:31

 我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下Windows操作系统存储管理——实存管理和虚存管理。

存储器管理的对象是主存(内存)。重点是要知道实存和虚存的管理,而虚存管理重点是逻辑地址和物理地址间的转换。


实存管理

存储管理的任务是存储空间的分配与回收。实际存储管理主要方式是分区存储管理,把内存分为若干区,每个区分配给一个作业使用,并且用户只能使用所分配的区。存储管理按划分方式不同分区,见下:

(1)

分配方式:固定分区

分配类型:静态分配法       

分配特点:将主存划分为若干个分区,分区大小不等

(2)

分配方式:可变分区

分配类型:动态分配法      

分配特点:存储空间划分是在作业装入时进行的,故分区的个数是可变的,分区的大小刚好等于作业的大小

(3)

分配方式:可重定位分区

分配类型:动态分配法       

分配特点:移动所有已分配好的分区,使之成为连续区域

       

在可变分区分配方式中,当有新作业申请分配内存时所采用的存储分配算法有以下4种:

(1)最佳适应法:选择最接近作业需求的内存空白区(自由区)进行分配。该方法可以减少碎片,但同时也可能带来小而无法再用的碎片。

(2)最差适应法:选择整个主存中最大的内存空白区。

(3)首次适应法:从主存低地址开始,寻找第一个能装入新作业的空白区。

(4)循环首次适应算法:首次适应法的变种,也就是不再是每次都从头开始匹配,而是从刚分配的空白区开始向下匹配。

虚存管理

“实存管理”策略比较简单,但毕竟内存大小总有限,如果出现大于物理内存的作业就无法调 入内存运行。解决办法就是虚拟存储系统,即用外存换取内存。虚存管理则是实现虚拟地址和实地址的对应关系。

虚存管理情况下,实际进程对应运行的地址为逻辑地址(虚拟地址),而不对应主存的物理地址(实地址)。这种方式允许部分数据装入和对换,可用较小的内存运行较大的程序。这样就可以 提供大于物理地址的逻辑地址空间。

常见的虚存组织方式有3种,见下。

(1)页式管理

划分方式: 进程地址分为若干大小等长区(定长)。主存空间划分成与页相同大小的若干个物理块,称为块

进程分配主存:进程的若干页分别装入多个不相邻接的块中

地址结构:(页号p,页内偏移d)

实际地址定位:通过页表找到内存物理块起始地址,然后+页内偏移

其他:页表:一张逻辑页到实际物理页映射表。系统借助页表能找到在主存的目标页面对应的物理快。快表:一组高速存储器,保存当前访问频率较高的少数活动页及相关信息。

(2)段式管理

划分方式:作业的地址空间被划分为若干个段(可变长),每段是完整的逻辑信息

进程分配主存:作业每个段整体分配一个连续的内存分区。作业的各个段可以不连续地分配到主存中

地址结构:(段号s,段内偏移d)

实际地址定位:段表内找出内存物理块起始地址,然后+段内偏移

其他:段表:一张逻辑段到物理主存区的映射表。系统借助段表找到目标段起始地址(基址)和段的长度

(3)段页式管理

划分方式:整个主存划分成大小相等的存储块(页框)。再将用户程序按程序的逻辑关系分为若干个段。再将每个段划分成若干页

进程分配主存: 以存储块(页框)为单位离散分配

地址结构: (段号s,段内页号p,页内偏移d)

实际地址定位:先在段表中找到页表的起始地址,然后在页表中找到起始地址,最后+页内偏移

其他:无

举例

某计算机系统页面大小为4K,进程的页面变换见表,逻辑地址为十六进制1D16H。该地址经过变换后,其物理地址应为十六进制的多少呢?

页号     物理块号

0           1

1           3

2           4

3           6

分析

页面大小为4K(4K=2^12),因此该系统逻辑地址低12位为页内地址, 高位对应页号。而逻辑地址为十六进制1D16H,代表逻辑地址有16个二进制位,其中低位D16H(12位)为页内地址,高位1(4位)说明页号为1。 由上表可知,页号1对应的物理块号为3。因此,1D16H的实际地址为3D16H。

另外,还需要知道一个算法:

最近未用淘汰算法——NUR(Not Used Recently) 淘汰算法, 每次都尽量选择最近最久未被写过的页面淘汰。算法按照下列顺序选择被淘汰的页面:

第1淘汰:访问位=0,修改位=0;直接淘汰。

第2淘汰:访问位=0,修改位=1;写回外存后淘汰。

第3淘汰:访问位=1,修改位=0;直接淘汰。

第4淘汰:访问位=1,修改位=1;写回外存后淘汰。

虚存管理

虚拟存储管理包含作业调入内存、放置(放入分区)、置换等工作。

虚拟存储管理内容

(1)

管理动作:调入

具体解释:确定何时将某一页/段的外存的内容调入主存。通常分为:  (1)请求调入:需要使用时调入。 (2)先行调入:预计即将使用的页/段先行调入主存

(2)

管理动作:放置

具体解释:调入后,放在主存的什么位置。方法和主存管理方法一致

(3)

管理动作:置换

具体解释:当内存已满, 需要调出(淘汰) 一些页面给需要使用内存的页面。具体方法与Cache 调入方法一致。 (1) 最优算法(OPT) :淘汰不用的或最远的将来才用的页。理想方法, 难以实现。 (2) 随机算法(RAND) :随机淘汰。开销小, 但性能不稳定。 (3) 先进先出算法(FIFO) :调出最早进入内存的页。 (4) 最近最少使用算法(LRU) :选择一段时间内使用频率最少的页。

作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。

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

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

相关文章

桥梁结构健康监测解决方案

城市桥梁担负着城市的交通和运输网络的重要角色,是城市生命线的重要组成部分。然而,随着时间的推移和日益增长的负荷,桥梁可能会受到各种因素的损害,如自然灾害、疲劳、腐蚀等。因此,桥梁结构健康监测变得至关重要&…

osg给osg::Geometry(自己绘制的几何体)添加纹理(二)

目录 1. 前言 2. 自会集合体贴纹理 2.1. 一张图贴到整个几何体 2.2. 几何体每个面贴不同的图片纹理 3. 说明 1. 前言 前文讲述了如何给osg自带的几何体,如:BOX等,添加纹理,文章参考链接如下: osg给osg::Geometry&…

6步带你弄懂敏捷软件开发管理

敏捷开发是一种项目管理和软件开发的迭代方法,可帮助团队较快地为客户创造价值,同时减少问题。为了获得好处,软件项目团队需要知道如何正确使用敏捷管理方法。 了解敏捷宣言 敏捷宣言阐述了基本的价值观,还详细说明了敏捷团队应…

【云计算与虚拟化】第五章—— vCenter Server 5.5 的高级功能(三)

第五章—— vCenter Server 5.5 的高级功能(三) 1.使用vsphere client 登陆vcenter服务器,创建一个群集,名称为自己的学号,(截图) 2.针对该群集打开HA功能(截图) 3.接入控制策略选择…

【Linux安装】从无到有!在VM虚拟机上安装Linux

系列文章目录 文章目录 系列文章目录准备工作1、Linux阿里云iso镜像: [Centos7.9.2009](http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spma2c6h.25603864.0.0.5ec0f5adDd8whz) 一、在虚拟机上开辟空间 这里使用VM15做安装例子,16也同样适用1、打开VM 点…

ORB-SLAM内的卡方检验

ORB-SLAM内的卡方检验 1. 概念2. 卡方检验的基本思想3. 卡方检测示例4. ORB-SLAM2中卡方检测剔除外点的策略4.1 示例,卡方检验计算置信度得分: CheckFundamental()、CheckHomography() Reference: 卡方检验(Chi-square test/Chi-Square Goodness-of-Fit Test)卡方检…

chatgpt在复杂问题的回答表现

2023年东南大学论文:Evaluation of ChatGPT as a Question Answering System for Answering Complex Questions 代码库已经无法访问了:https://github.com/tan92hl/Complex-Question-Answering- Evaluation-of-ChatGPT 1.简介 复杂问题的回答&#xff…

ROS学习——在rviz中调用电脑摄像头

一、安装相关软件包 安装uvc camera sudo apt-get install ros-kinetic-uvc-camera安装image相关功能包 sudo apt-get install ros-kinetic-image-* sudo apt-get install ros-kinetic-rqt-image-view 要记得把kinetic换成 你自己的ros版本。 二、启动ros,调用…

我国中央商务区(CBD)的空间重构及发展模式

中央商务区(Central Business District,简称为CBD),原始意义为“商业会聚之地”是指一个国家或城市商务活动的主要集中的区域,是汇聚商务服务、金融服务、科技服务、咨询服务、会展服务、文化服务等服务业的集聚区域&a…

科海思针对锂盐溶液/锂电废水除钙镁、除硼、除铊的解决方案

碳酸锂是锂电行业阳极生产中的一个重要原材料,主要用于制造钴酸锂、镍酸锂、锰酸锂等电极材料,在充电锂电池中也用作非水溶液电解质等,具有良好的电化学性能,应用领域还在不断扩大。 工业级碳酸锂主含量(Li2CO3&#…

es elasticsearch 八 mapping 映射 、复杂数据类型

目录 Mapping 映射 复杂数据类型 Mapping 映射 精确匹配 必须和对应字段值安全一致才可查出 全文检索 缩写搜索全程、格式转换 大小写 同义词 全文检索核心原理 分词,初步的倒排索引的建立 重建倒排索引 时态转换、重复数的转换、同义词的转换、大小写的转换 …

公文写作素材:工作落实类过渡句50例

1.再美的发展蓝图,如果不能落到实处,都是纸上谈兵;再大的奋进决心,如果没有实际行动,对工作毫无益处。 2.会议提出的任务再明确不落实只是纸上谈兵,会议出台的措施再可行不担当只是空中楼阁。 3.既要有不…

buildroot简介

网址 官网:https://buildroot.org/ 下载地址:https://buildroot.org/download.html 使用 解压后,执行make menuconfig Target options (目标板配置) Target Architecture: 目标架构&#…

SpringCloud微服务踩坑系列-java.lang.IllegalStateException

异常如下: 2023-05-24 08:47:10.764 ERROR 118400 --- [nio-8084-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exceptio…

1978-2020年337个城市的原材料储备量数据

铜、钢、铝、木材、水泥等原材料是城市建设和经济发展的必备物质!厘清原材料的储备情况对于经济发展、资源可持续利用等都具有重要意义! 我们发现在Springer Nature平台上分享有1978-2020年我国337个城市的原材料储备量数据!该数据包括了337…

《Spring Guides系列学习》guide16 - guide20

要想全面快速学习Spring的内容,最好的方法肯定是先去Spring官网去查阅文档,在Spring官网中找到了适合新手了解的官网Guides,一共68篇,打算全部过一遍,能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…

【微博-计算Cell子控件的frame Objective-C语言】

一、计算Cell子控件的frame 1.来,看一下,刚才我们已经做到把这个模型设置给自定义的cell了吧, 那么,在这个自定义Cell里面呢,我们是不是要开始设置数据了, 设置数据,我们,设置数据,其实很简单,就是把我们这里边的每一个控件,对应的值,从模型里面取出来,给了它,…

挂耳式耳机品牌排行榜,看看谁被推荐上榜

下班路上就想放空自己刷会儿视频,但是马路、地铁还有公交上都会有嘈杂的声音影响,如果佩戴入耳式耳机放大声音不仅会过度屏蔽外界,同时还会损伤我们的耳朵,所以新近流行的开放式耳机很好的解决了这些问题,但也有很多小…

智安网络|如何做好网络漏洞管理?这几点一定要了解!

随着网络技术的不断发展和应用,网络安全已经成为了各个企业、机构、甚至个人都需要面对和解决的难题。而在网络安全中,漏洞管理是非常重要的一个方面。本文将阐述网络安全中漏洞管理的相关知识和如何有效地进行漏洞管理。 一、漏洞管理的定义 漏洞是指软…

5.YAML介绍

什么是YAML? YAML是一种存储数据的文件格式。类似json和xml。 Ansible playbooks或者配置文件,以称为YAML的特定格式编写。如果您使用过其他数据结构格式(如XML或JSON),则应该能够轻松地使用它。 上图中就是以3种格式表…