摘要: 80386除了完成并完善从80286开始的段式内存管理的同时还实现了页式内存管理。 段式存储管理机制的灵活性和效率都比较差。以方面“段”是可变长度的,这就给盘区交换操作带来了不便;另一方面,如果为了增加灵活性而将每个进程的空间划分成很多小段时,就势必要求在程序中频繁地改变段寄存器的内容。同时,如果将段分小,虽然一个段描述符表中可以容纳8192个描述项,也未必就能保证足够使用。 80386的系统结构决定了它的页式存储管理只能建立在段式的基础之上。 80386增加了一个新的寄存器CR3作为指向当前页面目录的指针。这样,从线性地址到物理地址的映射过程为:1、从CR3取得页面目录的基地址2、... 阅读全文
posted @ 2013-06-09 16:38 shuying1234 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 所谓X86系列,是指Intel从16位微处理器8086开始的整个CPU芯片系列,系列中的每种型号都保持与以前的各种型号兼容,主要有8086、8088、80186、80286、80386、80486以及以后各种型号的Pentium芯片。 在X86系列中,8086和8088是16位处理器,而从80386开始为32位处理器,80286则是该系列从8088到80386,也就是从16位到32位过渡的一个中间步骤。当我们说一个CPU是16位或32位时,指的是处理器中ALU算术逻辑单元的宽度。 8086中采用16位CPU和1M字节的内存地址空间即20位的地址总线宽度。Intel使用分段的方法来处理A... 阅读全文
posted @ 2013-06-09 15:59 shuying1234 阅读(964) 评论(0) 推荐(0) 编辑
摘要: i386CPU中页式存管的基本思路:通过页面目录和页面表分两个层次实现从线性地址到物理地址的映射。这种映射模式在大多数情况下可以节省页面表所占用的空间。因为大多数进程不会用到这个虚存空间,在虚存空间中通常都留有很大的空洞。采用两层的方式,只要一个目录项所对应的那部分空间时空洞,就可以把该目录项设置成空,从而省下了与之对应的页面表(1024个页面表)。 linux内核的映射机制设计成三层:PGD,PMD,PT。相应的在逻辑上把线性地址从高位到地位划分为4个位段,各占若干位,分别用作在目录PGD中的下标、PMD下标和PT下标以及物理页面PTE中的偏移。 理论上每个进程可以使用的用户空间都是... 阅读全文
posted @ 2013-06-09 14:56 shuying1234 阅读(333) 评论(0) 推荐(0) 编辑