操作系统实验二进程管理.docx

上传人:b****6 文档编号:12321316 上传时间:2023-06-05 格式:DOCX 页数:13 大小:145.93KB
下载 相关 举报
操作系统实验二进程管理.docx_第1页
第1页 / 共13页
操作系统实验二进程管理.docx_第2页
第2页 / 共13页
操作系统实验二进程管理.docx_第3页
第3页 / 共13页
操作系统实验二进程管理.docx_第4页
第4页 / 共13页
操作系统实验二进程管理.docx_第5页
第5页 / 共13页
操作系统实验二进程管理.docx_第6页
第6页 / 共13页
操作系统实验二进程管理.docx_第7页
第7页 / 共13页
操作系统实验二进程管理.docx_第8页
第8页 / 共13页
操作系统实验二进程管理.docx_第9页
第9页 / 共13页
操作系统实验二进程管理.docx_第10页
第10页 / 共13页
操作系统实验二进程管理.docx_第11页
第11页 / 共13页
操作系统实验二进程管理.docx_第12页
第12页 / 共13页
操作系统实验二进程管理.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

操作系统实验二进程管理.docx

《操作系统实验二进程管理.docx》由会员分享,可在线阅读,更多相关《操作系统实验二进程管理.docx(13页珍藏版)》请在冰点文库上搜索。

操作系统实验二进程管理.docx

操作系统实验二进程管理

操作系统实验

实验二进程管理

 

学号

姓名

班级

 

华侨大学电子工程系

 

实验目的

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

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

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

实验内容与要求

基本要求:

用C语言编写程序,模拟实现创建新的进程;查看运行进程;换出某个进程;杀死进程等功能。

实验报告内容

1、进程、进程控制块等的基本原理。

进程是现代操作系统中的一个最基本也是最重要的概念,掌握这个概念对于理解操作系统实质,分析、设计操作系统都有其非常重要的意义。

为了强调进程的并发性和动态性,可以给进程作如下定义:

进程是可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。

进程又就绪、执行、阻塞三种基本状态,三者的变迁图如下:

就绪

执行

阻塞

I/O完成时间片完

进程调度

I/O请求

由于多个程序并发执行,各程序需要轮流使用CPU,当某程序不在CPU上运行时,必须保留其被中断的程序的现场,包括:

断点地址、程序状态字、通用寄存器的内容、堆栈内容、程序当前状态、程序的大小、运行时间等信息,以便程序再次获得CPU时,能够正确执行。

为了保存这些内容,需要建立—个专用数据结构,我们称这个数据结构为进程控制块PCB(ProcessControlBlock)。

进程控制块是进程存在的惟一标志,它跟踪程序执行的情况,表明了进程在当前时刻的状态以及与其它进程和资源的关系。

当创建一个进程时,实际上就是为其建立一个进程控制块。

在通常的操作系统中,PCB应包含如下一些信息:

1进程标识信息。

为了标识系统中的各个进程,每个进程必须有惟一的标识名或标识数。

②位置信息。

指出进程的程序和数据部分在内存或外存中的物理位置。

③状态信息。

指出进程当前所处的状态,作为进程调度、分配CPU的依据。

④进程的优先级。

一般根据进程的轻重缓急其它信息。

这里给出的只是一般操作系统中PCB所应具有的内容,不同操作系统的PCB结构是不同的,我们将在节介绍Linux系统的PCB结构。

程度为进程指定一个优先级,优先级用优先数表示。

⑤进程现场保护区。

当进程状态变化时(例如一个进程放弃使用CPU),它需要将当时的CPU现场保护到内存中,以便再次占用CPU时恢复正常运行,有的系统把要保护的CPU现场放在进程的工作区中,而PCB中仅给出CPU现场保护区起始地址。

⑥资源清单。

每个进程在运行时,除了需要内存外,还需要其它资源,如I/O设备、外存、数据区等。

这一部分指出资源需求、分配和控制信息。

⑦队列指针或链接字。

它用于将处于同一状态的进程链接成一个队列,在该单元中存放下一进程PCB首址。

⑧其它信息。

这里给出的只是一般操作系统中PCB所应具有的内容,不同操作系统的PCB结构是不同的,我们将在节介绍Linux系统的PCB结构。

2、程序流程图。

功能选择(输入1~6)

开始

1

create

创建新进程

2

Run

查看运行的进程

3

Huanchu

换出进程

4

Kill

杀死进程

5

Huanxing

唤醒进程

6

Viewall

查看内存的状态

7

Exit(0)

结束进程模拟程序

操作结束

 

 

3、程序及注释。

#include<>

#include<>

#include<>

structjincheng_type{huangtai==0)break;id));

for(intj=0;j

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

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

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

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

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

neicun[i].zhuangtai=1;huangtai==1)id);

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

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

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

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

flag=1;

}

}

if(!

flag)printf("\n当前没有运行进程\n");id)

{

if(neicun[i].zhuangtai==1)huangtai=2;

guaqi++;

printf("\n已经成功换出进程\n");

}

elseif(neicun[i].zhuangtai==2)printf("\n要唤出的进程已被挂起\n");id)

{

if(neicun[i].zhuangtai==1)huangtai=0;huangtai==2)huangtai=0;

shumu--;

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

}

flag=1;

break;

}

}

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

{

flag=false;

if(neicun[i].zhuangtai==2)huangtai=1;

guaqi--;

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

}

elseif(neicun[i].zhuangtai==2)printf("\n要唤醒的进程已被挂起\n");id);

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

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

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

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

}

}

 

voidmain()huangtai=0;

while(n)

{

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

printf("\n3.唤出某个进程4.杀死某个进程\n");

printf("\n5.唤醒某个进程6.查看内存状态\n");

printf("\n7.退出进程\n");

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

printf("\n请选择(1-7)\n");

scanf("%d",&num);

switch(num)//功能选择

{

case1:

create();break;

case2:

run();break;

case3:

huanchu();break;

case4:

kill();break;

case5:

huanxing();break;

case6:

viewall();break;

case7:

exit(0);

default:

n=0;

}

flag=0;

}

}

4、程序运行演示与截图

(1)创建新进程,依次建立进程1、2、3,图中为建立进程2。

(2)查看运行的进程与查看内存状态

(2)换出进程。

图中以换出进程3为例。

(4)此时再次查看运行的进程与查看内存状态,可以看到进程3已不在运行的进程中,内存状态中其zhuangtai标识等于2,表明进程3确实已被换出。

(5)唤醒进程。

图为将进程3唤醒。

(6)此时再次查看运行的进程与查看内存状态,可以看到进程3重新出现在运行的进程中,且内存状态中其zhuangtai标识等于1,表明进程3已被成功唤醒。

(7)杀死进程。

图中以杀死进程3为例,并附以杀死后运行的进程与内存状态图,内存状态中进程3的zhuangtai=0,表示进程3已被杀死。

 

5、实验结论

通过这次实验,我了解到进程控制块(PCB)在进程管理中的重要作用,它跟踪程序执行的情况,表明了进程在当前时刻的状态以及与其它进程和资源的关系。

多个程序并发的执行需要依靠对PCB的控制来实现。

 

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

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2