网站大量收购独家精品文档,联系QQ:2885784924

进程创建和撤销.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一:进程创建与撤消 一、二、—以普通用户身份认识windows的进程管理。通过windows的“任务管理器”观察进程的状态,进行进程的创建、切换和撤销。 (2)语言级—以普通程序员身份认识高级语言VC++/Java/C#的进程创建与撤销工具。 (3)模拟级—以OS设计师身份编程模拟实现进程创建与撤销功能,并在屏幕上观察进程活动的结果。 三、 2、VC++/Java/C#的进程创建与撤销工具 3、进程创建与撤销的模拟实现 (1)总体设计: ① 结构体PCB:进程名、ID、运行时间、优先级等,队列的排序按创建时间或优先级排序。 PCB空间—结构体PCB数组 就绪队列指针 空队列指针 ②函数 CREATE()—进程创建:从PCB空间申请一个空PCB,填入进程参数,插入就绪队列; KILL()—进程终止:将指定的就绪进程移出就绪队列,插入空队列; 就绪队列输出函数Display()—输出就绪队列中的进程信息,以观察创建或撤消活动的结果; 主函数Main()—功能选择、输入新进程参数、调用创建函数、输出就绪队列;输入进程名称、调用终止函数、输出就绪队列; ③主界面设计:进程创建、进程撤销、就绪队列显示菜单;数据输入和就绪队列显示区。 ④功能测试:从显示出的就绪队列状态,查看操作的正确与否。 (2)详细设计: ① 结构体PCB: PCB空间 就绪队列指针 空队列指针 struct PCB { char NAME[20]; long ID; float TIME; int PRIORITY; }; PCB pcb[10]; typedef struct QNode { int data; struct QNode*next; }QNode,*QueuePtr; typedef struct { QueuePtr front; QueuePtr rear; }LinkQueue;LinkQueue Ready,Empty; ②函数设计 给出create()、destroy()、Display()、Main()的流程图描述; create()流程图: destroy()流程图: 是 否 是 否 是 否 Display()流程图: Main()流程图: (3)调试与测试 四、通过这次试验了解到了进创建与撤销,通过使用结构体和指针,对的知识。五、附录 带注释的源程序。 void menu() { cout****==========1.进程创建\n; cout****==========2.进程撤销\n; cout****==========3.就绪队列显示\n; cout****==========4.退出\n; int choice; cout请选择:; cinchoice; switch(choice) {case 1:create();break; case 2:destroy();break; case 3:display();break; case 4:exit(); } }void create() { char name[20]; long id; float time; int priority; int n; QNode *p; cout请输入要创建进程的数目:; cinn; for(int i=1;i=n;i++) { cout进程ID:; cinid; for(int j=i-1;j=N;j++) { while(id==pcb[j].ID) { cout进程ID已存在endl; cout进程ID:; cinid; } } cout进程名:;cinname; cout运行时间:; cintime; cout优先级:; cinpriority; N++;//保存当前就绪进程数 strcpy(pcb[N].NAME,name); pcb[N].ID =id; pcb[N].TIME =time; pcb[N].PRIORITY =priority; p=new QNode;//插入就绪队列 p-data=N; p-next=NULL; Ready.rear-n

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档