MASAKA

即使已经消亡,星光依然照耀我们

0%

【草稿】段页式存储管理简述

段页式存储管理简述

今天来简单聊聊操作系统的内存管理。
目前主要的管理方式是段页式管理,顾名思义,结合了段式管理和页式管理两种方式。

对于应用程序,申请内存时都是申请连续的一大片空间,如果直接分配连续的物理内存,则会产生很多内存碎片区域,这些碎片区域不满足程序需要的连续空间大小,所以会造成内存使用率低,而整理这些区域的代价又很大,所以需要增加映射关系,即将应用程序申请的连续空间映射到离散的物理内存空间。于是,有了不同的内存管理方式。

分页式管理

我们先来讲讲页式管理方式。

分页式管理将应用程序申请的内存分为页,通常一页为4K,然后将物理内存分为块,通常每块的大小等于每页的大小,然后,使用页表保了页号和块号的对应关系这样,应用程序访问内存时通过查询页表即可访问到内存。

页表示例:

页号 块号
0 2
1 3
2 6
3 8

分段式管理

我们再来聊聊分段式管理方式。

分段式管理是将应用程序申请的内存分成段,每一段对应的物理内存都是连续的,寻址时同样也需要映射关系。

段表示例:

段号 段长 基址
0 30K 40K
1 60K 80K

段页式内存管理

段页式管理结合了段式管理和页式管理。先查段表,然后查页表。每一个段对应一张页表。

段表示例:

段号 页表长度 页表始址
0 2
1 3

页表示例:

页号 块号
0 2
1 3
2 6
3 8

欢迎关注我的其它发布渠道