欢迎来到天天文库
浏览记录
ID:20393203
大小:33.00 KB
页数:10页
时间:2018-10-09
《进程创建和撤销啊》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、进程的创建和撤销啊操作系统实验报告实验题目:进程的创建与撤销指导老师:杜俊俐专业班级:软工086班学号:200877054611姓名:胡同涛中原工学院?软件学院实验一:进程创建与撤消一.实验目的加深对进程概念的理解和进程创建与撤消算法;进一步认识并发执行的实质。二.实验属性该实验为验证性+设计性实验。三.实验仪器设备及器材普通PC386以上微机四.实验要求本实验要求2学时完成。本实验要求完成如下三个层次的任务:(1)系统级—以普通用户身份认识windows的进程管理。通过windows的“任务管理器”观察进程的状态,进行进程的创建、切换和撤销。(2)语言级—以普
2、通程序员身份认识高级语言VC++/Java/C#的进程创建与撤销工具。(3)模拟级—以OS设计师身份编程模拟实现进程创建与撤销功能,并在屏幕上观察进程活动的结果。实验前应复习实验中所涉及的理论知识和算法,针对实验要求完成基本代码编写并完成预习报告;实验中认真调试所编代码并进行必要的测试、记录并分析实验结果。实验后认真书写符合规范格式的实验报告(参见附录A),并要求用正规的实验报告纸和封面装订整齐,按时上交。五.实验提示--模拟级编程5.1数据结构定义#defineOK1成功返回OK定义为1#defineEVERFLOW-1越界用-1#definePCBSIZE1
3、0//空闲队列初始数组空间#defineNULL0//空定义为0typedefstructPCB//定义进程结构体{intid;//进程的序号intpriority;//进程的优先级structPCB*next;//进程指向下一个节点}PCB,*PCBList;PCBpcb[PCBSIZE];//创建pcb块,初始空间大小为10PCBListnullPcb;//空闲队列PCBListreadyPcb;//就绪队列PCBListreadyPcbtail;//就绪队列队尾指针5.2函数InitPcb(PCBList&nullPcb)——初始化空闲队列Create(P
4、CBList&nullPcb)——//创建一个pcb进程从PCB空间申请一个空PCB,填入进程参数,创建一个pcb进程。InsertReadyPcb(PCBList&readyPcb,PCBList&pcb)——将刚刚创建的进程插入到有序的就绪队列中Delete(intid,PCBList&readyPcb,PCBList&nullPcb)——用于销毁一个pcb进程,指定销毁队列的序列号,销毁该进程,并将它插入到空闲队列中PrintPCB(PCBList&readyPcb)——就绪队列输出函数—输出就绪队列中的进程信息,以便观察创建或撤消活动的结果主函数—功能选
5、择,1.创建进程2.销毁进程3.输出就绪队列4.退出系统5.3函数设计及实现5.3.1初始空闲队列函数InitPcb()Pcb块使用空间大小为10的pcb进程数组组成,该函数就是将pcb块中的元素连接起来,并用nullPcb空闲队列的头指针指向第一个元素,实现空闲队列的初始化工作。5.3.2创建新进程函数Create()空闲队列如果不空,从空闲队列中提取一个进程,再对进程赋值,如进程名,进程id,进程优先级等,完成一个进程的创建。5.3.3销毁一个进程函数Delete()销毁进程,在此函数中通过传入的id号,在就绪队列中查找与该id相同的进程,删除该进程,并将刚
6、刚删除掉的进程插入到空闲队列的对头。5.3.4就绪队列输出函数PrintPCB()遍历就绪队列,并将队列进程的基本信息输出。5.3.5进程插入就绪队列InsertReadyPcb()使用CreatePcb()的一个进程,而本函数就是将刚刚创建好的进程插入到就绪队列,并且按照进程的优先级序列排列了就绪队列的所有进程。5.3.6主函数main()主函数中先调用InitPcb()对空闲队列初始化,使用一个按钮控制主界面的循环,分别使用1-4序列来控制界面的跳转,流程的控制,他们分别运行以下功能:进程创建、进程销毁、就绪队列输出、退出系统。5.4主界面设计5.4.1主界
7、面主界面中主要包含四个操作,进程创建,进程销毁,就绪队列输出,退出系统,如下图:图5.4.1主界面5.4.2进程创建输入1,进入创建进程子菜单中,分别赋予该进程的id值和优先级值,就会将创建的进程插入到就绪队列中了,如下图:图5.4.2创建进程5.4.3就绪队列输出输入3,就可以将现有就绪队列的进程输出,如下图:图5.4.3输出队列5.4.4销毁进程输入2。便可以删除指定的进程,需要输入进程的ID号,如下图:图5.4.4销毁进程5.4.5功能测试成功将新建的进程删除,测试通过如图:图5.4.5测试通过六.实验总结通过进程创建和销毁的模拟实验,让我又重新温习了一下
8、我的c语言基础,在这个实
此文档下载收益归作者所有