操做系统-页式内存管理

页式内存管理上

A.段式内存管理

1.指的是一段连续的内存空间
2.段式内存管理-程序的各个部分相对独立(数据段,代码段),早期x86处理器没法经过一个寄存器访问全部内存单元,解决早期程序运行的重定位问题
段式内存管理的应用,在x86系列的处理器中,硬件对段式内存管理进行了直接支持;另外,段式内存管理也可使用纯软件实现,内存单元地址=段首地址+段内偏移地址算法

B.段式内存管理在C语言中的实现

1.数组的本质:一片连续的内存
2.数组名:数组的起始内存地址
3.数组的元素的访问
4.第i个元素
Q:操做系统只使用段式内存管理是否足够?--需求
软硬件技术的发展
1.硬件技术:计算器部件独立化(硬件接口相同,可任意组装),计算机配置差别化(各部件硬件参数不一样)
2.软件技术:应用程序处理的问题愈来愈复杂,应用程序运行须要的资源愈来愈多(物理内存可能没法知足)
此时出现的问题是,当应用程序的规模越大时,会致使多数时候没法所有加载进入内存,会出现问题,须要提出方法进行解决数组

C.解决方案-按段加载(局部性原理)

只将当前程序运行须要的段加载进内存,当某个段再也不须要使用时,当即从内存中移除。可是按段加载会带来一些其它的问题,好比段的大小不肯定,可能大于实际的物理内存,段加载须要具体的长度信息,致使效率不高。
由此提出的新的解决方法-内存分页
1.页指的是固定大小的内存片(4KB)
2.每个内存由多个页组成
3.页是进行内存管理的基本单位
操做系统-页式内存管理ide

D.进阶虚拟存储技术

1.实模式下所使用的是物理地址空间
2.保护模式下所使用的是偏移地址空间
3.不一样应用程序所使用的内存空间的分离采用分页管理
4.程序运行须要的内存大于实际物理内存时分页加载
进阶虚拟存储技术(内存分页的意义)
虚拟内存空间(逻辑地址):程序在执行时内部使用的内存空间
物理内存空间(物理地址):物理机器所配置的实际内存空间,逻辑地址须要进行转换才能获得对应的物理地址操作系统

E.页式内存管理中的地址

地址=页号+页内偏移
逻辑地址=逻辑页号+页内偏移
物理地址=物理页号+页内偏移
地址转换时仅变动页号便可,页内偏移不变
逻辑地址到物理地址的映射
操做系统-页式内存管理
页式内存管理中的关键操做
1.页请求-访问一个逻辑地址时,对应的页不在内存中,从外存中将目标页加到内存中,以后更新页表
2.页交换-页请求时发现物理内存不足,须要将暂时不用的页移除,首先决定并选择须要移除的页;将选中页中的全部数据写入外存,更新页表,从新进行页请求
操做系统-页式内存管理3d

小结

1.内存分段可以解决必定问题,但没法保证程序的移植性
2.根据程序运行的局部性原理,可进一步对内存进行分页
3.页指的是固定大小的内存片(4KB)
4.页的引入使得程序的逻辑地址于内存的物理地址完全分离
5.操做系统的内存管理是以页为基本单位完成的blog

页式内存管理下

经过以前的介绍出现一些须要注意的问题
1.操做系统如何管理实际的物理内存
2.页表与不一样任务有怎样的关系
3.页表对任务的意义是什么
4.页表交换时如何选择须要替换的内存页
5.页表具体是如何构成的接口

A.操做系统如何管理实际的物理内存

页框与页面
页框:物理内存空间中的页
页面:逻辑内存空间中的页
操做系统对物理内存的管理-首先操做系统必须知道物理内存的使用状况,而后创建结构对物理内存进行管理,结构记录包括页框是否可用,被谁使用;最后为具体的应用程序分配页表
操做系统-页式内存管理内存

B.页表与不一样任务有怎样的关系

每一个任务都有专属的页表,页表是任务上下文的一部分操做系统-页式内存管理资源

C.页表对任务的意义是什么

1.页表机制可以保证任务没法意外的访问或破坏其它任务的内存
2.页表是虚拟内存空间与物理内存空间的分界线
3.由于页表的存在,各个任务才具有相同且独立的内存空间
4.页表是虚拟内存通往物理内存的惟一通道
操做系统-页式内存管理it

D.页交换时如何选择须要替换的内存页

在进行替换时的原则是:对再也不使用的内存页进行替换
1.FIFO页交换算法-将最早进入内存的页移除
2.LRU页交换算法-将当前使用最少的页从内存移出
FIFO页交换算法原理
操做系统-页式内存管理
LRU页交换原理
操做系统-页式内存管理
LRU页交换算法原理-访问计数的更新方式
1.每一个时间周期将全部页框的访问计数减1
2.当某个页面被访问时,RW将被访问计数加1
3.访问计数最小的页面是最近未被使用的页

E.页表具体是如何构成的

1.页表的本质是一个映射表
2.虚拟内存空间的每一页映射到一个页框
3.页表能够看做作一维整形数组
单级页表
1.每个任务都有页表
2.单级页表大小固定
3.根据程序云的局部性原理-多数状况下,页表为稀疏状态,单级页表会浪费大量内存资源操做系统-页式内存管理
二级页表
1.把页号分为两段:页目录+二级页号
2.若是下级页表的全部表项为空,那么页目录为空
操做系统-页式内存管理
二级页表示例-假设当前须要访问虚拟页为0x52,则,页目录为0x5,二级页号为0x2。因此:对应的页框号为0x31
操做系统-页式内存管理

小结

1.操做系统经过页框表对物理内存进行管理2.每一个任务都有本身专属的页表,任务经过页表使用物理内存3.须要页置换时,经过规则选择短时间内再也不使用的页进行置换4.单级页表可以快速映射对应的页框,但形成内存浪费5.二级页表将页号分为两部分:页目录+二级页号6.二级页表须要经过一次寻址才能映射到对应的页框

相关文章
相关标签/搜索