Skip to content

Latest commit

 

History

History
 
 

5

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

分页和分段

我们建立索引,使用下标来访问一个一个的内存段,这些在物理内存中的实际段落就是页,这页中有很多地址, 比如我们使用索引 1 2 3 4 5 6 7 分别对应7个页,那么这7个页里面又有10个地址,那么这个索引就应该这么写 例如 77 也就是第七个页的偏移7个单位, 这就是内存虚拟化后,将内存分块,然后建立索引。虚拟内存的建立可以将物理内存映射到这些个页中。举个例子

现在有个进程 使用 2m的内存,但是物理内存只有1m,那么我们就可以使用虚拟内存这个虚拟内存就是比如2个页它的内存刚刚好使2m这个时候就满足了内存要求 我们使用的时候直接使用这个页,然后页再映射到物理内存,使用1页的时候就占满了内存,这个时候要使用一部分2页的内容,那么2也映射的是跟1一样的物理内存,这个时候将1页上的映射删除掉,然后将物理内存上的东西删除,该2页跟物理内存映射,这样就可以扩展了1m变成2m了。

分页映射,分段映射

MMU 内存管理单元 管理页表 也就是 它管理者 页和物理内存的映射关系,页分为两部分 一部分是储存了页面号,另一部分就是偏移量。 区别

分段是将这些页储存在一个一个的段中,这些页可以大小不一,然后我们使用一个二维的地址去寻找这个映射。

  • 分页 对程序员透明 分段:由于分段是各各独立的地址空间,所以需要程序员去分配每个段的地址

  • 分页是一维地址 也就是直接映射即可,分段不是,分段式一个个大小不一的段,然后里面再放入大小一致的页,这样就会有二维的地址了。

  • 分页的 页大小是固定的,就会造成可能 有些资源用不完有些资源不够用,但是分段是可调控的,如果需要资源多可以大一点,需要的少,可以小一点

出现的原因:分页主要用于实现虚拟内存,从而获得更大的地址空间;分段主要是为了使程序和数据可以被划分为逻辑上独立的地址空间并且有助于共享和保护。