1、数学与计算机学院课程代码:_8404061_专业:计算机科学与技术年级: 2009 一、设计题目二、主要内容目的:编程模拟实现进程管理器,加深对进程、程序概念掌握,并提高编程能力。内容:利用Windows相关编程工具,实现进程管理器的相关功能:(1)显示当前正在运行的进程及其占用的资源(2)可以对某一进程进行停止;三、具体要求及应提交的材料1、完成系统的需求分析:包含功能需求、数据需求、性能需求等。2、完成系统设计: 包含系统概要设计软件结构图)及详细设计画出流程图)。3、测试: 编写合适的测试用例完成系统的测试工作并分析结果。4、完成后应上交的材料: 课程设计说明书:包含封面、任务书、说明书
2、说明书见后面模板)。 包括系统设计目的要求,类的层次图包括类成员列表)、设计思路,系统功能模块图、参考资料、程序清单、设计心得总结等。对照自己设计的完成情况认真书写。 软件源程序光盘。注:学生完成课程设计后,提交课程设计报告及相关电子文档,要求将前述全部内容依先后顺序写成设计报告一份,要求文字通畅、字迹工整,文字不少于20000字,装订成册。四、进度安排课程设计共两周 int zhixing(。 void shasi( void chakan( void tongxing(int neizhi=(jincheng*malloc(sizeof(jincheng neizhi-next=NULL。
3、 neijin=(jincheng* neijin-pid=1。youxian=6。luntime=3.5。zhantime=3。neirong=(node*malloc(sizeof(nodeneirong=NULL。zhuangtai=b shumu+。 p=(jincheng* p-next=neijin-next。next=p。pid=2。youxian=5。 q=(jincheng* q-next=p-next=q。pid=3。youxian=4。 int i,n=1。 int k,j,s。 j=zhixing( int creat( while(n=1 printf( 1.创建新的
4、进程 2.查看运行进程 n 3.杀死运行进程 4退出系统 n请选择6 模块分析6.1 创建模块系统将提示用户输入新添加的进程的信息,插入在链表中。int creat( int i。 if(shumu20内存已满请先换出进程!n i=-1。 return i。 else if(neijin=NULL p=(jincheng* printf(请输入新进程的名字pid请输入新进程的优先级: p- neijin=p。 shumu+。 i=1。 else p=neijin。 while(p-next!=NULL p=p- q=(jincheng* q- p-q- scanf( shumu+。 i=1。
5、return i。6.2 查看模块查看模块将输出所有进程的主要信息void chakan( p=neizhi- printf(该执行进程的名字为:%dn,p-该执行进程的的优先级:该执行进程的轮转时间为:%fnluntime该执行进程占用cpu的时间为:zhantime%d neirong-a%cch6.3 换出模块当内存满了的时候需要换出一些进程后才能再创建新的进程。/换出进程函数void huanchu(int a p=neijin。 while(p-pid!=a&p! q=p。 p=p- if(p=NULL该进程不在内存里! return。 if(p=neijin neijin=neij
6、in-6.4 杀死模块杀死当前正在运行的进程,其实也就是当前链表的头指针清空即可。/杀死正在运行进程函数void shasi(运行的进程已经杀死! return。6.5 退出模块退出模拟系统的模块7 系统测试首先进入VC+6.0,打开工程进程管理器模拟.dsw,然后进入源程序,接着选择Build下的进程管理器模拟.exe即可,也可以不打开工程,直接双击文件夹下的debug或release子文件夹下的进程管理器模拟.exe文件即可运行程序。图7.1图7.2图7.3图7.48 结论通过这次课程设计,增强了自己的编程能力,也加深了对操作系统这门课程的理解,加深了对进程的理解。但还是有些不足之处,例如界面不美观,若能通过图形化界面显示则效果会更好