课堂练习4.4:页式虚存

2023-12-11 06:04
文章标签 课堂练习 4.4 页式 虚存

本文主要是介绍课堂练习4.4:页式虚存,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

4-7 课堂练习4.4:页式虚存

缺页异常在 Linux 内核处理中占有非常重要的位置,很多 Linux 特性,如写时复制,页框延迟分配,内存回收中的磁盘和内存交换,都需要借助缺页异常来进行。 本实训分析 Linux 0.11 的缺页处理机制。

第1关版本 0 内核的第一次缺页页故障

任务描述

本关任务:分析版本 0 内核的第一次缺页页故障,回答下列问题: 1.该页故障由几号进程引发? 2.在该故障发生前,该进程执行的最后一个可执行文件是什么?该可执行文件的第 2 块(每块 1KB )的头 16 字节的内容是什么? 3.引发该页故障的线性地址是什么?该进程的代码段起始地址是多少? 4.该页故障处理前,该线性地址对应的页目录项的地址和值分别是什么? 5.该页故障处理时,申请到的空闲页帧的起始地址是什么?该页帧的头 16 字节的内容是什么? 6.该页故障处理过程中、读入硬盘数据后,上述页帧的头 16 字节的内容是什么? 7.该页故障处理过程中、修改对应的页表项后,上述线性地址对应的页表项的值是什么?

相关知识

为了完成本关任务,你需要掌握: 1.如何跟踪到缺页页故障的发生; 2.如何跟踪可执行文件的执行; 3.如何显示 bochs 虚拟机硬盘中某个可执行文件的内容; 4.在 gdb 中如何知道引发缺页页故障的线性地址是多少; 5.函数 do_no_page 的处理过程是怎样的; 6.在 gdb 中如何查看当前进程的(用户)代码段的起始地址; 7.如何分析线性地址空间到物理地址空间的映射关系; 8.如何计算一个线性地址对应的物理地址; 9.如何计算一个线性地址的高 10 位和中间 10 位的值; 10.页目录项和页表项的格式是什么; 11.如何查看某个页目录项的值; 12.在 gdb 调试时,如何知道某页帧的头 16 字节的内容。

实验准备

本关卡使用版本 0 内核进行分析,内核文件为 ~/os/linux-0.11-lab/0

编程要求

分析版本 0 内核的第一次缺页页故障,回答下列问题:将第一关答案填写在/data/workspace/myshixun/第一关.txt 1.该页故障由几号进程引发? 2.在该故障发生前,该进程执行的最后一个可执行文件是什么?该可执行文件的第 2 块(每块 1KB )的头 16 字节的内容是什么? 3.引发该页故障的线性地址是什么?该进程的代码段起始地址是多少? 4.该页故障处理前,该线性地址对应的页目录项的地址和值分别是什么? 5.该页故障处理时,申请到的空闲页帧的起始地址是什么?该页帧的头 16 字节的内容是什么? 6.该页故障处理过程中、读入硬盘数据后,上述页帧的头 16 字节的内容是什么? 7.该页故障处理过程中、修改对应的页表项后,上述线性地址对应的页表项的值是什么?

实验过程及答案

实验过程

默认为0内核所以本次不需额外配置

cd os/linux-0.11-lab
./rungdb

另开一个终端

cd os/linux-0.11-lab
./mygdb

这篇关于课堂练习4.4:页式虚存的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/479680

相关文章

ubuntu16.04 下 android 4.4.4 源码编译

文章目录 环境依赖编译过程问题1、MODULE.TARGET.SHARED_LIBRARIES.xxx already defined by xxx2、make: **** No Rule to make target "hardware/qcom/sm8150p/Android.mk" Stop 编译成功结果参考 环境依赖 java: 1.6make:3.81python:2.

4.4 Sensors -- useDevicePixelRatio

4.4 Sensors – useDevicePixelRatio https://vueuse.org/core/useDevicePixelRatio/ 作用 动态追踪devicePixelRatio的变化。 window.devicePixelRatio = 物理像素/ 设备独立像素。 没有可以监听 window.devicePixelRatio 变化的事件监听器。因此,函数以编程

exec: /opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found

ubuntu 使用arm-linux-gcc提示,明明工具存在,而且环境变量也设置好了 /opt/FriendlyARM/toolschain/4.4.3/bin//arm-linux-gcc: 15: exec: /opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found   file /opt/

Ubuntu 12.04系统交叉编译开发工具的安装(arm-linux-gcc-4.4.3都一样)

在韦东山《Linux开发使用手册》光盘中的tool目录下找到交叉编译的工具包arm-linux-gcc-4.4.3.tar.gz,安装步骤: 1、解压交叉编译开发工具包        sudo tar xvzf arm-linux-gcc-4.4.3.tar.gz -C /       解压工具链到根目录,这里的解压目录可以任意指定。系统中会增加目录/opt/FriendlyARM/toolsc

RFC6455-The WebSocket protocol 之五:Opening Handshake 4.2-4.4

参考:http://jinnianshilongnian.iteye.com/blog/1898350 4.2 Server-Side Requirements 服务器端的要求 Servers MAY offload the management of the connection to other agents    on the network, for ex

Nexus5安卓4.4关闭环聊短信的教程,代替原生环聊功能强

http://bbs.hutoufeng.net/forum.php?mod=viewthread&tid=5234&page=1&extra=#pid6076 第五代Google Nexus系列智能手机,由Google公司进行产品设计,第三方厂家LG代工生产,搭载Android 4.4 kitkat系统。于2013年万圣节发布。对于Nexus5手机的使用我想说有些用户还不是很清楚搭载安卓

GUI编程04:课堂练习及总结

本节内容视频链接:6、课堂练习讲解及总结_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p=6&vd_source=b5775c3a4ea16a5306db9c7c1c1486b5 根据前三节学习到的Frame、Panel、Button知识,画出一下窗口界面: 实现代码如下: public class ExDemo01

4.4 bps 拯救小哈

题目: 代码: #include<stdio.h>#include<stdlib.h>#include<string.h>//只有一个路线,没有深度优先的分支!!!//节点法创建顺序队列//节点typedef struct note{int x;int y;int s;}note;int main(){int i,j,k,n,p,q,tx,ty,flag,book[51][5

Apache Impala 4.4.1正式发布了!

Impala 4.4.1是一个维护性发布,主要修复Impala 4.4.0的一些问题。下面简要列举一些改动,完整的ChangeLog可参考 https://impala.apache.org/docs/changelog-4.4.1.html Impala 4.4.0的新功能可参考上一篇文章:Apache Impala 4.4.0正式发布了! 安装包下载 这次版本发布提供了RPM/DEB安装包

4.4、Django - URL之URL传参给视图(一)

1、为什么要在URL中传递参数? 参数,意味着在url中不固定,如果是写死固定的话,就不需要了 。 下面两幅图,显示的是前面部分相同的豆瓣的文章链接,只有后面的id不一样 。 在APP为douBook下的views.py中: from django.http import HttpResponsedef book_info(request):return HttpResponse("图书