知识点4-虚拟内存

2019-08-12  本文已影响0人  二十二_0cbe

目的:为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。一般为物理内存的1.5--3倍。
内存管理单元(MMU):管理着地址空间和物理内存的转换,其中的页表(Page table)存储着页(程序地址空间)和页框(物理内存空间)的映射表。
虚拟地址:分成两个部分,一部分存储页面号,一部分存储偏移量。
分页:虚拟内存采用的是分页技术,也就是将地址空间划分成固定大小的页,每一页再与内存进行映射。
分段::把每个表分成段,一个段构成一个独立的地址空间。每个段的长度可以不同,并且可以动态增长。
段页式:程序的地址空间划分成多个拥有独立地址空间的段,每个段上的地址空间划分成大小相同的页。这样既拥有分段系统的共享和保护,又拥有分页系统的虚拟内存功能。
分页和分段的区别:
1.对程序员的透明性:分页透明,但是分段需要程序员显式划分每个段。
2.地址空间的维度:分页是一维地址空间,分段是二维的。
3.大小是否可以改变:页的大小不可变,段的大小可以动态改变。
4.出现的原因:分页主要用于实现虚拟内存,从而获得更大的地址空间;分段主要是为了使程序和数据可以被划分为逻辑上独立的地址空间并且有助于共享和保护。

页面置换算法

最近最久未使用(LRU, Least Recently Used):LRU 将最近最久未使用的页面换出。

静态链接和动态链接

1. 编译系统

编译系统

2. 静态链接
以一组可重定位目标文件为输入,生成一个完全链接的可执行目标文件作为输出。链接器主要完成以下两个任务:

3. 动态链接
静态库有以下两个问题:

共享库是为了解决静态库的这两个问题而设计的,在 Linux 系统中通常用 .so 后缀来表示,Windows 系统上它们被称为 DLL。它具有以下特点:

上一篇 下一篇

猜你喜欢

热点阅读