进程管理实验设计报告.docx

上传人:b****3 文档编号:27098216 上传时间:2023-06-27 格式:DOCX 页数:15 大小:194.74KB
下载 相关 举报
进程管理实验设计报告.docx_第1页
第1页 / 共15页
进程管理实验设计报告.docx_第2页
第2页 / 共15页
进程管理实验设计报告.docx_第3页
第3页 / 共15页
进程管理实验设计报告.docx_第4页
第4页 / 共15页
进程管理实验设计报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

进程管理实验设计报告.docx

《进程管理实验设计报告.docx》由会员分享,可在线阅读,更多相关《进程管理实验设计报告.docx(15页珍藏版)》请在冰豆网上搜索。

进程管理实验设计报告.docx

进程管理实验设计报告

实验1进程管理

班级:

xxxx学号:

xxxxxxxxxxxxxxxxxxx姓名:

xxxxx

上级日期:

2018年9月20日成绩:

一、实验目的:

1、理解进程的概念,明确进程和程序的区别。

2、理解并发执行的实质。

3、掌握进程的创建、睡眠、撤销等进程控制方法

二、实验内容

1、源代码

#include"stdio.h"/*标准输入输出*/

#include"conio.h"/*控制台输入输出*/

#include"stdlib.h"/*标准库头文件,包含C常用函数*/

structPCB_type

{intpid;

intyouxianji;

intdaxiao;

charneirong[10];

intstate;/*0表示不在内存,1表示在内存,2表示挂起*/

};

structPCB_typeneicun[20];

intnum=0,guaqi=0,bj,i,j,pid;/*定义相关参数变量*/

/*********************创建新进程*************************/

voidcreate()

{

if(num>=20)/*判断是否有存储空间*/

printf("\n内存已满,请删除或挂起其他程序");

else{

for(i=0;i<20;i++)

if(neicun[i].state==0)break;/*按顺序在内存中寻找创建新进程的空间*/

printf("\n请输入新建进程的pid值\n");

scanf("%d",&neicun[i].pid);

for(j=0;j

if(neicun[j].pid==neicun[i].pid)

{printf("\n该进程已存在于内存中");

return;

}

printf("\n请输入新进程的优先级\n");

scanf("%d",&neicun[i].youxianji);

printf("\n请输入新进程的大小\n");

scanf("%d",&neicun[i].daxiao);

printf("\n请输入新进程的内容\n");

scanf("%s",&neicun[i].neirong);

neicun[i].state=1;/*将进程状态设为1,表示在内存中*/

num++;/*内存中进程数目加一*/

}

}

/********************查看当前运行进程**************************/

voidrun()

{bj=0;

for(i=0;i<20;i++)

if(neicun[i].state==1)/*若进程状态设为1,表示在内存中,输出查看*/

{printf("\npid=%d",neicun[i].pid);

printf("youxianji=%d",neicun[i].youxianji);

printf("daxiao=%d",neicun[i].daxiao);

printf("neirong=%s",neicun[i].neirong);

bj=1;/*存在于内存中的进程标记为1*/

}

if(bj==0)

printf("\n当前没有运行该进程\n");/*标记为0,表示该进程未创建于内存中*/

}

/********************换出进程***************************/

voidhuanchu()

{if(num==0)/*num=0,表示内存中无进程*/

{printf("\n当前没有运行的进程\n");

return;

}

printf("\n请输入要换出的进程的pid值\n");

scanf("%d",&pid);

bj=0;

for(i=0;i<20;i++)

{

if(pid==neicun[i].pid)

{if(neicun[i].state==1)

{neicun[i].state=2;/*将该进程的状态设为挂起*/

guaqi++;

printf("\n该进程已成功挂起换出\n");

}

elseif(neicun[i].state==0)

printf("\n要换出的进程不存在\n");

elseprintf("\n要换出的进程已经被挂起\n");

bj=1;break;

}

}

if(bj==0)printf("\n要换出的进程不存在\n");

}

/********************杀死进程***************************/

voidkill()

{

if(num==0)

{printf("\n当前没有运行的进程\n");

return;

}

printf("\n请输入要杀死的进程的pid值\n");

scanf("%d",&pid);

bj=0;

for(i=0;i<20;i++)

{

if(pid==neicun[i].pid)

{if(neicun[i].state==1)

{neicun[i].state=0;/*将该进程的状态设为不在内存中*/

num--;/*内存中的进程数目减少一个*/

printf("\n该进程已成功杀死\n");

}

elseif(neicun[i].state==0)

printf("\n要杀死的进程不存在\n");

elseprintf("\n要杀死的进程已经被挂起\n");/*剩余状态为2,挂起*/

bj=1;break;

}

}

if(bj==0)printf("\n要杀死的进程不存在\n");

}

/********************唤醒进程***************************/

voidhuanxing()

{

if(num==0)

{printf("当前没有运行的进程\n");

return;

}

if(guaqi==0)/*guaqi=0,表示没有挂起的进程*/

{printf("\n当前没有换出的进程\n");

return;

}

printf("\n请输入要唤醒的进程的pid值:

\n");

scanf("%d",&pid);

for(i=0;i<20;i++){

if(pid==neicun[i].pid)

{

if(neicun[i].state==2)

{neicun[i].state=1;/*将该进程的状态设为挂起*/

guaqi--;

num++;

printf("\n该进程已成功唤醒\n");

}

elseif(neicun[i].state==0)

printf("\n要唤醒的进程不存在\n");

elseprintf("\n要唤醒的进程已经在内存中\n");

}

}

}

/********************主程序***************************/

voidmain()

{intxuhao,n=1,i;

for(i=0;i<20;i++)

neicun[i].state=0;/*使所有进程都初始设为不在内存中*/

while(n){

printf("\n**********************************************");

printf("\n*进程演示系统*");

printf("\n**********************************************");

printf("\n1.创建新的进程2.查看运行进程");

printf("\n3.换出某个进程4.杀死运行进程");

printf("\n5.唤醒某个进程6.退出程序");

printf("\n**********************************************");

printf("\n请选择(1~6):

");

scanf("%d",&xuhao);

switch(xuhao)

{

case1:

create();break;

case2:

run();break;

case3:

huanchu();break;

case4:

kill();break;

case5:

huanxing();break;

case6:

exit(0);

default:

n=0;

break;

}

}

}

2、流程图

分:

①创建进程

 

②查看进程

③唤出进程

 

④杀死进程

 

⑤唤醒进程

 

合:

 

 

三、实验结果

1、创建进程

 

2、查看运行进程

 

3、换出进程

 

4、杀死运行进程

 

5、唤醒进程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1