头歌操作系统 课堂作业4.2:页式内存管理 答案 无解析

该文详细描述了使用gdb和dbg调试工具对操作系统的内存管理进行分析的过程,关注点在于页目录和页表在进程调用函数时的变化,以及不同进程的用户栈和核心栈在物理内存中的位置。通过对特定内核版本的实验,揭示了进程执行不同阶段内存映射的关系。

第1关:页目录和页表的变化

编程要求

通过 gdb 和 dbg 调试查找答案,将第三关的答案填写在/data/workspace/myshixun/第三关.txt中。

1.在 1 号进程第 1 次开始执行 output_char 函数调用时,线性地址空间到物理地址空间的映射关系是怎样的?
2.在 1 号进程第 2 次开始执行 output_char 函数调用时,线性地址空间到物理地址空间的映射关系是怎样的?
3.在 1 号进程的第 1、2 次 output_char 函数调用之间,页目录和页表发生了怎样的变化?

环境配置版本1.3内核与之前一样,详情请移步以下链接~头歌操作系统 课堂练习4.1:段式内存管理 答案_蓝莓奶油饺子·的博客-优快云博客

打开dbg调试器:

b 0x6969
c
sreg
creg
x/1024wx 0
x/20wx 0
x/1024wx 0x1000
x/1024wx 0x2000
x/1024wx 0x3000
x/1024wx 0x4000

x/20wx 0
x/1024wx 0xffe000
c
sreg
creg

x/1024wx 0
x/20wx 0
x/1024wx 0x1000
x/1024wx 0x2000
x/1024wx 0x3000
x/1024wx 0x4000
x/1024wx 0xffe000
quit

第一关文档答案:

 第2关:用户栈和核心栈的物理位置

编程要求

通过 gdb 和 dbg 调试查找答案,将第四关的答案填写在/data/workspace/myshixun/第四关.txt中。
使用版本 1 内核时,在第 2 次进程调度后:

  1. 0 号进程和 1 号进程的进程控制块的地址分别是多少?
  2. 执行到函数 task0 时,0 号进程的用户栈栈顶位于物理内存何处?
  3. 0 号进程执行到函数 sys_pause 时,核心栈栈顶位于物理内存何处?
  4. 执行到函数 task1 时,1 号进程的用户栈栈顶位于物理内存何处?
  5. 1 号进程执行到函数 sys_pause 时,核心栈栈顶位于物理内存何处?

在终端配置版本1内核代码如下:

cp /data/workspace/myshixun/exp4/1.tgz ~/os/
cd ~/os/linux-0.11-lab/
tar -zxvf ../1.tgz
rm -rf cur
ln -s 1 cur
cd 1/linux
make

在终端键入代码:

cat System.map | grep task0
cat System.map | grep task1
cat System.map | grep sys_pause
cat System.map | grep schedule
cat System.map | grep current

cd ../..

运行效果如图所示:

打开gdb调试器:

b task1
c
p task
p task[0]->pid
p task[1]->pid
quit

 运行效果如图所示:

 打开dbg调试器:

b 0x6d93
c
c
delete 1

b 0x7963
c
sreg
reg
x/wx 0
x/38wx 0x1000
delete 2

b 0x6f46
c
x/wx 0x1fa20
reg
sreg
x/wx 0
delete 3

b 0x7985
c
reg
sreg
x/17wx 0
x/38wx 0xffe000
delete 4

b 0x6f46
c
x/wx 0x1fa20
reg 
sreg
x/4wx 0
x/1024wx 0x4000
quit

第二关文档答案:

 

 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值