linux0.11中进程是如何使用各自空间的?其虚拟内..
时间:2007-04-10 来源:pywj777
1. linux0.11中进程是如何使用各自空间的?其虚拟内存映射机制(页目录,页表)是如何实现的?
(1) 答:fork()首先会为新进程申请一页内存用来复制父进程的任务数据结构(PCB)信息,然后会为新进程修改复制的任务数据结构的某些字段值,包括利用系统调用中断发生时逐步压入堆栈的寄存器信息。重新设置任务结构中的TSS结构的各个字段值。让新进程的状态保持父进程即将进入中断过程前的状态,然后为新进程确定在线性地址空间的起始位置(nr * 64MB)。对于CPU分段机制,linux0.11的代码段和数据段在线性地址空间中的位置和长度完全相同。接着系统会为新进程复制父进程的页目录项和页表项。对于linux0.11内核来说,所有程序共用一个位于物理内存开始位置处的页目录表,而新进程的页表则需另行申请一页内存来存放,并将页目录表相应项修改并映射到该页表。
相关阅读 更多 +