这几天看赵炯博士的书,看linux内核内存管理部分。
内分段最开始引入是因为8086处理器的寄存器全都是16位的,而地址线却是20位的,所以不分段的话无法寻址全部的1MB内存地址空间。所以最开始引入了内存分段模式。
内存分页
在操作系统中出现的所有地址都是虚拟地址,(因为内存分页是操作系统自带的功能,除非在裸奔的机器上【无操作系统】可以直接操纵物理内存地址)。
分页就是建立一个页表,为每个物理内存页编号,然后再分配给进程使用。
(具体虚拟地址的值,是由程序编写者根据程序功能确定的。【内存分页好像有点拿来即用的感觉。】目的是为了解决内存碎片化的问题,浪费大量内存空间。
可参考操作系统内存管理(一)分页机制的来由
第三项、不连续分配——分页。的第3小项、页表。
之前一直无法理解,虚拟地址,物理地址,逻辑地址,这些名词。现在好像懂了一点儿,理解的太慢了!