操作系统内存管理 页式、段式、段页式存储

本文介绍了离散式内存分配的三种方法:页式、段式和段页式存储管理。页式存储通过页表实现逻辑地址与物理地址映射,减少了内存碎片;段式存储按逻辑划分,便于共享和保护,但可能导致内部碎片;段页式结合两者优点,但也增加了管理复杂性和硬件开销。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  连续型存储管理的缺点是会有过多的内存碎片。因此提出离散式内存分配,它主要包括以下三种方法:

-页式
段式
段页式

页面和物理块
  页面实际上就是把一个进程的逻辑地址空间分成一块一块,每一块称为一个页面。物理块是对主存进行分块,大小和页面的大小是一致的。

页式存储管理

【工作原理】:
  当有一个进程需要分配内存空间时,操作系统会将该进程的逻辑地址分成若干页,页面大小和物理块一样。然后将每一页放到物理块中,用页表记录下页号对应的物理块号,那么根据页表来查找就可以了。
  在页面和物理地址建立映射的时候,页表就被创建了。页表在内存中是连续存储的。实际上,页表在内存中只存了物理块号,页号没必要存,用相对地址来表示就可以了。
在这里插入图片描述
优点:没有外碎片,每个内碎片不超过页的大小。
缺点:程序全部装入内存,要求有相应的硬件支持,如地址变换机构缺页中断的产生和选择淘汰页面等都要求有相应的硬件支持。增加了机器成本和系统开销。

段式存储管理

  页式存储存在的缺点,如果页面太小,最终的页表项会很多很多;而且通过分页把一个进程各个部分分离开来,一定程度上影响了进程的逻辑性。

【工作原理】:
  对一个进程按照逻辑划分成几个段,然后这几个段离散地存储到内存空间上,段内部是连续存储。段表包括段长、基址。和页表一样,段表也是连续存储到内存上的,段号可以直接用逻辑地址推算出来,没有必要存到内存上。
优点:可以分别编写和编译,可以针对不同类型的段采取不同的保护,可以按段为单位来进行共享,包括通过动态链接进行代码共享。
缺点:会产生碎片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值