操作系统实验二---进程管理(共17页).doc
《操作系统实验二---进程管理(共17页).doc》由会员分享,可在线阅读,更多相关《操作系统实验二---进程管理(共17页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上操作系统实验实验二 进程管理学号 姓名 班级 华侨大学电子工程系实验目的 1、 理解进程的概念,明确进程和程序的区别。2、 理解并发执行的实质。3、 掌握进程的创建、睡眠、撤销等进程控制方法。 实验内容与要求 基本要求:用C语言编写程序,模拟实现创建新的进程;查看运行进程;换出某个进程;杀死进程等功能。 实验报告内容1、进程、进程控制块等的基本原理。进程是现代操作系统中的一个最基本也是最重要的概念,掌握这个概念对于理解操作系统实质,分析、设计操作系统都有其非常重要的意义。为了强调进程的并发性和动态性,可以给进程作如下定义:进程是可并发执行的程序在一个数据集合上的运行过
2、程,是系统进行资源分配和调度的一个独立单位。进程又就绪、执行、阻塞三种基本状态,三者的变迁图如下:就绪 I/O完成 时间片完 进程调度执行阻塞 I/O请求由于多个程序并发执行,各程序需要轮流使用CPU,当某程序不在CPU上运行时,必须保留其被中断的程序的现场,包括:断点地址、程序状态字、通用寄存器的内容、堆栈内容、程序当前状态、程序的大小、运行时间等信息,以便程序再次获得CPU时,能够正确执行。为了保存这些内容,需要建立个专用数据结构,我们称这个数据结构为进程控制块PCB (Process Control Block)。进程控制块是进程存在的惟一标志,它跟踪程序执行的情况,表明了进程在当前时刻
3、的状态以及与其它进程和资源的关系。当创建一个进程时,实际上就是为其建立一个进程控制块。在通常的操作系统中,PCB应包含如下一些信息: 进程标识信息。为了标识系统中的各个进程,每个进程必须有惟一的标识名或标识数。 位置信息。指出进程的程序和数据部分在内存或外存中的物理位置。 状态信息。指出进程当前所处的状态,作为进程调度、分配CPU的依据。 进程的优先级。一般根据进程的轻重缓急其它信息。这里给出的只是一般操作系统中PCB所应具有的内容,不同操作系统的PCB结构是不同的,我们将在2.8节介绍Linux系统的PCB结构。程度为进程指定一个优先级,优先级用优先数表示。 进程现场保护区。当进程状态变化时
4、(例如一个进程放弃使用CPU),它需要将当时的CPU现场保护到内存中,以便再次占用CPU时恢复正常运行,有的系统把要保护的CPU现场放在进程的工作区中,而PCB中仅给出CPU现场保护区起始地址。 资源清单。每个进程在运行时,除了需要内存外,还需要其它资源,如I/O设备、外存、数据区等。这一部分指出资源需求、分配和控制信息。 队列指针或链接字。它用于将处于同一状态的进程链接成一个队列,在该单元中存放下一进程PCB首址。其它信息。这里给出的只是一般操作系统中PCB所应具有的内容,不同操作系统的PCB结构是不同的,我们将在2.8节介绍Linux系统的PCB结构。2、 程序流程图。开始功能选择(输入1
5、6)操作结束7Exit(0)结束进程模拟程序6Viewall查看内存的状态5Huanxing唤醒进程4Kill杀死进程2Run查看运行的进程3Huanchu换出进程1create创建新进程3、程序及注释。 #include#include#includestruct jincheng_type / 定义表示进程信息的结构体int pid; /进程IDint youxian;/优先级int daxiao;/大小int zhuangtai;/进程的状态,这里用0表示没有建立或被杀死,1表示执行,2表示换出int info;/内容;struct jincheng_type neicun20;/定义2
6、0个内存单位给进程使用int shumu=0,guaqi=0,pid,flag=0; /定义正在执行进程数目,被挂起进程数目,进程ID,运行标志位void create() /函数创建一个新进程if(shumu=20)printf(n内存已满,请先换出或杀死进程n);/判断内存空间是否已满elsefor(int i=0;i20;i+) if(neicuni.zhuangtai=0) break;/选出空着的内存单元给新进程使用printf(n请输入新进程pidn);/输入新进程ID存至选出的内存单元scanf(%d,&(neicuni.pid);for(int j=0;ji;j+)if(nei
7、cuni.pid=neicunj.pid)/当输入的新进程与原有进程ID相同时,显示“该进程已存在”printf(n该进程已存在n);return;printf(n请输入新进程优先级n);/输入新进程的优先级、大小和内容scanf(%d,&(neicuni.youxian);printf(n请输入新进程大小n);scanf(%d,&(neicuni.daxiao);printf(n请输入新进程内容n);scanf(%d,&(neicuni.info);neicuni.zhuangtai=1;/将新进程的内存单元状态(zhuangtai)设成“1”,以表示存在且未被换出shumu+;/正在运行的
8、进程数目加一void run()/函数查看正在运行的进程for(int i=0;i20;i+)if(neicuni.zhuangtai=1)/将存在且未被挂起(即zhuangtai=1)的进程显示出来,若存在这样的程序,则将flag设成1printf(n pid=%d,neicuni.pid);printf(youxian=%d,neicuni.youxian);printf(daxiao=%d,neicuni.daxiao);printf(zhuangtai=%d,neicuni.zhuangtai);printf(info=%d,neicuni.info);flag=1;if(!flag)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 进程 管理 17
限制150内