日期:2014-05-16 浏览次数:20769 次
此文内容在do_execve()函数的change_ldt()函数之后create_table()函数运行之前的情形。change_ldt()函数会调用put_page()函数把参数内存页放置到当前任务的线性地址的末端。
第一步:在页目录表里找到任务2的参数内存页所在的页目录项,算出页表所在的地址0xffd000,因为每个进程64M对应16个字的空间任务2的在第32-47个字处。
第二步:根据页表里面的页表项找出内存页所在的地址0xff7000。
第三步,可以看出这时的参数块只填充到了0xff7fec
附上change_ldt()之前的页目录项: