教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 2005-2006学年第二学期《操作系统课程设计》任务书

2005-2006学年第二学期《操作系统课程设计》任务书

上传者:网友
|
翻新时间:2013-12-18

2005-2006学年第二学期《操作系统课程设计》任务书

一、课程设计的目的

在从事本课程设计之前,学生们已经通过一个学期的系统学习,掌握了操作系统的原理,对操作系统的各个组成部分的工作原理有了一定的认识。然而由于操作系统的复杂性,使得学生对操作系统个部分的理解可能是分散的和不深入的。设置本课程设计的目的,就是让学生通过课程设计,对操作系统有进一步深入的理解,对系统工作原理有一个整体认识。

二、学生完成的任务之一

修改MINIX系统,使得系统启动时显示出你自己的班级、姓名、学号。信息格式如下:

Welcome to MyMinix! Class-?, Name-????????, Num-??

三、学生完成的任务之二

修改MINIX系统,使得MINIX为程序员提供一个新的系统功能调用getpids。Getpids的功能描述如下:

int getpids(pid_t *child, pid_t *parent);

getpids返回调用者进程和它的父进程的PID,分别放在child和parent所指向的地址中。

四、任务二的提示

(1)

修改目录/usr/include/minix/callnr.h文件,加入新系统调用编号:

#define GETPIDS 78

增加系统调用数目

#define NCALLS 79

(2)

增加_getpid2.c文件到/usr/src/lib/other子目录之下,内容为:

/* _getpid2.c */

#include <lib.h>

#define getpid2 _getpid2

#include <unistd.h>

PUBLIC pid_t getpid2(pid_t *child, pid_t *parent)

{

message m;

_syscall(MM, GETPIDS, &m);

*child = m.m_type;

*parent = m.m2_i1;

}

在同一个子目录之下,修改文件Makefile,其内容为:

OBJECTS =

$(LIBRARY)(_getpid2.o)

$(LIBRARY)(_brk.o)

$(LIBRARY)(_reboot.o)

$(LIBRARY): $(OBJECTS)

aal cr $@ *.o

rm *.o

$(LIBRARY)(_getpid2.o): _getpid2.c$(LIBRARY)(_brk.o): _brk.c

$(CC

1) _brk.c

在同样的目录下,发出make命令:

make

将新的函数_getpid2加入到函数库之中。

(3)

添加新文件getpids.s到目录/usr/src/lib/syscall之中:

.sect .text

.extern __getpid2 ! 注意,是2个下划线

.define _getpids

.align 2

_getpids:

jmp __getpid2

在同一个子目录之下,修改文件Makefile:

OBJECTS =

$(LIBRARY)(_getpids.o)

$(LIBRARY)(_exit.o)

$(LIBRARY): $(OBJECTS)

aal cr $@ *.o

rm *.o

$(LIBRARY)(_getpids.o): _getpids.s

$(CC

1) _getpids.s

$(LIBRARY)(_exit.o): _exit.s

$(CC

1) _exit.s

在同样的目录下,发出make命令:

make

将新的函数getpids加入到函数库之中。

(4)修改minix中内存管理部分,以提供系统调用

修改/usr/src/mm/table.c,在数组call_vec[ ]的最后一行之后加入语句:

do_svrctl, /* 77 = svrctl */

do_getset, /* 78 = getpids */

修改/usr/src/mm/getset.c,在语句 CASE GET_PID:之上加入代码

case GETPIDS: /* fall through */

case GETPID:

r = mproc[who].mp_pid;

rmp->reply_res2 = mproc[rmp->mp_parent].mp_pid;

break;

(5)测试系统调用是否可用

在/usr/include/中加入getpids.h

#ifndef _GETPIDS_H

#define _GETPIDS_H

#ifndef _ANSI_H

#include <ansi.h>

#endif

_PROTOTYPE (int getpids, (pid_t * child, pid_t *parent));

#endif /* _GET_PIDS_H */

编写一个用户级程序test.c来测试

#include <stdio.h>

#include <unistd.h>

#include <getpids.h>

int main(void){

int pid, ppid;

getpids(&pid, &ppid);

printf(“child = %d, parent = %dn”, child, parent);

}

cc test.c

./a.out

五、学生完成的任务之三

修改MINIX系统,使得MINIX为程序员提供系统功能调用get_cursor和set_cursor,分别返回和设置屏幕光标位置,其参数由学生自己定义。编写一个应程序,利用这两个系统调用,在屏幕固定位置每隔1秒钟显示系统当前时间。

六、要求提交的材料

课程设计报告。写出每一天的工作日记,主要步骤所涉及到的工作原理分析,程序代码分析。A4纸,5页。第18周星期一由班长收齐统一上交。

七、时间与地点

第16周作准备,查阅资料等

第17周编写程序

上机地点:微机2室 + 宿舍

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

要学会善待别人
青春的心绪
合作
一个和我合作愉快的人
青春随想
合作
做一个善于合作的人
做一个善于合作的人
微笑面对失败
青春大观园
把握青春
学会善待他人
青春的心
用微笑面对失败
微笑着面对挫折(演讲稿)
权力概念分析
民主仅仅是一种立法和决策程序
公路工程施工中环保工作探讨
城市轨道交通建设的社会经济效益分析
直线电机交通模式及技术经济特性
上海城市地铁与航空港的换乘研究
行为主义政治学的“新革命”及其启示
软土盾构隧道纵向设计综述
关于城市轨道交通客流预测的一些思考
厦门城市轨道交通1号线线路走向与既有铁路利用方案研究
城市轨道交通高架线的环境噪音探讨
论社会治理模式中的德治及其制度安排
城市轨道交通中小半径曲线问题探讨
城市轨道交通线路的敷设形式
毛泽东、邓小平治国方略比较研究
《和我们一样享受春天》考点练兵 阅读篇
《和我们一样享受春天》教学设计二
《和我们一样享受春天》作家作品及写作背景
《和我们一样享受春天》老师语录
《触摸春天》老师语录
《和我们一样享受春天》考点练兵 积累篇
《触摸春天》重难点分析
《触摸春天》重点字词梳理
《和我们一样享受春天》训练素材
《和我们一样享受春天》重点字词梳理
《和我们一样享受春天》范文习作
《和我们一样享受春天》重点字词意思
《和我们一样享受春天》重难点分析
《和我们一样享受春天》写作指导
《和我们一样享受春天》整体阅读感知