欢迎来到天天文库
浏览记录
ID:39810259
大小:79.68 KB
页数:9页
时间:2019-07-11
《实验二-实验报告(进程管理)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二模拟实现进程管理组长:李和林软件1402组员分工一、实验目的1.理解进程的概念,明确进程和程序的区别。2.理解并发执行的实质。3.掌握进程的创建,睡眠,撤销等进程控制方法。二、实验内容用C语言,JAVA语言,C++语言编写程序,模拟实现创建新的进程;查看运行进程,换出某个进程;杀死运行进程。三、实验准备1.进程的定义进程是程序在一个数据集合上的运行过程,是系统资源分配和调度的一个独立单位。一个程序在不同的数据集合上运行,乃至一个程序在同样数据集合上的多次运行都是不同的进程。2.进程的状态通常情况下,一个进程必须具有就绪,执行和阻塞三种基本情况。1)就绪状态当进程
2、已分配到除处理器外的所有必要资源后,只要再获得处理器就可以立即执行,这时进程的状态就为就绪状态。在一个系统里,可以有多个进程同时处于就绪状态,通常把这些就绪进程排成一个或多个队列,称为就绪队列。2)执行状态处于就绪状态的进程一旦获得处理器,就可以运行,进程状态也就处于执行状态,在单处理器系统中,只能有一个进程处于执行状态,在多处理器系统中,则可能有多个进程处于执行状态3)阻塞状态正在执行的进程因为发生某些事件而暂停运行,这种受阻暂停的状态称为阻塞状态,也可称为等待状态。通常将处于阻塞状态的进程拍成一个队列,称为阻塞队列,在有些系统中,也会按阻塞原因的不同将阻塞状态的进
3、程排成多个队列。1.进程状态之间的转换接纳完成中断调度阻塞执行终止就绪新进程I/O请求I/O完成1.进程控制块1)进程控制块的作用进程控制块是进程实体的重要组成部分,主要包含下述四个方面的信息:a)进程标示信息b)说明信息c)现场信息d)管理信息2.进程控制块的组织方式1)链接方式2)索引方式3.进程控制原语1)创建原语2)撤销原语3)阻塞原语4)唤醒原语4.程序代码#include#includeusingnamespacestd;voidclrscr();voidcreate();voidrun();voidexchange(
4、);//唤出voidkill();voidwakeUp();//唤醒structprocess_type{intpid;intpriority;//优先次序intsize;intstate;//状态charinfo[10];};structprocess_typeinternalMemory[20];intamount=0,hangUp=0,pid,flag=0;//数目,挂起voidmain(){intn;inta;n=1;clrscr();while(n==1){cout<<"******************************************
5、**";cout<<"*进程演示系统*";cout<<"********************************************";cout<<"1.创建新的进程2.查看运行进程";cout<<"3.换出某个进程4.杀死运行进程";cout<<"5.唤醒某个进程¨6.退出系统";cout<<"*********************************************"<>a;switch(a){case1:create();break;case2:run();break
6、;case3:exchange();//换出break;case4:kill();break;case5:wakeUp();break;case6:exit(0);default:n=0;}}}voidcreate(){//创建进程inti=0;if(amount>=20){cout<<"内存已满,请先结束或换出进程";}else{for(i=0;i<20;i++){if(internalMemory[i].state==0){break;}}cout<<"请输入新进程的pid:"<>internalMemory[i].pid;cout<<"请输入
7、新进程的优先级:"<>internalMemory[amount].priority;cout<<"请输入新进程的大小:"<>internalMemory[amount].size;cout<<"请输入新进程的内容:"<>internalMemory[amount].info;internalMemory[i].state=1;amount++;}}voidclrscr()//清除内存空间{for(inti=0;i<19;i++){internalMemory[i].pid=0;intern
此文档下载收益归作者所有