久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

-學(xué)年第二學(xué)期《操作系統(tǒng)課程設(shè)計(jì)》任務(wù)書

時(shí)間:2024-07-22 09:39:33 自動(dòng)化畢業(yè)論文 我要投稿
  • 相關(guān)推薦

2005-2006學(xué)年第二學(xué)期《操作系統(tǒng)課程設(shè)計(jì)》任務(wù)書

 

一、課程設(shè)計(jì)的目的
 在從事本課程設(shè)計(jì)之前,學(xué)生們已經(jīng)通過一個(gè)學(xué)期的系統(tǒng)學(xué)習(xí),掌握了操作系統(tǒng)的原理,對操作系統(tǒng)的各個(gè)組成部分的工作原理有了一定的認(rèn)識。然而由于操作系統(tǒng)的復(fù)雜性,使得學(xué)生對操作系統(tǒng)個(gè)部分的理解可能是分散的和不深入的。設(shè)置本課程設(shè)計(jì)的目的,就是讓學(xué)生通過課程設(shè)計(jì),對操作系統(tǒng)有進(jìn)一步深入的理解,對系統(tǒng)工作原理有一個(gè)整體認(rèn)識。
二、學(xué)生完成的任務(wù)之一
 修改MINIX系統(tǒng),使得系統(tǒng)啟動(dòng)時(shí)顯示出你自己的班級、姓名、學(xué)號。信息格式如下:
 Welcome to MyMinix! Class-?, Name-????????, Num-??
例如:Welcome to MyMinix! Class-2, Name-LiHua, Num-16,即2班,李華,16號。要求保留原來的內(nèi)核映像文件,以便系統(tǒng)出錯(cuò)時(shí),可以從一個(gè)能夠正確工作的版本中啟動(dòng)系統(tǒng)。
三、學(xué)生完成的任務(wù)之二
 修改MINIX系統(tǒng),使得MINIX為程序員提供一個(gè)新的系統(tǒng)功能調(diào)用getpids。Getpids的功能描述如下:
 int getpids(pid_t *child, pid_t *parent);
getpids返回調(diào)用者進(jìn)程和它的父進(jìn)程的PID,分別放在child和parent所指向的地址中。
四、任務(wù)二的提示
 (1)
修改目錄/usr/include/minix/callnr.h文件,加入新系統(tǒng)調(diào)用編號:
 #define GETPIDS 78
增加系統(tǒng)調(diào)用數(shù)目
#define NCALLS 79
 (2)
增加_getpid2.c文件到/usr/src/lib/other子目錄之下,內(nèi)容為:
/* _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;
  }
在同一個(gè)子目錄之下,修改文件Makefile,其內(nèi)容為:
OBJECTS = \
 $(LIBRARY)(_getpid2.o) \
 $(LIBRARY)(_brk.o) \
 $(LIBRARY)(_reboot.o) \
   …
 $(LIBRARY): $(OBJECTS)
  aal cr $@ *.o
  rm *.o
$(LIBRARY)(_getpid2.o): _getpid2.c
 $(CC1) _getpid2.c
$(LIBRARY)(_brk.o): _brk.c
$(CC1) _brk.c
  …
在同樣的目錄下,發(fā)出make命令:
make
  將新的函數(shù)_getpid2加入到函數(shù)庫之中。
 (3)
添加新文件getpids.s到目錄/usr/src/lib/syscall之中:
.sect .text
.extern __getpid2                   ! 注意,是2個(gè)下劃線
.define _getpids
.align 2
_getpids:
 jmp __getpid2
在同一個(gè)子目錄之下,修改文件Makefile:
 OBJECTS = \
 $(LIBRARY)(_getpids.o) \
 $(LIBRARY)(_exit.o) \
   …
 $(LIBRARY): $(OBJECTS)
  aal cr $@  *.o
  rm *.o
 $(LIBRARY)(_getpids.o): _getpids.s
  $(CC1) _getpids.s
 $(LIBRARY)(_exit.o): _exit.s
 $(CC1) _exit.s
   …
在同樣的目錄下,發(fā)出make命令:
make
  將新的函數(shù)getpids加入到函數(shù)庫之中。
 (4)修改minix中內(nèi)存管理部分,以提供系統(tǒng)調(diào)用
修改/usr/src/mm/table.c,在數(shù)組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)測試系統(tǒng)調(diào)用是否可用
在/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 */
編寫一個(gè)用戶級程序test.c來測試
#include <stdio.h>
#include <unistd.h>
#include <getpids.h>
int main(void){
 int pid, ppid;
 getpids(&pid, &ppid);
 printf(“child = %d, parent = %d\n”, child, parent);
}

cc test.c
./a.out
五、學(xué)生完成的任務(wù)之三
 修改MINIX系統(tǒng),使得MINIX為程序員提供系統(tǒng)功能調(diào)用get_cursor和set_cursor,分別返回和設(shè)置屏幕光標(biāo)位置,其參數(shù)由學(xué)生自己定義。編寫一個(gè)應(yīng)程序,利用這兩個(gè)系統(tǒng)調(diào)用,在屏幕固定位置每隔1秒鐘顯示系統(tǒng)當(dāng)前時(shí)間。

六、要求提交的材料
課程設(shè)計(jì)報(bào)告。寫出每一天的工作日記,主要步驟所涉及到的工作原理分析,程序代碼分析。A4紙,5頁。第18周星期一由班長收齊統(tǒng)一上交。
每名同學(xué)將改造之后的MINX,壓縮為rar文檔,文件名格式:r或w + 2位班序號+學(xué)號中的2位序號.RAR,例如網(wǎng)絡(luò)1班12號同學(xué)的文件名為:w0112.rar。最后每位同學(xué)的rar文件匯總到班長處,由班長制作成光盤,同設(shè)計(jì)報(bào)告一起上交。
七、時(shí)間與地點(diǎn)
第16周作準(zhǔn)備,查閱資料等
第17周編寫程序
上機(jī)地點(diǎn):微機(jī)2室 + 宿舍

【-學(xué)年第二學(xué)期《操作系統(tǒng)課程設(shè)計(jì)》任務(wù)書】相關(guān)文章:

操作系統(tǒng)課程設(shè)計(jì)報(bào)告模擬進(jìn)程調(diào)度程序(一)05-13

LINUX操作系統(tǒng)10-11

任務(wù)書和開題報(bào)告區(qū)別09-07

組件機(jī)制與操作系統(tǒng)的實(shí)現(xiàn)08-20

工程管理論文任務(wù)書09-03

Linux—網(wǎng)絡(luò)時(shí)代的操作系統(tǒng)?06-11

計(jì)算機(jī)操作系統(tǒng)漫談06-09

淺析組件機(jī)制和操作系統(tǒng)的實(shí)現(xiàn)08-19

課程設(shè)計(jì)報(bào)告06-26

芻議計(jì)算機(jī)操作系統(tǒng)的應(yīng)用與發(fā)展08-27