Linux0.11源码分析--内存管理分析(一)

Linux0.11 内存管理(一):

物理内存16M---内核代码1M--高速缓冲(1M-4M)---虚拟盘(4M-4.5M)-主要程序内存区域(4.5M-16M)

线性地址:32位寻址4G---每个进程64M

1个进程的线性地址64M的分布情况:环境参数模块(最后的128K),前面是代码块、数据块、BSS、堆栈(堆栈的指针在环境参数块的头部),进程的起始地址是N*64M、结束地址是(N+1)*64M

分页管理方式:1个页目录表、1024个页表(一般进程单独占有一个页表)、1页占有4K、1个页表寻址4M、页目录表页表个占用1页物理内存。

页目录表页表内存分布:1个页目录4个页表在内存的0地址供内核使用、其他进程的页表在主内存中进行申请。

页目录或者页表的一个页项的结构:结构相同(12位-31位为页的地址、前面几位代表页的访问控制标志等)

主要的中断机制:(1)缺页中断(物理内存与线性地址的转化)(2)写时复制中断(进程创建时的内存共享)

源码函数的主要分类:(1)管理、初始化和统计实际的物理内存等:Get_free_page 和free_page等

(2)以一个页表管理的4M空间为单位进行管理:free_page_tables等

(3)线性地址与物理内存地址之间的映射函数:Put_page等

(4)中断处理函数 :do_wp_page等

CR2(控制寄存器2的作用)

 

 

 

你可能感兴趣的:(数据结构)