操作系统课程设计报告书.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
广东海洋大学学生实验报告书(学生用表) 实验名称 时钟的显示设计和实现 课程名称 操作系统 课程号 S1620034-0 学院(系) 信息学院 专业 计算机科学与技术 班级 1072 学生姓名 王旭浩 杨苏潮 叶韶文 学号 200711621230 200711621233 200711621234 实验地点 科技楼423 实验日期 一、实验目的(Experimental goal) 掌握调用的实现原理。 Development environment) 硬件(Hardware):(CPU) AMD Athlon(tm)64X2 5600+ 2.9GHz 内存(Memory):896MB 操作系统 (Operating system):Microsoft Windows XP 软件(software):minix3.1 三、实验内容(Experimental content) 进程管理的系统调用的使用。 、掌握的实现原理。 、、实验完成后总结实验心得。/usr/src/kernel/glo.h 文件.定义EXTERN time_t boottime,time_t是指boottime的计时单位是秒.如图 2.常量定义,vi /usr/src/include/minix/com.h文件,定义 #define T_BOOTTIME m4_l1 消息常量 #define SYS_SETBOOTTIME (KERNEL_CALL + 28) 核心调用的编号 #define SYS_GETBOOTTIME (KERNEL_CALL + 29) 将NR_SYS_CALLS改为30,因为系统只有28个,现在加了2个,所以变为30 如图 3. 在文件/usr/src/kernel/system/do_times.c中添加do_setboottime函数和do_getboottime函数 处理系统sys_setboottime()函数的调用,在消息中取得T_BOOTTIME的值付给boottime 处理系统sys_getboottime()函数调用,取得消息变量T_BOOTTIME的值给boottime. 4.添加消息映射,作用是,把所接到的消息转换成函数映射.在/usr/src/kernel 目录下打开system.c在initialize函数中添加消息映射 MAP(SYS_SETBOOTTIME, do_setboottime) MAP(SYS_GETBOOTTIME, do_getboottime) 当收到SYS_SETBOOTTIME消息的时候调用do_setboottime函数 当收到SYS_GETBOOTTIME消息的时候调用do_getboottime函数 如图 5,.在当前目录下在system.h文件的条件编译中,将两个核心调用映射到do_unused 如图 当USE_TIMES定义为0的话指系统不需要执行时间管理,反之为 1的话执行. 所以如果不行USE_TIMES,就把do_setboottime和do_getboottime映射成空函数do_unused. 6. 在当前目录下把table.c中将SYS_GETBOOTTIME调用权赋值给DRV_C,使得TTY具备调用sys_getboottime的权限. 如图: 其中SYS_GETBOOTTIME的调用权限在PM_C中,但由于语句上说除了后面那些调用权限不可外都可以,所以不必加入它的调用权限,而SYS_SETBOOTTIME的权限在DRV_C中,其语句是所能执行后面的权限,固要加入. 7.vi /usr/src/kernel/clock.c的时钟中断处理函数clock_handler,使其每隔1秒向终端驱动程序发送消息 1、static int c;定义静态整数c用来对中断次数的计数 2、每次时钟中断时更新c的值; 3、当c=HZ时,将c清零,并向终端驱动程序发送消息。其中HZ的值为60,所以中断60次就是1秒. 如图: 终端驱动设置TTY包括了光标设置等操作 8. 在函数库中为新增加的两个核心调用添加接口函数 1、/usr/src/lib/syslib/sys_setboottime.c: sys_setboottime(),供PM程序使用;更新Makefile文件,自动编译sys_setboottime函数。 准备个消息类型m,从消息中获取bottime,返回taskecall,返回SYS_SETBOOTTIME和消息缓冲区的地址m. 2、同理在r/src/include/minix/syslib.h:_PROTOTYPE(int sys_setboottime, (time_t boottime)); 准备个消息类型m和常量s ,从消

文档评论(0)

文档分享 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档