Nachos系统调用实习报告.docVIP

  • 317
  • 0
  • 约 20页
  • 2017-08-18 发布于浙江
  • 举报
系统调用实习报告 目录 一:总体概述 3 二:任务完成情况 3 任务完成列表(Y/N) 3 具体Exercise的完成情况 3 三:遇到的困难以及解决方法 18 四:收获及感想 19 五:对课程的意见和建议 19 六:参考文献 19 一:总体概述 自lab4我们完成了虚拟内存的实习,可以运行用户程序之后,我们就考虑加入系统调用。即,用户程序可以通过特定的系统调用,陷入Nachos内核从而完成特定的目标本次需要在阅读和理解源码的基础上知道系统调用的执行流程进一步修增源代码实现新增的系统调用功能 二:任务完成情况 任务完成列表(Y/N) Exercise1 Exercise2 Exercise3 Exercise4 Exercise5 Yes Yes Yes Yes Yes 具体Exercise的完成情况 Exercise 1:源代码阅读任务 Syscall.h 概述: 定义了每个系统调用对应的系统调用号 声明了每个系统调用 Exception.cc 概述 从 执行对应的操作代码需要自己完成 (如果需要将返回值写回Machine的 Start.s 概述为例 总结 在用户程序中调用 当这条语句被neInstruction函数解析执行 在start.s中找到系统调用对应的入口将系统调用号放入ception.cc 在 必要时将返回值写回 指令回到用户程序系统调用的下一条继续执行系统调用完成 为了执行一条系统调用我们需要完成的部分 自己写一个用于测试的用户程序的c文件并修改file,使得用户程序能够被系统执行 因为本次.h中系统调用号和函数声明也都写好了 补充ercise 2: 系统调用实现 任务 Exercise 3: 编写用户程序 任务EX2+EX3完成情况: 首先在完成了文件系统的file,多 其次我们需要在 void Create(char *name) 概述 从4号寄存器读入文件名指针 利用指针从Machine的 用文件名为参数 将PC前移:(machine.cc中定义) 代码 测试截图 之后在 OpenFileId Open(char *name) 概述 从4号寄存器读入文件名指针 利用指针从Machine的 用文件名为参数File指针在系统中File相当于是文件描述符 将OpenFile指针写回-WriteRegister(2,(int)openfile)) PC前移 代码file写回部分 测试截图pen成功会配合的系统调用再进行测试截图) void Close(OpenFileId id) 概述 从4号寄存器中读出OpenFile的指针调用lose方法将 PC前移 代码指针关闭 测试截图配合 int Read(char *buffer, int size, OpenFileId id) 概述 从 从 从penFile的指针 调用penfile的 将读出来的内容写回achine的 将openfile的 代码 测试截图 (见write部分,二者配合测试。) void Write(char *buffer, int size, OpenFileId id) 概述 从 从 从penFile的指针 将读出来的内容enFile的write方法写入文件当中 代码 测试截图 单独测试 配合 Exercise 4: 系统调用实现 Exercise 5: 编写用户程序 任务 EX4+EX5完成情况 首先为了能够使得 SpaceId Exec(char *name)) 概述: 从 新创建一个线程在当前线程的 如果没有空位,输出错误信息,将PC前移。 Fork执行的代码参照gtest中startprocess函数先是打开这个用户程序文件然后新创建一个地址空间初始化 代码 Fork之后调用的函数 处理系统调用的代码 测试截图 (和之后的 int Join(SpaceId id) 概述 从4号寄存器中读出要等待的子线程的OpenFile指针 找到自己的 While循环当 跳出while循环后,将子线程的结束状态写入2号寄存器,PC前移 代码 测试截图 (配合一起测 void Exit(int status) 概述 由于lab4虚拟内存中需要在 判断如果当前并且调用如果是主线程PC前移测试截图 (配合之前的ec和 测试函数 测试截图 void Fork(void (*func)()) 概述 从新创建一个线程并参照 PC前移。 在tPC值修改为4;将修改完成的这套寄存器值存放到新线程的寄存器当中其中除了两个 Machine-Run(),就可以跳转到用户函数执行了注意 开始时刻子进程和父进程的寄存器值 子进程和父进程使用同样的 子进程和父进程共享栈空间因此子进程不必重设栈空间 代码

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档