📜  操作系统中的多级分页(1)

📅  最后修改于: 2023-12-03 15:26:01.330000             🧑  作者: Mango

操作系统中的多级分页

简介

多级分页是操作系统中一种虚拟内存管理的技术,用于将物理内存抽象成逻辑上的连续地址空间,由内存管理单元(MMU)负责将逻辑地址转换为物理地址,以实现操作系统对内存空间的管理和保护。

在多级分页中,逻辑地址由两部分组成:页号和页内偏移量。页号通过多级映射得到相应的物理页框号,页内偏移量表示页号对应的页内偏移量,用于访问页所对应的页面中的内存单元。

多级分页的实现

多级分页的实现需要以下步骤:

  1. 为每个进程分配一个页目录表(Page Directory Table)。
  2. 为每个页目录表分配若干个页表(Page Table)。
  3. 将物理内存划分成大小相同的页面(Page),并建立物理页面与页框号之间的映射关系。
  4. 当进程访问某个逻辑地址时,将逻辑地址中的页号作为页目录表的索引,得到相应的页表。
  5. 将页表加上页号偏移量,得到物理页框号。
  6. 将页框号和页内偏移量组合成物理地址,供CPU访问内存。
多级分页的优缺点
优点:
  1. 多级分页允许使用不连续的物理内存空间,减少了内存碎片和浪费。
  2. 多级分页允许动态地映射逻辑地址空间,有助于在多个进程之间共享内存。
  3. 多级分页提供页级别的保护,可以保护进程地址空间中的某些区域,防止其他进程或内核访问它们。
缺点:
  1. 多级分页增加了访问内存所需的时间和计算开销,因为需要多次访问内存。
  2. 根据分页大小而定,分页大小越小则页表数量越多,在空间和时间上都会增加开销。
  3. 进程之间因为可以共享页面,则当共享页面发生变化时,需要在所有使用该页面的进程中更新相应的页表,开销较大。
总结

多级分页是一种非常有效的虚拟内存管理的技术,将物理内存抽象成了逻辑上连续的地址空间,并提供保护和动态映射等功能,但在空间和时间上都会提高一定的开销,程序员应在使用时充分考虑这些因素。

# 操作系统中的多级分页

## 简介
多级分页是操作系统中一种虚拟内存管理的技术,用于将物理内存抽象成逻辑上的连续地址空间,由内存管理单元(MMU)负责将逻辑地址转换为物理地址,以实现操作系统对内存空间的管理和保护。

在多级分页中,逻辑地址由两部分组成:页号和页内偏移量。页号通过多级映射得到相应的物理页框号,页内偏移量表示页号对应的页内偏移量,用于访问页所对应的页面中的内存单元。

## 多级分页的实现

多级分页的实现需要以下步骤:

1. 为每个进程分配一个页目录表(Page Directory Table)。
2. 为每个页目录表分配若干个页表(Page Table)。
3. 将物理内存划分成大小相同的页面(Page),并建立物理页面与页框号之间的映射关系。
4. 当进程访问某个逻辑地址时,将逻辑地址中的页号作为页目录表的索引,得到相应的页表。
5. 将页表加上页号偏移量,得到物理页框号。
6. 将页框号和页内偏移量组合成物理地址,供CPU访问内存。

## 多级分页的优缺点

### 优点:

1. 多级分页允许使用不连续的物理内存空间,减少了内存碎片和浪费。
2. 多级分页允许动态地映射逻辑地址空间,有助于在多个进程之间共享内存。
3. 多级分页提供页级别的保护,可以保护进程地址空间中的某些区域,防止其他进程或内核访问它们。

### 缺点:

1. 多级分页增加了访问内存所需的时间和计算开销,因为需要多次访问内存。
2. 根据分页大小而定,分页大小越小则页表数量越多,在空间和时间上都会增加开销。
3. 进程之间因为可以共享页面,则当共享页面发生变化时,需要在所有使用该页面的进程中更新相应的页表,开销较大。

## 总结

多级分页是一种非常有效的虚拟内存管理的技术,将物理内存抽象成了逻辑上连续的地址空间,并提供保护和动态映射等功能,但在空间和时间上都会提高一定的开销,程序员应在使用时充分考虑这些因素。