nachos系统调用实现Write、Read、Exec、Join

本文介绍了如何在Nachos操作系统中实现Write、Read、Exec、Join四个系统调用。通过分析syscall.h、Start.s、Mipssim.cc、exception.cc等文件,详细讲解了系统调用的执行流程和寄存器的使用。在exception.cc中补充了相应系统调用的处理方法,并展示了如何测试和完善这些系统调用的代码。最后,通过shell.c的测试,验证了系统调用功能的正确性。
摘要由CSDN通过智能技术生成

 

  •  了解nachos系统调用的原理:

1.  要实现nachos的系统调用,首先查看syscall.h当中声明的系统调用函数

可以发现Nachos已经为我们在syscall.h中声明好了这些系统调用函数。

2.  观察Start.s中的汇编代码,定义了系统调用函数的实现

我们可以观察到Halt函数的实现是将系统调用类型(type)SC_Halt放入了2号寄存器中,然后执行syscall。

3.  在Mipssim.cc中可以找到syscall的执行方式

可以看到这里调用了RaiseException异常处理函数

4.  Jump到这个异常处理函数,可以发现将SyscallException传入了ExceptionHandler函数中。

5.  exception.cc中ExceptionHandler函数

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值