欢迎来到天天文库
浏览记录
ID:59316647
大小:377.35 KB
页数:18页
时间:2020-09-05
《进程管理实验设计报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西南大学《操作系统原理》实验报告实验1进程管理班级:xxxx学号:xxxxxxxxxxxxxxxxxxx姓名:xxxxx上级日期:2018年9月20日成绩:一、实验目的:1、理解进程的概念,明确进程和程序的区别。2、理解并发执行的实质。3、掌握进程的创建、睡眠、撤销等进程控制方法二、实验内容1、源代码#include"stdio.h"/*标准输入输出*/#include"conio.h"/*控制台输入输出*/#include"stdlib.h"/*标准库头文件,包含C常用函数*/structPCB_type{intpid
2、;intyouxianji;intdaxiao;charneirong[10];intstate;/*0表示不在内存,1表示在内存,2表示挂起*/};structPCB_typeneicun[20];intnum=0,guaqi=0,bj,i,j,pid;/*定义相关参数变量*/18/18西南大学《操作系统原理》实验报告/*********************创建新进程*************************/voidcreate(){if(num>=20)/*判断是否有存储空间*/printf("内存
3、已满,请删除或挂起其他程序");else{for(i=0;i<20;i++)if(neicun[i].state==0)break;/*按顺序在内存中寻找创建新进程的空间*/printf("请输入新建进程的pid值");scanf("%d",&neicun[i].pid);for(j=0;j
4、");scanf("%d",&neicun[i].youxianji);printf("请输入新进程的大小");scanf("%d",&neicun[i].daxiao);printf("请输入新进程的内容");scanf("%s",&neicun[i].neirong);18/18西南大学《操作系统原理》实验报告neicun[i].state=1;/*将进程状态设为1,表示在内存中*/num++;/*内存中进程数目加一*/}}/********************查看当前运行进程**********
5、****************/voidrun(){bj=0;for(i=0;i<20;i++)if(neicun[i].state==1)/*若进程状态设为1,表示在内存中,输出查看*/{printf("pid=%d",neicun[i].pid);printf("youxianji=%d",neicun[i].youxianji);printf("daxiao=%d",neicun[i].daxiao);printf("neirong=%s",neicun[i].neirong);bj=1;/*存在于内存中的进
6、程标记为1*/}if(bj==0)printf("当前没有运行该进程");/*标记为0,表示该进程未创建于内存中*/}18/18西南大学《操作系统原理》实验报告/********************换出进程***************************/voidhuanchu(){if(num==0)/*num=0,表示内存中无进程*/{printf("当前没有运行的进程");return;}printf("请输入要换出的进程的pid值");scanf("%d",&pid);bj=0;
7、for(i=0;i<20;i++){if(pid==neicun[i].pid){if(neicun[i].state==1){neicun[i].state=2;/*将该进程的状态设为挂起*/guaqi++;printf("该进程已成功挂起换出");}elseif(neicun[i].state==0)printf("要换出的进程不存在");elseprintf("要换出的进程已经被挂起");bj=1;break;}18/18西南大学《操作系统原理》实验报告}if(bj==0)printf("
8、n要换出的进程不存在");}/********************杀死进程***************************/voidkill(){if(num==0){printf("当前没有运行的进程");return;}printf("请输入要杀死的进程的pid值");scanf("
此文档下载收益归作者所有