- 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;
您可能关注的文档
- 14秋素质与思想政治教育作业二.doc
- 15-2工农业(题目).ppt
- 15-互斥方案的评价.ppt
- 150508胚胎工程专题训练.doc
- 16层CT对比资料表.doc
- 16情境2.6屋面防水保温隔热.ppt
- 17.宏观第十七章 思考题答案详解.doc
- 17第十七章 生产与服务循环审计.ppt
- 17课项目二加强法制建设健全法律监督上课.ppt
- 18022《中间件技术(软件.实践)》C卷参考答案.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 2024浙江嘉兴市众业供电服务有限公司招聘笔试备考试题及答案解析.docx VIP
- Razer雷蛇灵刃15标准版-GTX1660 Ti(RZ09-03009)中文手册.pdf
- ISO90012015标准.ppt VIP
- 2025届湖南新高考教学教研联盟高三第二次联考数学试卷及参考答案.pdf VIP
- 辐射防护手册 第1分册 辐射源与屏蔽_李德平,潘自强主编_北京:原子能出版社_1987.08_10263208_P480.pdf
- 机器人行走机构及控制系统设计和实现计算机专业.pdf VIP
- 建筑装饰装修-分部工程质量验收记录表.doc VIP
- 2024年黑龙江省大庆市中考数学试题(原卷版).pdf
- 2025嘉兴市众业供电服务有限公司招聘74人笔试备考试题及答案解析.docx VIP
- (高清版)DB34∕T 4706-2024 手术智慧医疗系统建设规范.docx VIP
原创力文档

文档评论(0)