1实习报告模板.docVIP

  • 3
  • 0
  • 约2.99千字
  • 约 7页
  • 2016-02-24 发布于江苏
  • 举报
1实习报告模板.doc

系统调用实习报告 姓名:文世为 学号:1100012968 日期:2014.5.12 目录 内容一:总体概述 3 内容二:任务完成情况 3 任务完成列表(Y/N) 3 具体Exercise的完成情况 3 内容三:遇到的困难以及解决方法 4 内容四:收获及感想 5 内容五:对课程的意见和建议 5 内容六:参考文献 5 内容一:总体概述 本次试验主要是了解nachos系统调用的实现机制,并实现相关的系统调用。 【用简洁的语言描述本次lab的主要内容;阐述本次lab中涉及到的重要的概念,技术,原理等,以及其他你认为的最重要的知识点。这一部分主要是看大家对lab的总体的理解。 要求:简洁,不需要面面俱到,把重要的知识点阐述清楚即可。】 内容二:任务完成情况 任务完成列表(Y/N) Exercise1 Exercise2 Exercise3 Exercise4 Exercise5 Exercise6 第一部分 Y/N Y/N Y/N 第二部分 Y/N Y/N Y/N 第三部分 Y/N 第四部分 Y/N Y/N Y/N Y/N Y/N Y/N 具体Exercise的完成情况 第一部分 Exercise1源代码阅读 阅读与系统调用相关的源代码,理解系统调用的实现原理。 code/userprog/syscall.h code/userprog/exception.cc code/test/start.s 下面我从系统调用的流程角度来叙述上述文件。 当用户程序调用系统调用接口时,Nachos会执行与此系统调用相对应的Stub.系统调用的Stub定义在start.s文件中.Stub主要完成三件事情. 将系统调用号写入2号寄存器 执行syscall指令 返回到31号寄存器存放的地址处,该地址为用户程序返回地址.这里说的系统调用号,是Nachos为系统调用接口指定的一个整形编号,该编号定义在syscall.h文件中,syscall.h文件中还定义了系统调用接口.默认情况下,Nachos定义了11个系统调用号,每个号对应一个系统调用.比如SC_Halt为0,对应着系统调用Halt. 当系统执行syscall指令时,在MIPS处理器的模拟器中会捕获该指令,对应的代码在mipssim.cc的OneInstruction()方法中exception.cc中的RaiseException函数中, interrupt-setStatus(SystemMode),此时系统进入核心态,接着执ExceptionHandler(witch),ExceptionHandler方法在exception内进行实现exceptoinHandler首先从2号寄存处中取出系统调用号,然后判断发生的异常是不是SyscallException和系统调用好是不是SC_Halt如果是,则调用interrupt-Halt()执行Halt()方法的具体代码.注意这儿有两个条件判断,一是判断不是系统调用异常,而是根据系统调用号执行系统调用的具体代码.此处只对Halt系统调用进行了处理,我们可以在这儿扩展其他系统调用的处理代码。 执行完ExceptionHandler后,会回到machine.cc的RaiseException代码,继续执行interrupt-setStatus(UserModel),重新回到用户态.RaiseException方法执行完后,回到Stub继续执行返回用户程序指令j $31。回到用户程序继续执行。 Exercise1 系统调用实现 类比Halt的实现,完成与文件系统相关的系统调用:Create, Open,Close,Write,Read。Syscall.h文件中有这些系统调用基本说明。 在ExceptionHandler中加入对这几个系统调用的判断和处理即可。 从寄存器读取参数时,如果寄存器存放的是地址,需要从该地址中读取字符串,则通过以下函数实现。 由于系统调用不让PC+4,我们需要自己实现PC+4: 令PC寄存器指向下一条指令的函数为machine-AdvancePC。在machine.cc中实现。 处理Create调用的代码为: 处理Open调用的代码为: 处理Close调用的代码为: 处理Write调用的代码为: 处理Read调用的代码为: Exercise2编写并运行用户程序,调用 练习2中所写的系统调用,测试其正确性。 首先编写create.c如下: #include “syscall.h” int main() { Create( “wsw.txt”, “/root”,1); Halt(); return 0; } 键入命令行 nachos -x create /root;

文档评论(0)

1亿VIP精品文档

相关文档