《操作系统原理》课程设计报告

发布 2022-10-05 13:00:28 阅读 6661

姓名。学号。指导老师。

起始时间: 2024年3月4日。

起止时间: 2024年6月 22 日。

为了提高同学们的自学能力,老师决定给予一项我们没有接触过的课程设计,也是我们很不熟悉,但是在it界却是很重要的一门技艺,我觉得老师的目的就是为了锻炼我们的自学力,而不是课程设计的能力,课程设计的能力是通过自学能力表现出来的。

掌握unix操作系统常用api的调用;了解目录操作、进程控制等相关知识。

掌握创建子进程和信号;

初步学会使用管道进行进程间通讯;

掌握命令解释程序的设计方法。

理解并发程序中的同步问题。

培养c/c++语言程序设计技能,提高程序设计和文档编写能力。

锻炼团队成员的交流与合作能力。

操作系统:windows xp 2000 、unix系统。

开发平台:notepad++、putty

编译器版本:gnu gcc

开发语言:c语言。

unix shell是unix的命令解释程序,用于让用户以一种友好的方式运行程序和执行命令。本设计要求在利用c或c++语言在linux环境下设计一个简单的命令解释程序,实现shell的基本功能。即:

用户在命令行输入命令(包括内部命令和外部命令)及参数,执行该命令,以及实现输入、输出重定向等功能。

1)具体功能要求:

试验环境为unix,编程语言为c或c++;

整个程序必须经过测试,完整实现所有基本功能;

程序的运行必须稳定可靠,不得出现执行某命令时,系统无响应或退出现象;

程序编写应有良好的风格,源程序必须有比较详细的注释;

程序中不得使用system()系统调用;

2)其它要求。

命令解释程序的提示符为:@

命令解释程序把命令解释为内部命令和外部命令(要执行的程序)。内部命令直接在命令解释程序中执行,外部命令则由解释程序通过fork()创建一个子进程,然后在子进程中调用exec()执行该程序;

图2.1 程序流程图。

int main(int argc, char *ar**)

int i;

init();

while (exit1 ==0)

return 0;

由于此次课程设计是以小组的形式完成的,本人主要完成了time、date、pwd、md、ren这五个模块。

1、算法思想:先判断是否符合命令模块的基本格式;不符合的话,则退出time/date模块。符合的话,则对时间相关信息进行保存;最后根据需要打印出相关信息。

2、程序实现:

void date()

time_t timep;

struct tm *p;

char *wday

if (numbercommand !=2)

time(&timep);

p = gmtime(&timep);

printf("%d %d %d %s", 1900 + p->tm_year), 1 + p->tm_mon), p->tm_mday, wday[p->tm_wday]);

void time()

time_t timep;

struct tm *p;

char *wday

if (numbercommand !=2)

time(&timep);

p = gmtime(&timep);

printf("%d %d %d %s %d:%d:%d", 1900 + p->tm_year), 1 + p->tm_mon),

p->tm_mday, wday[p->tm_wday], p->tm_hour + 8, p->tm_min, p->tm_sec);

1、算法思想:调用mkdir函数即可以实现创建一个目录。

2、程序实现:

void md()

if (numbercommand !=3)

if (mkdir(command[1], s_irusr | s_iread) !0)

1、算法思想:直接打印当前目录pathname;

2、程序实现:

void pwd()

if (numbercommand !=2)

else 1、算法思想:直接调用rename函数;

2、程序实现:

void ren()

if (numbercommand !=4)

if (rename(command[1], command[2]) 0)

else几周的课程设计终于可以结束了,在这几周里,我们感触颇深。我们学到了很多东西,也暴露出了许多缺点。在写程序的时候我们感觉到要想写好一个程序,首先要有一个清晰的思路,只有思路清晰才能进行下一阶段的设计,这样才能很好的完成整个程序。

由于平时缺乏锻炼,很少去写这种**较多的程序,我们发现在宏观的控制和把握上很缺乏经验。也许主要的问题还是自己能力的问题,语音运用能力差,掌握性差,希望能在以后的学习中多一些这样的机会,多多锻炼。

unix环境高级编程》中文版 《现代操作系统原书(第2版)》

自己动手写操作系统设计及实现 (第三版)

《操作系统原理》课程设计报告

操作系统原理 课程设计报告书。题目 进程控制模块的设计与实现。专业 网络工程 学号 131007111 学生姓名 李亚豪。指导教师 刘双红。完成日期 2015 12 05 第1章课题概述 3 1.1 设计要求 3 1.2 设计理论依据 3 第2章设计简介和内容 6 2.1 设计简介 6 2.2 设计...

操作系统原理 课程设计报告

掌握linux操作系统的使用方法 了解linux系统内核 结构 掌握实例操作系统的实现方法 本次课程设计采用的操作系统环境是windows10 ubuntu双系统,ubuntu系统版本号为16.04,内核版本号为linux 4.4.4 前两个实验在当前ubuntu环境下完成,后两个实验在win10下...

操作系统原理课程设计

操作系统原理 课程设计。课题名称 进程调度算法。姓名 班级 学号 课程设计起止时间 2005年1月2日 2005年1月7日。指导教师成绩 课程设计任务书。进程调度算法。一 设计说明。该程序实现了进程的创建,且对该进程队列进行动态优先权抢占式和时间片轮转算法的调度。二 详细设计。1.流程图。2.程序运...