操作系统-存储管理
Posted dankon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统-存储管理相关的知识,希望对你有一定的参考价值。
基本概念
地址空间
- 名空间:程序中由符号名组成的空间称之为名空间。
- 逻辑地址空间:指地址的集合。程序经编译连接之后的编制是相对地址,以0为基址。相对地址也称为逻辑地址或虚拟地址,逻辑地址的集合称为逻辑地址空间,简称地址空间。
- 存储空间:计算机系统实际的内存地址是绝对地址,亦称为物理地址或者实地址。地址的集合称为物理地址空间,亦称为存储空间。
地址重定位
- 地址重定位:将程序的逻辑地址转化为主存的物理地址。该工作由操作系统中的装入程序Loader和地址重定位机构来完成。分为静态重定位、动态重定位。
实存管理
分页存储管理
- 在分页存储管理系统中,将逻辑地址划分为若干大小相等的片,称为页面或页,相应的,主存空间也分为跟页一样大小的片,称为物理块或者页框。
快表
- 快表是用来保持当前访问频率高的少数活动页的页号、对应页框号及其它信息的相联存储器。
分段存储管理
- 在分段存储管理中,作业的地址空间被分为若干个大小不必相等的段,每个段定义了一组逻辑信息。其地址结构是二维的。
- 分段系统中地址变换的过程如下:
虚存管理
局部性原理
- 局部性原理:程序在执行时,在一段时间内,程序的执行仅局限于某个特定的部分;相应的,其访问的存储空间也局限于某个区域内。程序的局限性表现在时间局限性和空间局限性两个方面。
- 时间局限性:如果程序中的某一条指令一旦执行,则不久以后该指令可能再次被执行;如果某个数据结构被访问,则不就之后它可能再次被访问。
- 空间局限性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也被访问。即程序在一段时间内所访问的地址,可能集中在一定范围内,其典型情况是程序顺序执行。
虚拟存储器的定义
- 基于局部性原理,一个作业在运行之前,没必要全部装入内存,而仅将那些当前要运行的那部分页面或段装入内存便即可启动,其余部分可暂时留在磁盘了。
- 程序运行时,若要访问的页(段)已在内存,则继续执行下去;若不在,则要利用OS的请求调页(段)的功能将缺页(段)调入主存。
- 若在调入过程中,发现内存已满,就得利用页(段)的置换功能,将主存中暂时不用的页(段)调出到外存,腾出空间将需要的页(段)装入。
- 这样就可以使一个大的用户程序在较小的内存空间中运行;也可使内存中同时装入更多的进程并发执行。从用户的角度来看,该系统所具有的内存容量比实际容量大得多,因此,称其为虚拟存储器。
分页虚拟存储器
- 分页虚拟存储器亦称请求分页系统,它是在前述管理实存的分页系统上,增加了请求调页功能和页面置换功能的虚拟存储系统。
最佳页面置换算法
- 选择那些永不使用,或者是在最长时间内不再被访问的页面置换出去,这是一种理论上的算法,因为人们不可能确定下一步到底使用哪个页面。最佳替换算法OPT在现实中不能实现,只是作为评价其他置换算法的标准。
最近最久未使用置换算法
- 最近最久未使用置换算法LRU,选择近期最久未用的页面予以淘汰,系统在每个页面设置一个访问字段,记录这个页面自上次被访问以来所经历的时间T,当要选择页面淘汰时,就选T最大的那个页面。
先进先出置换算法
- 先进先出置换算法FIFO,选择最先调入内存的页面予以淘汰。在内存页表中设置一个计数器,每当有一个页面装入内存,就让该页面的计数器清零,而其他已经装入到主存的页面的计数器加1,在需要替换页时,选择计数器值最大的淘汰即可。亦可将调入内存的页面按先后次序链接成一个队列,每次淘汰队首页面即可,该算法会发生贝来迪异常现象。
最近未用置换算法
- 最近未用置换算法NUR是一种LRU近似算法,在每个页面设置一个访问为,将内存中所有页面按照调入内存的先后次序连接成一个循环队列。当某页被访问时,将该页访问位置1。在选择某一页淘汰时,就从队头开始,依次检查各页面的访问位,如果是0就将选择该页换出;若为1,则重新置0,并暂不换出,接着队头指针加1检查下一个页面,直到找到一个访问位为0的页面为止。
以上是关于操作系统-存储管理的主要内容,如果未能解决你的问题,请参考以下文章