linux-0.11调试教程,task2参数所在内存页的页目录项和页表项
2013-01-23 14:32
344 查看
此文内容在do_execve()函数的change_ldt()函数之后create_table()函数运行之前的情形。change_ldt()函数会调用put_page()函数把参数内存页放置到当前任务的线性地址的末端。
第一步:在页目录表里找到任务2的参数内存页所在的页目录项,算出页表所在的地址0xffd000,因为每个进程64M对应16个字的空间任务2的在第32-47个字处。
![](http://img.my.csdn.net/uploads/201301/23/1358923025_2080.JPG)
第二步:根据页表里面的页表项找出内存页所在的地址0xff7000。
![](http://img.my.csdn.net/uploads/201301/23/1358923046_4294.JPG)
第三步,可以看出这时的参数块只填充到了0xff7fec
![](http://img.my.csdn.net/uploads/201301/23/1358923081_8846.JPG)
附上change_ldt()之前的页目录项:
第一步:在页目录表里找到任务2的参数内存页所在的页目录项,算出页表所在的地址0xffd000,因为每个进程64M对应16个字的空间任务2的在第32-47个字处。
第二步:根据页表里面的页表项找出内存页所在的地址0xff7000。
第三步,可以看出这时的参数块只填充到了0xff7fec
附上change_ldt()之前的页目录项:
相关文章推荐
- linux-0.11调试教程,rl_dispatch ()函数调用函数的参数的个数
- linux-0.11调试教程,minix文件系统1.0上篇(01),硬盘基本参数hd_info
- linux-0.11调试教程,task3(03),do_signale之后的用户栈
- linux-0.11调试教程,task2的参数,copy_strings()函数和create_tables()函数的关系
- linux-0.11调试教程,task2
- linux-0.11调试教程,task3(04),sa_restore函数
- linux0.11调试教程,写了个readinode,参数i节点号,返回磁盘i节点到文件inodexxxx
- linux-0.11调试教程,task3(01),/etc/rc文件
- linux-0.11调试教程,task3(02)系统调用sys_alarm和sigaction结构
- linux-0.11调试教程,head.s页表项
- linux-0.11调试教程,fflush()函数实现分析和FILE类型定义
- linux-0.11调试教程,df.c源代码分析,自己写了个super for linux-0.11
- linux-0.11调试教程,mkfs.c源代码分析(2)
- linux-0.11调试教程,update_line()函数中的按下字符键对应的缓冲区
- linux-0.11调试教程,timer_interrupt,内核态发生的时钟中断(02)
- linux-0.11调试教程,setup.s中的硬盘参数表
- linux-0.11调试教程,mkfs.c源代码分析(3)
- linux0.11调试教程,task3概述
- linux-0.11调试教程,update_line()函数中按下退格键时对应的缓冲区
- linux-0.11调试教程,findipn根据i节点号返回路径和文件名