欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    进程创建与撤消(共6页).doc

    • 资源ID:14500749       资源大小:28KB        全文页数:6页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    进程创建与撤消(共6页).doc

    精选优质文档-倾情为你奉上实验一:进程创建与撤消(模拟)一、实验目的1、 加深对进程概念的理解和进程创建与撤消算法;2、 进一步认识并发执行的实质。二、实验内容本实验完成如下三个层次的任务:(1)系统级以普通用户身份认识windows的进程管理。通过windows的“任务管理器”观察进程的状态,进行进程的创建、切换和撤销。文档收集自网络,仅用于个人学习(2)语言级以普通程序员身份认识高级语言VC+/Java/C#的进程创建与撤销工具。(3)模拟级以OS设计师身份编程模拟实现进程创建与撤销功能,并在屏幕上观察进程活动的结果。三、实验步骤1、windows的进程管理当前状态切换前切换后撤销2、VC+进程创建与撤销工具3、进程创建与撤销的模拟实现(1)总体设计:数据结构定义:结构体PCB:进程名、ID、运行时间、优先级等,队列的排序按创建时间或优先级排序。PCB空间结构体PCB数组文档收集自网络,仅用于个人学习就绪队列指针空队列指针函数CREATE()进程创建:从PCB空间申请一个空PCB,填入进程参数,插入就绪队列;KILL()进程终止:将指定的就绪进程移出就绪队列,插入空队列;就绪队列输出函数Display()输出就绪队列中的进程信息,以便观察创建或撤消活动的结果;主函数Main()功能选择、输入新进程参数、调用创建函数、输出就绪队列;输入进程名称、调用终止函数、输出就绪队列;文档收集自网络,仅用于个人学习主界面设计:进程创建、进程撤销、就绪队列显示菜单;数据输入和就绪队列显示区。功能测试:从显示出的就绪队列状态,查看操作的正确与否。(2)详细设计:数据结构定义:结构体PCB:struct PCB char NAME10;long ID;float TIME;int PRIORITY;PCB pcb100;函数设计给出CREATE()、KILL()、Display()、Main()的流程图描述;以CREATE()为例如下:进程已存在输入进程数For循环输入参数插入就绪队优先级大到小排序Menu()是N+1否(3)调试与测试:列出你的测试结果,包括输入和输出。四、实验总结通过这次试验了解到了进城创建与撤销,并对以前的知识进行了复习,通过使用结构体和指针,实行进程的创建与撤销,我的程序设计能力得到提高,文档收集自网络,仅用于个人学习五、附录带注释的源程序。#include<iostream.h>#include<string.h>#include<malloc.h>#include<stdlib.h>#define OK 1#define ERROR 0#define OVERFLOW -2struct PCB /结构体PCBchar NAME20;long ID;float TIME;int PRIORITY;PCB pcb100; /结构体数组typedef struct QNode /单链表 int data;struct QNode *next;QNode,*QueuePtr;typedef struct LinkQueue/链队列QueuePtr front;QueuePtr rear;LinkQueue;LinkQueue R,E;int N,m;/N为当前进程数void menu();int InitQueue()/就绪队、空队的初始化 R.front=R.rear=(QueuePtr)malloc(sizeof(QNode);文档收集自网络,仅用于个人学习 E.front=E.rear=(QueuePtr)malloc(sizeof(QNode); if(!R.front) exit(OVERFLOW); if(!E.front) exit(OVERFLOW); R.front->next=NULL; E.front ->next =NULL; return OK; void create()/进程创建 char name20;long id;float time; int priority; int n;QNode *p;cout<<"请输入要创建进程的数目:"cin>>n; for(int i=1;i<=n;i+)cout<<"进程ID:"cin>>id; for(int j=i-1;j<=N;j+)while(id=pcbj.ID) cout<<"进程ID已存在"<<endl; cout<<"进程ID:"cin>>id; cout<<"进程名:"cin>>name;cout<<"运行时间:"cin>>time;cout<<"优先级:"cin>>priority; N+;/保存当前就绪进程数strcpy(pcbN.NAME,name);pcbN.ID =id;pcbN.TIME =time;pcbN.PRIORITY =priority; p=(QueuePtr)malloc(sizeof(QNode);/插入就绪队列 if(!p) exit(OVERFLOW); p->data=N; p->next=NULL; R.rear->next=p; R.rear=p; for(i=1;i<=N;i+)/按优先级排队for(int j=i+1;j<=N;j+)if(pcbi.PRIORITY<pcbj.PRIORITY) pcb0=pcbi; pcbi=pcbj; pcbj=pcb0;menu();void kill()/进程终止 long id; QNode *p; cout<<"请输入要终止的进程ID:"cin>>id;p=R.front->next;if(p=NULL) cout<<"就绪进程为空!"while(p!=NULL)if(id=pcbN.ID)/终止进程是队列最后一个if(N=1) /队列中只有一个进程,且是终止进程R.front =R.rear;R.front ->next =NULL;N-;cout<<"进程已终止!"break;文档收集自网络,仅用于个人学习else /队列中进程多个while(p!=NULL)if(p->next->next =NULL)p->next =NULL;R.rear =p;N-;cout<<"进程已终止!"break; p=p->next ;文档收集自网络,仅用于个人学习if(id=pcbp->data.ID) if(R.front=R.rear) cout<<endl<<"队列为空 !" while(p!=NULL) pcbp->data=pcbp->data+1;/修改PCB数组里的值 if(p->next ->next =NULL) p->next =NULL;R.rear =p;cout<<"进程已终止!"break; p=p->next; N-; break; p=p->next ;menu(); void display()QNode *p;p=R.front->next; cout<<"ID"<<" "<<"名字"<<" "<<"运行时间"<<" "<<"优先级"<<endl;文档收集自网络,仅用于个人学习while(p!=NULL) cout<<pcbp->data.ID<<""<<pcbp->data.NAME<<" "<<pcbp->data.TIME <<" "<<pcbp->data.PRIORITY<<endl;文档收集自网络,仅用于个人学习 p=p->next ;menu();void exit()/退出系统;exit(0);void main() InitQueue();pcb0.ID =0;menu();void menu()cout<<'n'<<"1.进程创建"<<'n'<<"2.进程撤销"<<'n'<<"3.就绪队列显示"<<'n'<<"4.退出"<<endl;文档收集自网络,仅用于个人学习int choice;cout<<"请选择:"cin>>choice;switch(choice)case 1:create();break;case 2:kill();break;case 3:display();break;case 4:exit();default :exit();专心-专注-专业

    注意事项

    本文(进程创建与撤消(共6页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开