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

上传人:laozhun 文档编号:4192804 上传时间:2023-04-09 格式:DOC 页数:7 大小:54KB
返回 下载 相关 举报
《操作系统原理》课程设计报告.doc_第1页
第1页 / 共7页
《操作系统原理》课程设计报告.doc_第2页
第2页 / 共7页
《操作系统原理》课程设计报告.doc_第3页
第3页 / 共7页
《操作系统原理》课程设计报告.doc_第4页
第4页 / 共7页
《操作系统原理》课程设计报告.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《《操作系统原理》课程设计报告.doc》由会员分享,可在线阅读,更多相关《《操作系统原理》课程设计报告.doc(7页珍藏版)》请在三一办公上搜索。

1、操作系统原理课程设计报告姓 名: 学 号: 指导老师: _ 起始时间: 2010年3月4日起止时间: 2010年6月 22 日第一章 系统概述1.1 设计背景为了提高同学们的自学能力,老师决定给予一项我们没有接触过的课程设计,也是我们很不熟悉,但是在IT界却是很重要的一门技艺,我觉得老师的目的就是为了锻炼我们的自学力,而不是课程设计的能力,课程设计的能力是通过自学能力表现出来的。1.2 设计目的l 掌握unix操作系统常用API的调用;了解目录操作、进程控制等相关知识。l 掌握创建子进程和信号;l 初步学会使用管道进行进程间通讯;l 掌握命令解释程序的设计方法。l 理解并发程序中的同步问题。l

2、 培养C/C+语言程序设计技能,提高程序设计和文档编写能力。l 锻炼团队成员的交流与合作能力。1.3 开发环境操作系统:Windows XP 2000 、UNIX系统开发平台:Notepad+、 putty编译器版本:GNU GCC开发语言:C语言第二章 总体要求与设计2.1 设计要求:Unix Shell是unix的命令解释程序,用于让用户以一种友好的方式运行程序和执行命令。本设计要求在利用C或C+语言在linux环境下设计一个简单的命令解释程序,实现shell的基本功能。即:用户在命令行输入命令(包括内部命令和外部命令)及参数,执行该命令,以及实现输入、输出重定向等功能。1)具体功能要求:

3、u 试验环境为unix,编程语言为C或C+;u 整个程序必须经过测试,完整实现所有基本功能;u 程序的运行必须稳定可靠,不得出现执行某命令时,系统无响应或退出现象;u 程序编写应有良好的风格,源程序必须有比较详细的注释;u 程序中不得使用system()系统调用;2)其它要求l 命令解释程序的提示符为:l 命令解释程序把命令解释为内部命令和外部命令(要执行的程序)。内部命令直接在命令解释程序中执行,外部命令则由解释程序通过fork()创建一个子进程,然后在子进程中调用exec()执行该程序;2.2 程序流程图:图2.1 程序流程图2.3 主程序:int main(int argc, char

4、*argv) int i;init();while (exit1 = 0) int ch = 0;ch = GetCommand(Command, &NumberCommand);switch (ch)case 1: dir1(NumberCommand, Command);break;case 2:cd(NumberCommand, Command);break;case 3:pwd(NumberCommand, Command);break;case 4:md(NumberCommand, Command);break;case 5:copy(NumberCommand, Command)

5、;break;case 6:date(NumberCommand, Command);break;case 7: Time(NumberCommand, Command);break;case 8:ren(NumberCommand, Command);break;case 9:del(NumberCommand, Command);break;case 10:Exit1(NumberCommand, Command);break;case 11:find(NumberCommand, Command);break;case 12:more(NumberCommand, Command);br

6、eak;deluat: printf(It is not Command in this progame!n); break;return 0;第三章 主要模块功能设计由于此次课程设计是以小组的形式完成的,本人主要完成了time、date、pwd、md、ren这五个模块。3.1 Time/Date模块:1、算法思想:先判断是否符合命令模块的基本格式;不符合的话,则退出time/date模块。符合的话,则对时间相关信息进行保存;最后根据需要打印出相关信息。2、程序实现:void date()time_t timep;struct tm *p;char *wday = Sunday, Monday

7、, Tuesday, Wednesday, Thursday, Friday, Saturday;if (NumberCommand != 2) printf(usage: date directory_namen);return;time(&timep);p = gmtime(&timep);printf(%d %d %d %sn, (1900 + p-tm_year), (1 + p-tm_mon), p-tm_mday, wdayp-tm_wday);void Time()time_t timep;struct tm *p;char *wday = Sunday, Monday, Tue

8、sday, Wednesday, Thursday, Friday, Saturday;if (NumberCommand != 2) printf(usage: time directory_namen);return;time(&timep);p = gmtime(&timep);printf(%d %d %d %s %d:%d:%dn, (1900 + p-tm_year), (1 + p-tm_mon), p-tm_mday, wdayp-tm_wday, p-tm_hour + 8, p-tm_min, p-tm_sec);3.2 MD模块:1、算法思想:调用mkdir函数即可以实现

9、创建一个目录。2、程序实现:void md()if (NumberCommand != 3) printf(usage: md directory_namen);return;if (mkdir(Command1, S_IRUSR | S_IREAD) != 0) printf(Create errorn);3.3 PWD模块:1、算法思想:直接打印当前目录pathname;2、程序实现:void pwd()if (NumberCommand != 2) printf(usage: pwd directory_namen);return;else printf(%sn, pathname);3

10、.3 REN模块:1、算法思想:直接调用rename函数;2、程序实现:void ren()if (NumberCommand != 4) printf(usage: ren directory_namen);return;if (rename(Command1, Command2) = 0) ;else printf(Rename errorn);第四章 总结几周的课程设计终于可以结束了,在这几周里,我们感触颇深。我们学到了很多东西,也暴露出了许多缺点。在写程序的时候我们感觉到要想写好一个程序,首先要有一个清晰的思路,只有思路清晰才能进行下一阶段的设计,这样才能很好的完成整个程序。由于平时缺乏锻炼,很少去写这种代码较多的程序,我们发现在宏观的控制和把握上很缺乏经验。也许主要的问题还是自己能力的问题,语音运用能力差,掌握性差,希望能在以后的学习中多一些这样的机会,多多锻炼。五、 参考文献UNIX环境高级编程中文版 现代操作系统原书(第2版)自己动手写操作系统 设计及实现 (第三版)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号