操作系统原理---进程管理器的模拟实现.doc_第1页
操作系统原理---进程管理器的模拟实现.doc_第2页
操作系统原理---进程管理器的模拟实现.doc_第3页
操作系统原理---进程管理器的模拟实现.doc_第4页
操作系统原理---进程管理器的模拟实现.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学与计算机学院 课程设计说明书 课 程 名 称: 操作系统原理-课程设计 课 程 代 码: 8404161 题 目: 进程管理器的模拟实现 年级/专业/班: 学 生 姓 名: 学 号: 开 始 时 间: 2011 年 12 月 11 日 完 成 时 间: 2011 年 12 月 24 日 课程设计成绩: 学习态度及平 时成绩(30) 技术水平与实际 能力(20) 创新 (5) 说明书撰写质量(45) 总 分 (100) 进程管理器的模拟实现 ii 指导教师签名: 年 月 日 西华大学数学与计算机学院课程设计说明书 1 操作系统原理课 程 设 计 任 务 书 学院名称: 数学与计算机学院 课程代码:_8404061_ 专业: 计算机科学与技术 年级: 2009 一、设计题目 进程管理器的模拟实现 二、主要内容 目的: 编程模拟实现进程管理器,加深对进程、程序概念掌握,并提高编程能力。 内容: 利用 windows 相关编程工具,实现进程管理器的相关功能: (1) 显示当前正在运行的进程及其占用的资源 (2) 可以对某一进程进行停止; 三、具体要求及应提交的材料 1、完成系统的需求分析:包含功能需求、数据需求、性能需求等。 2、完成系统设计: 包含系统概要设计(软件结构图)及详细设计(画出流程图) 。 3、测试: 编写合适的测试用例完成系统的测试工作并分析结果。 4、完成后应上交的材料: 课程设计说明书:包含封面、任务书、说明书(说明书见后面模板) 。 包括系统设计目的要求,类的层次图(包括类成员列表) 、设计思路,系统功能模 块图、参考资料、程序清单、设计心得总结等。对照自己设计的完成情况认真书 写。 软件源程序光盘。 进程管理器的模拟实现 2 注:学生完成课程设计后,提交课程设计报告及相关电子文档,要求将前述全部 内容依先后顺序写成设计报告一份,要求文字通畅、字迹工整,文字不少于 20000 字, 装订成册。 四、进度安排 课程设计共两周(15、16 周)进行,其进度时间大致分配如下: 序号序号阶段内容阶段内容地点地点所需时间所需时间 1实际需求调查实验室、图书馆、教室3 学时 2系统分析与设计机房、教室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 换出进程功能 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 国内外研究的现状国内外研究的现状 进程管理器在各种操作系统中广泛应用,不管是 windows 还是 linux 都有进程管 理器,方便用户对系统资源进行管理。在现代计算机中,进程管理器已经成了操作系 统不可缺少的一部分了。 1.31.3 任务与分析任务与分析 本课题主要的目的是模拟一个进程管理器 编程模拟实现进程管理器,加深对进程、程序概念掌握,并提高编程能力。 内容: 利用 windows 相关编程工具,实现进程管理器的相关功能: 1. 显示当前正在运行的进程及其占用的资源 2. 可以对某一进程进行停止 2.2. 程序的主要功能程序的主要功能 2.1 创建进程功能创建进程功能 创建一个进程,包括它的进程号,进程优先数 2.2 查看进程功能查看进程功能 能够查看当前正在运行的进程。 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 结构体 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(); 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-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-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(“内存已满请先换出进程!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; else 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; 西华大学数学与计算机学院课程设计说明书 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 换出模块换出模块 当内存满了的时候需要换出一些进程后才能再创建新的进程。 /换出进程函数 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-next=null; printf(“运行的进程已经杀死!n“); return; 6.56.5 退出模块退出模块 退出模拟系统的模块 7 7 系统测试系统测试 首先进入 vc+6.0,打开工程进程管理器模拟.dsw,然后进入源程序,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论