操作系统课设--系统调用

这篇博客详细介绍了如何在Nachos操作系统中扩展AddrSpace实现多用户程序,并实现系统调用Exec()。实验涉及Ubuntu虚拟机,MIPS模拟器和lab6目录下的代码。博主分析了mipssim.cc、OneInstruction()函数以及exception.cc中的系统调用处理,并指出需要在exception.cc中添加Exec()和exit()的case。调试过程中遇到的重复定义问题通过删除多余的#include解决,但最终输出显示物理页分配存在问题。

实验六 系统调用(lab6)

实验目的

扩展现有的class AddrSpace的实现,使得Nachos可以实现多用户程序。
按照实验指导书中的方法,完成class AddrSpace中的print函数。
实现Nachos 系统调用:Exec()。

实验环境

虚拟机下Ubuntu Linux 16.04 LTS系统,nachos-3.4内核管理模块和MIPS CPU软件模拟模块,代码在lab6文件夹下面实现。

实验思路

有参考这个网页:https://blog.youkuaiyun.com/mottled233/article/details/78633571
先看machine文件夹,里面有一个mipssim.cc,mipssim是模拟器的意思,可以模拟一个完整系统的窗口:代码窗口、寄存器窗口、流水线窗口、时钟周期图窗口、内存窗口、统计窗口和断点窗口,我认为是模拟用户程序的完整过程。有一个Run()方法,应该是在运行整个系统,for循环里每条指令都作为参数依次传入OneInstruction()中。
在这里插入图片描述
然后看看OneInstruction(),感觉主体是一堆的case。当执行不同的指令时,寄存器的数组里存放不同的数。
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值