OS-Nachos内存管理

news/2024/10/22 15:37:35

实验目的

  1. 在Nachos现有页表的基础上,增加TLB快表机制,使得在做虚拟地址到物理地址的转换时,优先从TLB快表中读取;
  2. 针对TLB增加NRU置换算法;
    除实验源码和实验结果截图以外,需提供以下文字解释说明:
  3. 解释说明nachos -x userProgName 的启动过程及原生Nachos系统中的内存访问过程;
  4. 解释说明在Nachos中增加TLB机制,以及针对TLB实现的页面置换算法的设计思路。
    实验步骤
    Task1
  5. 在build.linux目录下Makefile文件中添加 DEFINES -DUSE_TLB;

    2.修改machine目录下的translate.cc文件,注释掉ASSERT函数;
  6. 在userprog/exception.cc中增加case PageFaultException
  7. 添加 SimpleTLBMissHandler函数,实现页表的查询和tlb的替换
  8. 进行测试,结果如下

    Task2
    1.增加userprog/exception.cc中的TLBMissHandler,缺页中断异常处理中调用该函数

    2.增加函数:

    3.新建了一个lab10.c文件,复制粘贴sort.c文件中的前半部分,把SIZE设置小一点,最后的Exit(0)修改为Halt(); 把userprog/exception.cc中最后一句 ASSERTNOTREACHED()注释掉,运行

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

vbox7安装winxp

用当前版本的virtualbox安装xp一直是个问题,装着装着就没响应了,进度条挂在那,看着动其实不动,参数也试着调了调,可反复试还是不成了,一度认为试兼容问题,好几次需用到xp系统时愣是卡在那,4-7的版本都试了试,不成,今日偶然间撞成了,设置需满足三个条件: 1.cpu只能选…

OS-Nachos实验环境的搭建

实验目的:按照实验教程在本地虚拟机搭建Nachos开发环境; 安装docker,下载镜像搭建基于docker的Nachos开发环境; 使用./nachos –u 学习nachos的用法,并对相关命令选项进行尝试; 使用nachos –x 选项加载test目录下编译为noff格式的用户程序运行,思考nachos执行结果错误的…

Nuxt.js 应用中的 modules:done 事件钩子详解

title: Nuxt.js 应用中的 modules:done 事件钩子详解 date: 2024/10/16 updated: 2024/10/16 author: cmdragon excerpt: modules:done 是 Nuxt.js 中一个重要的生命周期钩子,在 Nuxt 应用初始化期间触发。该钩子允许开发者在用户定义的模块安装完成后执行特定操作,如初始…

OS-Lab4-多线程编程基础

实验目的 事先编辑好数据文件1.dat和2.dat,它们的内容分别为1 2 3 4 5 6 7 8 9 10和 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10。根据示例代码和其运行效果设计一个程序,在这个程序中一共有3个线程,其中两个线程负责从文件读取数据到公共的缓冲区,另外一个线程从缓冲区读取数据作不同…

编程中实用的工具推荐

1.编程中变量命名 codelf 效果:使用英文或者中文在搜索框中输入

CAE和CAD的区别

CAE又被叫做“计算机辅助工程”,而CAD则是“计算机辅助设计”。虽然CAE和CAD是两种不同的技术,但它们却有着一定联系。在如今这个遍布科技与狠活的社会里,CAE和CAD技术在各个领域都发挥着其重要作用,下面我们一起来感受一下,CAE和CAD两种现代技术的独特魅力。首先,我们来…

补码、反码、浮点数

负数的补码是通过对正数的反码加1得到的,负数以补码形式存储如何计算负数的补码 假设我们要计算一个正整数的负数的补码。步骤如下: 例子:计算 -5 的补码 原码(正数的二进制表示) 正数5的原码为:0 0000101(8位表示法) 反码 对5的原码每一位取反(0变1,1变0),得到反码…

OS-Lab2-Linux进程控制相关命令和系统调用(含gcc编程)

实验目的 1) 概念:Linux的gcc编译器 2) 演示/实践:gcc编译器的初步和入门(编写一个带printf的while程序) 3) 演示/实践:Linux进程控制相关的命令(如ps/pstree/top/kill/等)演示/实践:Linux进程控制相关的系统调用(如fork()/getpid()等) 4) 概念:Linux的gdb调试器…