操作系统原理---进程管理器的模拟实现.doc

上传人:数据九部 文档编号:10133256 上传时间:2021-04-22 格式:DOC 页数:17 大小:240KB
返回 下载 相关 举报
操作系统原理---进程管理器的模拟实现.doc_第1页
第1页 / 共17页
操作系统原理---进程管理器的模拟实现.doc_第2页
第2页 / 共17页
操作系统原理---进程管理器的模拟实现.doc_第3页
第3页 / 共17页
操作系统原理---进程管理器的模拟实现.doc_第4页
第4页 / 共17页
操作系统原理---进程管理器的模拟实现.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《操作系统原理---进程管理器的模拟实现.doc》由会员分享,可在线阅读,更多相关《操作系统原理---进程管理器的模拟实现.doc(17页珍藏版)》请在三一文库上搜索。

1、数学与计算机学院 课程设计说明书 课 程 名 称: 操作系统原理-课程设计 课 程 代 码: 8404161 题 目: 进程管理器的模拟实现 年级/专业/班: 学 生 姓 名: 学 号: 开 始 时 间: 2011 年 12 月 11 日 完 成 时 间: 2011 年 12 月 24 日 课程设计成绩: 学习态度及平 时成绩(30) 技术水平与实际 能力(20) 创新 (5) 说明书撰写质量(45) 总 分 (100) 指导教师签名: 年 月 日 西华大学数学与计算机学院课程设计说明书 1 操作系统原理课 程 设 计 任 务 书 学院名称: 数学与计算机学院 课程代码:_8404061_ 专

2、业: 计算机科学与技术 年级: 2009 一、设计题目 进程管理器的模拟实现 二、主要内容 目的: 编程模拟实现进程管理器,加深对进程、程序概念掌握,并提高编程能力。 内容: 利用 Windows 相关编程工具,实现进程管理器的相关功能: (1) 显示当前正在运行的进程及其占用的资源 (2) 可以对某一进程进行停止; 三、具体要求及应提交的材料 1、完成系统的需求分析:包含功能需求、数据需求、性能需求等。 2、完成系统设计: 包含系统概要设计(软件结构图)及详细设计(画出流程图) 。 3、测试: 编写合适的测试用例完成系统的测试工作并分析结果。 4、完成后应上交的材料: 课程设计说明书:包含封

3、面、任务书、说明书(说明书见后面模板) 。 包括系统设计目的要求,类的层次图(包括类成员列表) 、设计思路,系统功能模 块图、参考资料、程序清单、设计心得总结等。对照自己设计的完成情况认真书 写。 软件源程序光盘。 进程管理器的模拟实现 2 注:学生完成课程设计后,提交课程设计报告及相关电子文档,要求将前述全部 内容依先后顺序写成设计报告一份,要求文字通畅、字迹工整,文字不少于 20000 字, 装订成册。 四、进度安排 课程设计共两周(15、16 周)进行,其进度时间大致分配如下: 序号序号阶段内容阶段内容地点地点所需时间所需时间 1实际需求调查实验室、图书馆、教室3 学时 2系统分析与设计

4、机房、教室6 学时 3编程调试机房、教室8 学时 4设计报告文档撰写机房、教室3 学时 合 计20 学时 五、参考资料 1. 谢青松. 操作系统原理. 人民邮电出版社.2004 2. 曹先彬. 操作系统原理与设计. 机械工业出版社 3. 袁宝华. 操作系统实验教程. 北京交通大学出版社 指导教师 签名日期 年 月 日 系 主 任 审核日期 年 月 日 西华大学数学与计算机学院课程设计说明书 3 目 录 1 引 言 .4 1.1 问题的提出 .4 1.2 国内外研究的现状.4 1.3 任务与分析.4 2.程序的主要功能.4 2.1 创建进程功能.4 2.2 查看进程功能.4 2.3 换出进程功能

5、 .4 2.4 杀死进程功能.5 2.5 退出功能.5 3 程序运行平台 .5 4 总体设计 .5 5 程序说明 .6 6 模块分析 .8 6.1 创建模块 .8 6.2 查看模块 .11 6.3 换出模块 .11 6.4 杀死模块 .13 6.5 退出模块 .13 7 系统测试 .13 8 结论 .15 进程管理器的模拟实现 4 1 引引 言言 1.11.1 问题的提出问题的提出 进程管理器是我们经常用到的一个工具,我们可以通过 C 语言编程来模拟进程管 理器的功能,加深对进程、程序概念掌握,并提高编程能力 1.21.2 国内外研究的现状国内外研究的现状 进程管理器在各种操作系统中广泛应用,

6、不管是 windows 还是 linux 都有进程管 理器,方便用户对系统资源进行管理。在现代计算机中,进程管理器已经成了操作系 统不可缺少的一部分了。 1.31.3 任务与分析任务与分析 本课题主要的目的是模拟一个进程管理器 编程模拟实现进程管理器,加深对进程、程序概念掌握,并提高编程能力。 内容: 利用 Windows 相关编程工具,实现进程管理器的相关功能: 1. 显示当前正在运行的进程及其占用的资源 2. 可以对某一进程进行停止 2.2. 程序的主要功能程序的主要功能 2.1 创建进程功能创建进程功能 创建一个进程,包括它的进程号,进程优先数 2.2 查看进程功能查看进程功能 能够查看

7、当前正在运行的进程。 2.3 换出进程功能换出进程功能 能够换出某个已经创建好的进程。 西华大学数学与计算机学院课程设计说明书 5 2.4 杀死进程功能杀死进程功能 能够杀死一个当前正在运行的进程。 2.5 退出功能退出功能 退出进程模拟系统。 3 3 程序运行平台程序运行平台 VC+6.0。 具体操作如下:新建进程管理器模拟工程,添加相应的源文件进程管理器.C,再 编译,链接,执行等。 进程管理器的模拟实现 6 4 4 总体设计总体设计 图 4.1 系统总体框架图 5 5 程序说明程序说明 进程的内容结构体 struct node int a; char ch; ; /进程 PCB 结构体

8、struct jincheng int pid; int youxian; float luntime; float zhantime; char zhuangtai;/a 表示执行,b 表示动态就绪 node *neirong; struct jincheng *next; ; struct jincheng *neijin,*neizhi,*p,*q; 主 函 数 创 建 模 块 查 看 模 块 换 出 模 块 杀 死 模 块 通 信 模 块 退 出 模 块 西华大学数学与计算机学院课程设计说明书 7 主菜单 void main() int zhixing(); void shasi();

9、 void chakan(); void tongxing(int); neizhi=(jincheng*)malloc(sizeof(jincheng); neizhi-next=NULL; neijin=(jincheng*)malloc(sizeof(jincheng); neijin-next=NULL; neijin-pid=1; neijin-youxian=6; neijin-luntime=3.5; neijin-zhantime=3; neijin-neirong=(node*)malloc(sizeof(node); neijin-neirong=NULL; neijin-

10、zhuangtai=b; shumu+; p=(jincheng*)malloc(sizeof(jincheng); p-next=neijin-next; neijin-next=p; p-pid=2; p-youxian=5; p-luntime=3.5; p-zhantime=3; p-neirong=(node*)malloc(sizeof(node); p-neirong=NULL; p-zhuangtai=b; 进程管理器的模拟实现 8 shumu+; q=(jincheng*)malloc(sizeof(jincheng); q-next=p-next; p-next=q; q-

11、pid=3; q-youxian=4; q-luntime=3.5; q-zhantime=3; q-neirong=(node*)malloc(sizeof(node); q-neirong=NULL; q-zhuangtai=b; shumu+; int i,n=1; int k,j,s; j=zhixing(); int creat(); while(n=1) printf( 1.创建新的进程 2.查看运行进程 n); printf( 3.杀死运行进程 4 退出系统 n); printf(请选择(16)n); scanf(%d, if(shumu20) printf(内存已满请先换出进程

12、!n); i=-1; return i; else if(neijin=NULL) p=(jincheng*)malloc(sizeof(jincheng); printf(请输入新进程的名字(数字):n); scanf(%d, printf(请输入新进程的优先级:(数字)n); scanf(%d, p-luntime=3.5; p-zhantime=3; p-neirong=(node*)malloc(sizeof(node); p-neirong=NULL; p-zhuangtai=b; p-next=NULL; neijin=p; 进程管理器的模拟实现 10 shumu+; i=1; e

13、lse p=neijin; while(p-next!=NULL) p=p-next; q=(jincheng*)malloc(sizeof(jincheng); q-next=p-next; p-next=q; printf(请输入新进程的名字(数字):n); scanf(%d, printf(请输入新进程的优先级:(数字)n); scanf(%d, q-luntime=3.5; q-zhantime=3; q-neirong=(node*)malloc(sizeof(node); q-neirong=NULL; q-zhuangtai=b; shumu+; i=1; 西华大学数学与计算机学

14、院课程设计说明书 11 return i; 6.26.2 查看模块查看模块 查看模块将输出所有进程的主要信息 void chakan() p=neizhi-next; printf(该执行进程的名字为:%dn,p-pid); printf(该执行进程的的优先级:%dn,p-youxian); printf(该执行进程的轮转时间为:%fn,p-luntime); printf(该执行进程占用 cpu 的时间为:%fn,p-zhantime); printf(%d ,p-neirong-a); printf(%c,p-neirong-ch); printf(n); 6.36.3 换出模块换出模块

15、当内存满了的时候需要换出一些进程后才能再创建新的进程。 /换出进程函数 void huanchu(int a) 进程管理器的模拟实现 12 p=neijin; while(p-pid!=a p=p-next; if(p=NULL) printf(该进程不在内存里!n); return; if(p=neijin) neijin=neijin-next; else q-next=p-next; 西华大学数学与计算机学院课程设计说明书 13 6.46.4 杀死模块杀死模块 杀死当前正在运行的进程,其实也就是当前链表的头指针清空即可。 /杀死正在运行进程函数 void shasi() neizhi-n

16、ext=NULL; printf(运行的进程已经杀死!n); return; 6.56.5 退出模块退出模块 退出模拟系统的模块 7 7 系统测试系统测试 首先进入 VC+6.0,打开工程进程管理器模拟.dsw,然后进入源程序,接着选择 Build 下的进程管理器模拟.exe 即可,也可以不打开工程,直接双击文件夹下的 debug 或 release 子文件夹下的进程管理器模拟.exe 文件即可运行程序。 进程管理器的模拟实现 14 图 7.1 图 7.2 西华大学数学与计算机学院课程设计说明书 15 图 7.3 图 7.4 8 8 结论结论 通过这次课程设计,增强了自己的编程能力,也加深了对操作系统这门课程的理 解,加深了对进程的理解。但还是有些不足之处,例如界面不美观,若能通过图形化 界面显示则效果会更好

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1