课堂练习4.4:页式虚存

这篇具有很好参考价值的文章主要介绍了课堂练习4.4:页式虚存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

本关任务:

分析版本 0 内核的第一次缺页页故障,回答下列问题:

1.该页故障由几号进程引发?

2.在该故障发生前,该进程执行的最后一个可执行文件是什么?该可执行文件的第 2 块(每块 1KB )的头 16 字节的内容是什么?

3.引发该页故障的线性地址是什么?该进程的代码段起始地址是多少?

4.该页故障处理前,该线性地址对应的页目录项的地址和值分别是什么?

5.该页故障处理时,申请到的空闲页帧的起始地址是什么?该页帧的头 16 字节的内容是什么?

6.该页故障处理过程中、读入硬盘数据后,上述页帧的头 16 字节的内容是什么?

7.该页故障处理过程中、修改对应的页表项后,上述线性地址对应的页表项的值是什么?

启动gdb调试在do_execve函数设置断点,并跳到断点处

课堂练习4.4:页式虚存

可以看到是页故障是2号进程引发,最后一个执行文件是/bin/sh

在bochsdbg模式下,使用hexdump /bin/sh | less命令,查看/bin/sh文件的第二块的头16字节的内容

课堂练习4.4:页式虚存

启动gdb,将断点打到do_no_page函数并跟踪

课堂练习4.4:页式虚存

查看引发该页故障的线性地址和该进程的代码段起始地址文章来源地址https://www.toymoban.com/news/detail-463324.html

到了这里,关于课堂练习4.4:页式虚存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 雨课堂 文件和磁盘练习(1)

    若某文件系统索引结点( inode)中有直接地址项和间接地址项,与单个文件长度有关的因素是:间接地址索引的级数、地址项的个数、文件块大,与单个文件长度无关的因素是:索引结点的总数 相关解释:如果系统中有1000个 索引结点,说明有1000个物理文件而已,跟单个文件长度

    2024年02月10日
    浏览(20)
  • Android低版本(4.4)okhttp 网络适配

    目录 访问网络时,出现错误: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xb7eabc88: Failure in SSL library, usually a protocol error    error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version (external/openssl/ssl/s23_clnt.c:741 0xa4fb8d5c:0x00000000) SSLSocket的setEnabledProtocols配置支持TLSv1.1,

    2024年01月17日
    浏览(30)
  • 国网技术学院MySQL课堂练习

    在虚拟机中安装WINDOWS7操作系统 正常安装,查询安装教程即可 安装必备组件和MYSQL5.7数据库 正常安装,查询安装教程即可 修改my.ini配置文件中关于character_set的相关设置 直接补下面的代码即可,作用为设置默认的内部操作字符集 通过操作系统服务界面停止和启动服务,通过

    2024年02月13日
    浏览(26)
  • 课堂练习6.2:对字符设备的访问

    先了解一下访问字符设备(这里指读键盘)的一般过程   sys_read调用tty_read函数,如果tty_table[0].secondary为空就一直睡眠。keyboard_interrupt函数执行时,先将数据从键盘拷贝到tty_table[0].read_q中,然后调用do_tty_interrupt函数将tty_table[0].read_q中的未读数据拷贝到tty_table[0].secondary,一旦

    2024年02月08日
    浏览(22)
  • 头歌课堂练习5:进程的同步与互斥

    *tidp 是 pthread_t 类型,也就是指向线程标识符的指针 通俗来讲,要开一个新线程, 那么就得新定义一个 pthread_t 类型的指针。 *arrt 是 pthread_arrt_t 类型 说的是用来设置线程属性,我还没怎么接触这个 一般用NULL *strat_rtn 是这里 (void*)(*hh)(void*) 类型 是线程运行函数的起始地址

    2024年02月04日
    浏览(124)
  • OS实验2-5 课堂练习2.3:系统调用

    本关任务: 解题过程: 1.跟踪到系统调用发生 系统调用的总控函数是 system_call ,只要在这里设断点,即可捕获系统调用的发生 2.查找系统调用的编号与名字 系统调用发生时系统调用号存放在寄存器 eax 中,编号与名字对应关系可在文件unistd.h中查到 在地址 0x7780 这里会调用

    2024年02月08日
    浏览(20)
  • 头歌操作系统 课堂练习3.2:进程的创建

    本实训需要设置内核版本 1 为调试分析的对象,用 gdb 调试内核,内核版本 1 的压缩文件存放在 /data/workspace/myshixun/exp1 中。 环境配置详情请移步前几关~头歌操作系统 课后作业3.1:进程的描述与状态 编程要求 根据相关知识,回答问题: (将答案填写在 /data/workspace/myshixun/第

    2024年02月04日
    浏览(41)
  • 头歌操作系统2023春季课堂练习1:环境体验

    任务描述 欢迎进行 Linux 世界,当你下载、安装了某个 Linux 发行版,体验了 Linux 桌面并安装了一些你喜爱和需要的软件之后,应该去了解下 Linux 真正的魅力所在:命令行。 每一个 Linux 命令其实就是一个程序,借助这些命令,我们可以办到非常多的事情。 第一个任务就是了

    2024年02月08日
    浏览(37)
  • 头歌操作系统-课堂练习3.2:进程的创建

    第1关:进程创建前后TR寄存器值的分析 编程要求 根据相关知识,回答问题: (将答案填写在 /data/workspace/myshixun/第一关.txt 中) 0 号进程的 fork 系统调用(main.c:147)中的陷入指令的地址是多少? 0 号进程执行 fork 系统调用之前,TR 寄存器的值为多少? 0 号进程刚执行完 for

    2023年04月26日
    浏览(34)
  • 编程杂谈|十余年后再做课堂练习题

    近日偶然在一论坛网站上看到一道问答题目 “使用三种不同的实现,完成 1+2+..+100 的编程”。 让人回忆起,好似这是初学编程时课堂留下的练习题目。算算如今离开课堂已是十余年了,一时兴趣不妨再来做一做这道题。 没记错的话,这道题在学习完基础循环语法后所布置的

    2024年01月23日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包