操作系统的存储管理概述

现代操作系统采用“分层储存器体系“ 计算机拥有若干兆快速、昂贵且易失性的高速缓存,价格与速度适中的同易失性的内存以及不易失访问速度慢的大容量的磁盘存储

操作系统中分层存储器体系的部分称为存储管理器。任务是记录哪些内存正在使用,哪些可分配,在进程需要时分配内存,进程使用完毕释放内存。

1.地址空间

早期的操作系统是直接将物理地址直接暴露给进程,但是缺陷很多。为了要保证多个应用程序同时处于内存中而彼此独立,提出地址空间,可以解决保护和重定位定位两大问题。

地址空间是一个进程用来寻址内存的一套地址集合,每个进程都有自己的地址空间,并且与其它地址空间相互独立,除了某些特殊情况下需要共享地址空间外。

1.1基址寄存器和界限寄存器

早期的物理地址与地址空间之间的映射法——利用基址寄存器和界限寄存器,进程运行时,把程序起始物理地址和程序长度分别放入基址寄存器和界限寄存器,每次CPU访问某地址时在把指令发送到总线前会先把进程发出的地址加上基址寄存器的值,即实际物理地址发送到总线。同时检查进程地址是否超过界限寄存器值。若超过,则终止访问。此法缺点是每次访问都要计算一次加法,效率低。

1.2交换技术

由于内存有限,所有进程所需的RAM远大于实际内存,从而需要处理内存超载,有两种方法1.交换技术2.虚拟内存技术。

交换技术即进程运行一段时间后,把它存回磁盘,使它不占用内存。

交换的时候会在内存区产生很多空闲区即空洞,此时可使用内存紧缩技术,速度极慢,一般不采用

很多进程在执行过程中会动态分配内存,这样可以为进程分配预留的空间。而预留的空间可以在进程存回磁盘时可以不交换以提高效率。

2.空闲内存管理

2.1 位图法

内存划分为很多分配单元,每个分配单元代应位图中的一个位,

缺点:存储管理器在寻找空闲地址时就要扫描位图(一块固定的内存),找到k个连续为0的串。(假设0位代表空闲)比较耗时。

2.2 链表法

用一个链表记录已分配的内存段和空闲内存段。链表中的节点要么包含进程要么包含两个进程之间的空闲区。每个节点的内容:空闲区或内存区的标识,起始地址和长度,指向上一节点和下一节点的指针。一般来讲,是按照地址顺序在链表中存放进程和空闲区的。

假设存储管理器已知要创建的进程需要的存储空间大小。

2.21 首次适配法,沿着段链表搜索,找到第一个大小符合条件的节点,分配之。

此时空闲区会分裂成两部分,即多产生一个节点,一部分是进程节点,一部分是空闲区节点。

优点:速度快,搜索节点最少

2.22 下次适配法

沿着链表搜索,找到第一个合适的链表节点,记录之,分配给进程空间,下次有进程在需要分配时,就从此处作为搜寻起点。

2.23 最佳适配法

搜索链表所有节点,找到内存大小最接近的节点,

缺点:会产生大量的小空闲区

当为空闲区和进程区各自维护一个链表这样速度都可以提高,但是会增加复杂度和内存释放速度变慢,因为每次释放进程都要先删除进程链表节点,然后插入空闲链表。

3.虚拟内存

基本思想:每个程序拥有自己的地址空间,这个空间分为多个块,每个块称作一个页面,每个页有连续的地址范围。这些页被映射到物理地址。不是所有的页都必须在内存中程序才能执行。当程序引用到一部分已经在物理内存中的地址空间时,立刻执行映射并访问,否则操作系统负责将缺失的部分装入物理内存再执行。许多程序的片段同时保存在内存中。当一个进程在将它的一部分装入内存中,CPU可以给其他进程使用。

执行映射的工作由内存管理空间完成。页表给出虚拟地址和物理内存地址之间的映射关系,可以将虚拟页表看做一个函数,自变量是虚拟页号,因变量是实际物理地址。

页面项的结构:页框号(实际物理地址),保护位:允许什么类型的访问(读、写、执行权限),修改位:记录读入内存后有没有被修改过、访问位:帮助页面置换算法的使用。

高速缓存禁止位:禁止该页面被高速缓存。对于映射到设备寄存器的页面有用。

3.1 加速分页过程

1.加快分页方法 利用一个转换检测缓冲区(TLB),包含少量表项。表项内容:有效位、修改位、保护位、页框号和虚拟页面号、MMU在收到虚拟地址页面号先到TLB中寻找,若存在则跳过页表直接读出页框号,若不存在,去页表寻找,找到后更新TLB。

2.针对大内存的页表

法1:多级页表

假设有一个32位的虚拟地址,前十位PT1域标识顶级页表,中间十位PT2域标记,后12位为偏移量。由于偏移量是12位,故每个页表大小为4KB。共2^20个页表。

当一个32位虚拟地址送到MMU时,MMU首先提取PT1的十位,以此索引到4MB的虚拟内存空间,即二级页表的地址,然后提取PT2域,在二级页表中以此十位索引到实际的页框值。然后将页框值加上偏移量就得到·实际物理内存地址。这样就避免了将全部2^32个页表项都要储存的处境。

法2;倒排页表法

但实际使用64位址的时候,由于页表项太多,多级制也行不通。在实际内存中,每一个页框一个表项。而不是每一个虚拟页面一个表项。这样即使虚拟页面再多,页表项数目也只与实际内存页框数相关。但此时内存访问时不能以虚拟页面作为参数直接在页表中找到地址了。而是搜索整个页表项。此时使用TLB来加速。让TLB记录所有频繁使用的页面。当TLB失效时再搜索散列表。以虚拟地址来散列。使具有相同散列值的虚拟页面;链接在一起。

时间: 2024-10-29 19:08:05

操作系统的存储管理概述的相关文章

操作系统原理4——存储管理

本章考核知识点: 1.重定位 2.固定分区存储管理 3.可变分区存储管理 4.页式存储管理 5.段式存储管理 6.虚拟存储器 自学要求 : 明确存储管理的职能是对主存储器中的用户区域进行管理: 理解在不同的管理方式下如何实现存储保护.地址转换.以及主存空间的分配和回收: 比较各种管理方式的特点: 掌握虚拟存储器的实现原理和方法. 重点是: 各种管理方式的特点: 可变分区方式的主存分配算法以及移动技术: 分页式虚拟存储管理的实现以及页面调度算法: 分段式虚拟存储管理的实现. 操作系统的存储管理如同

实验0-操作系统

实验0  了解和熟悉操作系统 一.目的和要求 1. 实验目的 (1)掌握操作系统的定义和概念: (2)了解各类操作系统的发展历史: 2.实验要求 使用网络搜索了解各类计算机操作系统的知识,并整理成一篇文档. 二.实验内容 了解和掌握内容包括: 计算机操作系统的定义和概念: 操作系统的分类: 常用几种操作系统的优缺点分析:Linux,Windows 三.实验拓展思考 (1)       操作系统(Operating System,简称OS)是管理计算机系统的全部硬件资源包括软件资源及数据资源:控制

操作系统(计算机管理控制程序)

操作系统结合着计算机学科和管理学科. 操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行. 操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口.操作系统的功能包括管理计算机系统的硬件.软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,让计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软

操作系统相关知识

一.什么是操作系统 操作系统(Operating System,简称OS)是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合.操作系统是计算机系统的关键组成部分,负责管理与配置内存.决定系统资源供需的优先次序.控制输入与输出设备.操作网络与管理文件系统等基本任务. 二.操作系统的种类 操作系统的种类很多,各种设备安装的操作系统可从简单到复杂,可从手机的嵌入式操作系统到超级计算机的大型操作系统.目前流行的现代操作系统主要有Android.BSD.IOS.Linux Ma

Linux运维学习历程-第1天

什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统. 为什么学Linux 几乎所有的Linux版本都是免费的,网上有很多正版资源可供下载使用: Linux是开源性的,只要使用者遵循一定的开源协议就可以修改源代码:并且可以进行学习科研.工

离散数学图论

w 如何学习数据结构? - 知乎  https://www.zhihu.com/question/21318658/answer/63652147 作者:知乎用户链接:https://www.zhihu.com/question/21318658/answer/63652147来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 数据结构的本质就在于:如何将现实世界中各种各样的数据放入到内存中,并且如何在内存中操作这些数据,如何评价这些存储方案和操作方法.数据结构难学吗

[网络课摘抄]7 ASM文件系统

1.确认数据库版本 2.个人理解的存储解决方案的发展趋势 2.1图示说明 2.2图示描述 如上图我们描述了在不同时期的IT行业(数据库)出现的存储文件系统,下面我们将分别说明: ü  裸设备:所谓裸设备是指那些没有安装文件系统的一些存储设备,像比较老一点的IDE磁盘,到现在常用到的SCSI磁盘等,只要没有安装文件系统就属于裸设备:我们在使用裸设备的时候或者说数据库在使用裸设备的时候,必须为每一个文件单独创建一个裸设备,这种情况下对于数据的复制和备份很不方便,所以这种存储方案大多不被人们所接受.

数据结构的本质

1.生活.生产等现实世界的数据有各种各样的组成形式.例如一个课程的所有学生的成绩(一组数据),一个班全部学生的所有课程的成绩(一张表).一个单位的人员结构(树)等等. 2.这些数据都要先加载到内存中,再送到CPU中进行计算. 3.内存的最基本单位叫做存储单元,一个字节(不讨论理论中的.个别情况的).存储单元相当于一个空盒子,可以放置数据.为了便于管理,盒子会给一个编号,当然存储单元也会有编号,其实就是地址.理论上地址的方案可以有多种(计算机组成原理和操作系统的任务),不过对于程序员来说,这些都跟

计算机中存储的分类

一般有三层结构:CPU寄存器,主存,辅存 在高档的计算机中细分为:寄存器,高速缓存,主存储器,磁盘缓存,固定磁盘,可移动存储介质. 其中寄存器,高速缓存,主存储器和磁盘缓存属于操作系统的管辖范围,掉电后其中的存储信息不存在. 寄存器和主存储器被称为可执行存储器,缓存则属于辅助存储器,不同之处就是访问机制的不同:进程可以在很少的时钟周期内使用一条load或store指令对可执行存储器进行访问,但是对于辅存需要通过I/O设备实现. 不同层次的存储介质,由操作系统进行统一管理.操作系统的存储管理负责对