操作系统实验报告一
–U3、在epos/app/main.c中调用该系统调用,并打印出结果
•要测试loc分别为NULL和非NULL两种情况
4.实验报告:
long time1,time2;
time1 = time(NULL);
time(&time2);
printf("\ntime(NULL):%d\n",time1);
printf("\ntime2:%d\n",time2);
–cd epos/app
–make run
•清除所有的临时文件
–clean
•调试
–make debug
•在“Bochs Enhanced Debugger”中,输入“quit”退出调试
–调试指令,请看附录A
2.实验内容:
•编写系统调用“time_t time(time_t *loc)”
–功能描述
•变量g_startup_time,它记录了EPOS启动时,距离格林尼治时间1970年1月1日午夜的秒数
•变量g_timer_ticks
–g_timer_ticks记录了EPOS启动以来定时器中断的总次数
•宏定义HZ
–HZ是定时器每秒钟中断的次数,即定时器中断的频率
–K2、在kernel.h的后面,加入声明
重庆大学
学生实验报告
实验课程名称操作系统原理
开课实验室DS1501
学院软件学院年级2013专业班软件工程2班
学生姓名胡其友学号20131802
开课时间2015至2016学年第一学期
总成绩
教师签名
洪明坚
软件学院制
《操作系统原理》实验报告
开课实验室:年月日
学院
软件学院
年级、专业、班
2013级软件工程2班
•返回从格林尼治时间1970年1月1日午夜起所经过的秒数。如果指针loc非NULL,则返回值也被填到loc所指向的内存位置
–数据类型time_t其实就是long
•typedef long time_t;
3.实验步骤:
•Kernel space
–K1、在machdep.c中,编写系统调用的实现函数“time_t sys_time()”,计算用户需要的秒数。需要用到
姓名
胡其友
成绩
课程
名称
操作系统原理
实验项目
名称
指导教师
洪明坚
教师评语
教师签名:洪明坚
年月日
1.实验目的:
•进入实验环境
–双击expenv/setvars.bat
•检出(checkout)EPOS的源代码
–svn checkout /svn/epos
•编译及运行
•调用系统调用的实现函数sys_time
–ctx->eax=sys_time();
–if(loc != NULL)
»*loc = ctx->eax;
•User space
–U1、在epos/app/syscall-wrapper.S末尾,加入汇编语言接口“WRAPPER(time)”
–U2、在epos/app/syscall.h中,加入C语言接口 “time_t time(time_t *loc);”
time_t sys_time(
•Kernel space
–K3、在syscall-nr.h中,定义系统调用的号码
•#define SYSCALL_time 2014
–K4、在machdep.c的函数syscall中,增加“case SYSCALL_time”分支
•读取参数的值
–time_t*loc = *(time_t **)(ctx->esp+4);