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

第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:段式内存管理 答案_蓝莓奶油饺子·的博客-CSDN博客

打开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

第二关文档答案:

猜你喜欢

转载自blog.csdn.net/kercii/article/details/130566921