课堂练习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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/263692.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python满屏飘字表白代码

​ 目录 系列文章 写在前面 Turtle入门 满屏飘字 写在后面 系列文章 序号文章目录直达链接表白系列1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://…

四. 基于环视Camera的BEV感知算法-DETR3D

目录 前言0. 简述1. 算法动机&开创性思路2. 主体结构3. 损失函数4. 性能对比总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》,链接。记录下个人学习笔记,仅供自己参考 本次课程我们来学习下课程第四章——基于环视Cam…

1827_ChibiOS中OSLIB的邮箱机制

全部学习汇总: GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 邮箱其实是一个环形队列; 2. 使用场景上,邮箱主要是用来实现异步单向的一些消息或者数据处理的。在处理机制上&#xff…

MyBatis 四大核心组件之 StatementHandler 源码解析

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

Java中的IO流②——字符集、字符流、缓冲流

主要的编码规范: GBK编码 Windows自带 Unicode编码 为什么会有乱码? 原因一 原因二 编码和解码的代码实现 字符流 FileReader read()细节: 一:默认也是一个字节一个字节的读取,如果遇到中文就会一次读取多个 二&a…

FastAPI请求体-多个参数

路径参数、查询参数,和请求体混合 首先,我们需要导入所需的库。我们将使用FastAPI、Path和Annotated来处理路由和参数,并使用BaseModel和Union来自定义数据模型。 完整示例代码 from typing import Annotated, Unionfrom fastapi import F…

【开源】基于JAVA语言的数字化社区网格管理系统

项目编号: S 042 ,文末获取源码。 \color{red}{项目编号:S042,文末获取源码。} 项目编号:S042,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、开发背景四、系统展示五、核心源码5…

【工具】JS|浏览器脚本6分钟极速入门 · 开发一个限制自己刷b站的脚本

这张图花里胡哨的是让AI生成的,我觉得怪可爱的,就直接作为封面了。 这篇文章中会开发一个JS脚本,这是一个用来限制b站网页版功能的脚本,避免刷b站的时间过长。功能如下: 除了搜索、视频页、私信页之外的任何页都会被重…

[每周一更]-(第76期):Go源码阅读与分析的方式

读源码可以深层理解Go的编写方式,理解作者们的思维方式;也有助于对Go语法用法深刻的理解,我们从这一篇说一下如何读源码,从哪些源码着手,从 简单到深入的方式学习源码; 学习源码也是一个修炼过程&#xff0…

windows下 Tomcat启动黑框隐藏

进入到 tomcat/bin 目录下,找到此文件 setclasspath.bat ,右键文本打开 找到此属性 : set _RUNJAVA"%JRE_HOME%\bin\java.exe"修改成以下属性,保存文件,重启启动tomcat会发现黑框不默认弹出了: …

@德人合科技 | 数据透明加密防泄密系统\文件文档加密\设计图纸加密|源代码加密防泄密软件系统,——防止内部办公终端核心文件数据/资料外泄!

一款专业的数据防泄密管理系统,它采用了多种加密模式,包括透明加密、半透明加密和落地加密等,可以有效地保护企业的核心数据安全。 PC端访问地址: https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee …

C++设计模式——Adapter(适配器)模式

一、Adapter模式是个啥? 适配器模式在软件开发的江湖里,可以说用途是非常广的。下面几个经典的场景来说明适配器模式的使用。 场景一 场景二 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格式的股票数据, 然后…