minix3 project2 文档

minix3 project2 文档

ID:21697097

大小:77.00 KB

页数:10页

时间:2018-10-23

minix3 project2 文档_第1页
minix3 project2 文档_第2页
minix3 project2 文档_第3页
minix3 project2 文档_第4页
minix3 project2 文档_第5页
资源描述:

《minix3 project2 文档》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Minix3project2开发文档F07030315070309764姜骥川目录1ProjectRequirement21.1增加系统调用chrt21.2实现EDF(Earliest-Deadline-First)实时调度算法21.3请自行编写带有以下功能的测试程序22实现思路22.1整体思路:22.2具体实现:32.2.1系统调用chrt()的实现32.2.2修改Minix进程调度算法72.3测试程序的设计71ProjectRequirement1.1增加系统调用chrtl函数格式s=chrt(longdeadline)l函数功能设置进程为实时进程并在deadline秒后结束

2、。如果deadline为0,则将进程设置为非实时进程。设置成功返回0,否则返回1.1.2实现EDF(Earliest-Deadline-First)实时调度算法lEDFdeadline越近的进程越先执行l实时调度设置进程的优先级,保证进程的优先级高于其他用户进程,以保证它的实时性。但要考虑不会影响系统进程的执行。1.3请自行编写带有以下功能的测试程序ldeadline到达时进程结束ldeadline设为0时,进程转变为非实时进程l若有多个实时进程,deadline早的先执行2实现思路2.1整体思路:首先仿照其他的系统调用(如fork),增加一个名为chrt的系统调用。这个系统调用

3、的作用是为调用chrt的进程设置一个闹钟。设置闹钟的方法是利用内核中的时钟任务所提供的set_timer定时功能。同时,这个系统调用还要为该进程的proc结构里新添加的项:p_deadline赋值。下一步是修改Minix的调度算法。将调用chrt的进程的优先级设为7,表示它是实时进程。在每次进程调度pick_proc时,如果遍历的是优先级为7的进程队列,则挑出其中deadline最近的那个进程。2.2具体实现:2.2.1系统调用chrt()的实现第一层:添加用户库函数1、在/usr/src/lib/posix/下添加文件_chrt.c#include#definec

4、hrt_chrt#includePUBLICintchrt(longdeadline){messagem;m.m2_l1=deadline;alarm((unsignedint)deadline);return(_syscall(MM,CHRT,&m));}2、修改/usr/src/lib/posix/下的Makefile.in3、修改/usr/src/lib/syscall/下的Makefle.in4、在/usr/src/include/unistd.h中添加chrt()的声明_PROTOTYPE(intchrt,(longdeadline));5、在/us

5、r/src/include/minix/callnr.h中添加系统调用号#defineCHRT70/*toPM*/第二层:添加pm的系统调用1、在/usr/src/servers/pm/table.C中添加系统调用号do_chrt,/*70=chrt*/2、在/usr/src/servers/pm/proto.h中声明系统调用do_chrt()函数_PROTOTYPE(intdo_chrt,(void));3、在/usr/src/servers/pm/misc.c中实现系统调用do_chrt()函数PUBLICintdo_chrt(){sys_chrt(who_p,m_in.m2

6、_l1);returnOK;}第三层:实现内核库函数1、在/usr/src/include/minix/com.h中添加内核调用号#defineSYS_CHRT(KERNEL_CALL+50)/*sys_shrt()*/#defineNR_SYS_CALLS51/*numberofsystemcalls*/2、在/usr/src/include/minix/syslib.h中声明内核调用库函数_PROTOTYPE(intsys_chrt,(endpoint_tproc_ep,longdeadline));3、在/usr/src/lib/syslib/下添加sys_chrt.c#i

7、nclude"syslib.h"PUBLICintsys_chrt(proc_ep,deadline)endpoint_tproc_ep;longdeadline;{messagem;m.m2_i1=proc_ep;m.m2_l1=deadline;return(_taskcall(SYSTASK,SYS_CHRT,&m));}4、在/usr/src/lib/syslib/下修改Makefile.in第四层:添加内核调用1、在/usr/src/kernel/system.C中添加

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。