山东大学操作系统课设lab6
实验六 系统调用(lab6)
实验目的
扩展现有的class AddrSpace的实现,使得Nachos可以实现多用户程序。
按照实验指导书中的方法,完成class AddrSpace中的print函数。
实现Nachos 系统调用:Exec()。
实验环境
虚拟机下Ubuntu Linux 16.04 LTS系统,nachos-3.4内核管理模块和MIPS CPU软件模拟模块,代码在lab6文件夹下面实现。
实验思路
有参考这个网页:https://blog.csdn.net/mottled233/article/details/78633571
先看machine文件夹,里面有一个mipssim.cc,mipssim是模拟器的意思,可以模拟一个完整系统的窗口:代码窗口、寄存器窗口、流水线窗口、时钟周期图窗口、内存窗口、统计窗口和断点窗口,我认为是模拟用户程序的完整过程。有一个Run()方法,应该是在运行整个系统,for循环里每条指令都作为参数依次传入OneInstruction()中。
然后看看OneInstruction(),感觉主体是一堆的case。当执行不同的指令时,寄存器的数组里存放不同的数。