动态分区、虚拟内存、分页存储、分段存储 简介

动态分区的特点:

分区的个数和大小可变

存在内存碎片:动态分区,就是动态的判断某一块的内存空间能否存储,不会找到刚刚好的,一般都是能放进去就放了,其他剩下的区域,又交给其他程序进行存储,然后几轮下来,就会存在很小的空间,无法利用,这就是内存的碎片

 

虚拟内存管理的目标

使得大的程序能在较小的内存中运行

使得多个程序能在较小的内存中运行

使得多个程序并发运行时地址不冲突

使得内存利用效率高

 

虚拟内存管理实现的思路

在程序运行时,只把当前必要的很小一部分代码和数据装入内存中。其余代码和数据需要时再装入。不在运行的代码和数据及时从内存中删除

 

 

页式虚拟存储管理

将程序的逻辑地址空间(有的又叫做虚拟地址空间)划分为固定大小的页(page),而物理内存划分为同样大小的页框(pageframe)。程序加载时,可将任意一页放人内存中任意一个页框,这些页框不必连续,从而实现了离散分配。也就是把内存等分成N份,存放运行的程序时,按分成的快放置即可。

把进程空间和内存开年化成等大小的小片,小片的典型大小:1k,2k或4k

进程的小片——页(虚拟页或页面)

内存的小片——页框(物理页)

内存以页框为单位分配使用

进程以页为单位装入内存

页式虚拟存储管理:把进程全部页面装入虚拟存储器,执行时先把部分页面装入实际内存,然后,根据执行行为,动态调入不在主存的页,同时进行必要的页面调出,是现代OS的主流存储管理技术。

当主存空间已满而又需要装入新页时,页式虚拟存储管理必须按照一定的算法把已在主存的一些页调出去。选择淘汰页的工作称为页面调度 ,选择淘汰页的算法称为页面调度算法,页面调度算法设计不当,会出现刚被淘汰的页面立即又要调入,并如此反复,这种现象称为抖动或颠簸。

最佳页面替换算法 、  先进先出页面调度算法 、 最近最少用页面调度算法

 

段式存储管理

 

把进程按逻辑意义划分为多个段,每段有段名,长度不定。进程由多段组成

段式程序设计:把一个程序设计成多个段(代码段、数据段、堆栈段等),用户可以自己应用段覆盖技术扩充内存空间使用量。每一段都可以从“0”开始编址,段内的地址是连续的

 

段式内存管理系统的内存分配

以段为单位装入,每段分配连续的内存,段和段不要求相邻

段式虚拟存储管理:把进程的所有分段都存放在辅存中,进程运行时先把当前需要的一段或几段装入主存,在执行过程中访问到不在主存的段时再把它们动态装入

 

段式系统的缺点:

段需要连续的存储空间

段的最大尺寸受到内存大小的限制

 

 

 

段与页的区别:

段长可变,页面大小固定

段的划分有意义,页面无意义

段方便共享,页面不方便共享

段用户可见,页面用户不可见

段偏移有溢出,页偏移就下一页无溢出

 

 

段页式存储系统

在段式存储中结合页式存储管理技术——在段中划分页面

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你在狗叫什么、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值