计算机操作系统 - 内存管理
? Read
一、虚拟内存
将物理内存抽象为地址空间,每个进程都有各自的地址空间,地址空间被分割成多个块,每一块称为一页。这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。目的是让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。
1、分页系统地址映射
内存管理单元负责地址空间和物理内存的转换,其中页表存储着页(程序地址空间)和页框(物理内存空间)的映射表。一个虚拟地址分为页面号(16位地址是前4位)和存储偏移量。页面号的十进制数对应页表的索引,一个页表项最后一位表示是否存在于内存,前几位即为页框的前几位。
2、页面置换算法
在程序运行过程中,如果要访问的页面不在内存中,就发生缺页中断从而将该页调入内存中。此时如果内存已无空闲空间,系统必须从内存中调出一个页面到磁盘对换区中来腾出空间。
页面置换算法的主要目的就是使页面置换频率最低。
- 大专栏
二、分段和段页式
1、分段
将地址空间划分为多个拥有独立地址空间的段,每个段的长度可以不同,并且可以动态增长。
2、段页式
程序的地址空间划分成多个拥有独立地址空间的段,每个段上的地址空间划分成大小相同的页。这样既拥有分段系统的共享和保护,又拥有分页系统的虚拟内存功能。
3、分页 VS 分段
分页对程序员透明,分段需要程序员显示划分每个段
分页是一维地址空间,分段是二维的
页的大小不可变,段的大小可以动态改变
- 分页主要用于实现虚拟内存,从而获得更大的地址空间;分段主要是为了使程序和数据可以被划分为逻辑上独立的地址空间并且有助于共享和保护
相关推荐
ljbhander 2020-08-07
emlinux 2020-06-22
fenxinzi 2020-06-21
Proudoffaith 2019-12-08
拉斯厄尔高福 2020-11-04
ThinkInLinux 2020-09-30
xiaobaichen 2020-07-30
mingrixing 2020-07-28
iammjun 2020-07-07
huanmie 2020-06-16
chenzhaoguo 2020-06-08
ThinkingLink 2020-05-29
wangqing 2020-05-19
pointfish 2020-05-08
cleanerxiaoqiang 2020-05-08
qingsongzdq 2020-05-01
zuixin 2020-04-19
NeverAgain 2020-04-17