进程管理习题及答案

进程管理习题及答案
进程管理习题及答案

进程管理习题答案一.选择题.时进程从阻塞状态变为就绪状态1.在进程管理中,当.等待某一事件B A. 进程被进程调度程序选中.时间片用完D C.等待的事件发生

C答:。2.分配到必要的资源并获得处理机时的进程状态是

.执行状态B A.就绪状态

.撤消状态D C.阻塞状态

B答:。V操作是3.P、.两组不同的机器指令B .两条低级进程通信原语A.两条高级进程通信原语D .两条系统调用命令C

A答:。.对进程的管理和控制使用4.原语 B A.指令

.信箱通信 D C.信号量

B答:。5.进程的并发执行是指若干个进程

.在执行的时间上是重叠的 B A.同时执行

.共享系统资源D C.在执行的时间上是不可重叠的B答:等待进程。1,则表示有初值为6.若P、V操作的信号量S2,当前值为-个3D.2.1个 C .个0A.个B B答:7.进程的三个基本状态在一定条件下可以相互转化,进程由就绪状态变为运行状态的条件。②①;由运行状态变为阻塞状态的条件是是

.等待某事件发生B A.时间片用完

.被进程调度程序选中D C.等待的某事件己发生

B②答,①D

变化是不可能发生的。8.下列的进程状态变化中,

.运行一等待 B A.运行一就绪

.等待一就绪D .等待一运行C C答:。.一个运行的进程用完了分配给它的时间片后,它的状态变为9.等待 B .就绪A

.由用户自己确定D .运行C.

A答:。10.用P、V操作管理临界区时,信号量的初值应定义为.任意值D B..1 A.一1

C答:.11.用V操作唤醒一个等待进程时,被唤醒进程的状态变为

.完成D C.运行.就绪 B A.等待B答:关系。.进程间的同步是指进程间在逻辑上的相互12.调用D继续B.制约 C. A.联接

B答:操作的特殊变量。操作和V 是一种只能进行P13.

.信号量 D .进程C.同步.调度A B D答:。14.下面对进程的描述中,错误的是

.进程执行需要处理机B A.进程是动态的概念

.进程是指令的集合D C.进程是有生命期的

D答:。15.下面的叙述中正确的是

.操作系统的一个重要概念是进程,因此不同进程所执行的代码也一定不同。A.为了避免发生进程死锁,各进程只能逐个申请资源。B中读出与本身运行状况有关的信息PCBPCB管理进程,用户进程可以从此C.操作系统用.进程同步是指某些进程之间在逻辑上的相互制约关系D D答:16.进程控制就是对系统中的进程实施有效的管理,通过使用、进程撤销、进程阻塞、进程唤醒等进程控制原语实现。.进程管理 B A.进程运行

.进程同步D C.进程创建

C答:对进程进行管理。17.操作系统通过

CHCTD.DCT C B.PCB ..AJCB

B答:互斥问题。、18.用PV操作可以解决

.错误D B .某些C.正确A.一切A答:。19.通常,用户进程被建立后,.便一直存在于系统中,直到被操作人员撤消A.随着作业运行正常或不正常结束而撤消B.

.随着时间片轮转而撤消与建立C.随着进程的阻塞或唤醒而撤消与建立D B答:。.一个进程被唤醒意味着20.它的优先权变为最大B CPU A.该进程重新占有了

.进程变为就绪状态D C.其PCB移至等待队列队首

D答:不是创建进程所必需的。21.下面所述步骤中,

.建立一个进程控制块B A.由调度程序为进程分配CPU

.将进程控制块链入就绪队列 D C.为进程分配内存

A答:为基本单位。22.多道程序环境下,操作系统分配资源以

.作业 D B.指令 C. 进程A.程序

答:C

。mutex,若mutex=0,则23.对于两个并发进程,设互斥信号量为.表示没有进程进入临界区A.表示有一个进程进入临界区B.表示有一个进程进入临界区,另一个进程等待进入C.表示有两个进程进入临界区D B 答:24.两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来消息,或。者建立某个条件后再向前执行,这种制约性合作关系被称为进程的

.执行D C.调度.同步B.互斥A A 答:25.为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据。的方式进行,这种方式称为.进程通信D.进程制约.进程互斥B.进程同步CA答:D

26.设有5个进程共享一个互斥段,如果最多允许有3个进程同时进入互斥段,则所采用的。互斥信号量的初值应是

0D. B ..1 A.5

B答:27.支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行来实现CPU的共不是引起操作系统选择新进程的直接原因。享,但其中

运行进程出错B. A. 运行进程的时间片用完有新进程进入就绪状态D. —C. 运行进程要等待某事件的发生

D答:

。.在多道程序设计系统中,多个计算问题同时装入计算机系统的主存储器28.顺序执行B A.并发执行

.同时执行D 并行执行 C.

A答:。.引入多道程序设计技术后,处理器的利用率29.极大地提高B.有所改善A

.无变化,仅使程序执行方便 D C.降低了

B答:单位时间的算题量,但对每一个算30.从总体上说,采用多道程序设计技术可。题,从算题开始到全部完成所需的时间比单道执行所需的时间可能要

.增加,延长 B A.增加,减少.减少,减少 D C. 减少,延长B答:的进程。31.同一程序运行在不同的数据集上,创建了

.互斥B A.同步

.不同D C. 相同

D答:二.填空题、独立性、异步性及结构特征。①、②1.进程的基本特征有

②并发性答:①动态性

当信号量值小于零时其绝对值表示;①.信号量的物理意义是当信号量值大于零时表示2。

②因请求该资源而被阻塞的进程数目答:①可用资源的数目

。①,而临界区是指②3.临界资源的概念是

答:①一次仅允许一个进程访问的资源②进程中访问临界资源的那段程序代码。、③、

②4.进程在运行过程中有三种基本状态,它们是①

③等待(阻塞)②就绪答:①运行

5.进程主要由①、②、③三部分内容组成,其中④是进程存在的唯一标志,而

部分也可以为其他进程共享。⑤

⑤程序段④PCB ②数据段③PCB 答:①程序段。6.系统中各进程之间逻辑上的相互制约关系称为

答:进程同步。7:若一个进程己进入临界区,其他欲进入临界区的进程必须

答:等待链接在一起就形成了进程队列。.将进程的8

PCB答:

9.用P、V操作管理临界区时,任何一个进程在进入临界区之前应调用①操作,在退出操作。临界区时应调用②V ②答:①P

两条基本原语。和②10.用信箱实现通信时,应有①②接收答:①发送11.在多道程序系统中,进程之间存在着的不同制约关系可以划分为两类:①与②。是指进程间在使用共享资源方面的约束关系。④指进程间具有的一定逻辑关系;③

④互斥②互斥③同步答:①同步

12.有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信。

号量值的变化范围是

1)-1至-(m答:种情况:4.设系统中有n(n>2)个进程,且当前不再执行进程调度程序,试考虑下述13个进程处于等待状态。n①没有运行进程,有2个就绪进程,进程处于等待状态。1n一②有1个运行进程,没有就绪进程,进程处于等待状态。2n一⑨有1个运行进程,有1

个就绪进程,个就绪进程,没有进程处于等待状态。1n一④有1个运行进程,。上述情况中,不可能发生的情况是

答:①14.在一个单处理机系统中,若有5个用户进程,且假设当前时刻为用户态,则处于就绪状个。②①个,最少有态的用户进程最多有

0 ②答:①4

15.操作系统中,对信号量S的P原语操作定义中,使进程进入相应等待队列等待的条件。是S<0答:。16.下面关于进程的叙述不正确的是

得不到满足时,其状态变为等待状态。CPU①进程申请系统中,任一时刻至多有一个进程处于运行状态。CPU②在单③优先级是进行进程调度的重要依据,一旦确定不能改变。④进程获得处理机而运行是通过调度而实现的。答:③由若干格子组成,中存放有关信箱的描述。

②①和②两部分。①17.信箱逻辑上分成

每格存放一信件,格子的数目和大小在创建信箱时确定。②信箱体答:①信箱头

状态的进.当多个进程等待分配处理机时,系统按一种规定的策略从多个处于18状态。程中选择一个进程,让它占有处理机,被选中的进程就进入了

答:就绪、执行进程调度算法。.若使当前运行的进程总是优先级最高的进程,应选择19.

答:抢占式(剥夺式)。20.操作系统中用于完成一些特定功能的、不可中断的过程称为

答:原语三.简答题??它与程序的关系是怎样的1.在操作系统中为什么要引入进程概念答:在操作系统中,由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统中

各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。这些都是在程序执行的动态过程中发生的。用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。为此,人们引入“进程”这一概念来描述程序动态执行过程的性质。进程和程序是既有联系又有区别的两个概念,进程不能脱离具体程序而虚设,程序规定了相应进程所要完成的动作。它们的主要区别如下:(1)程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念;进程是程序在处理机上的一次执行过程,它是一个动态概念。(2)程序的存在是永久的,而进程则是有生命期的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤销而消亡。程序仅是指令的有序集合。而进程则由程序、数据和进程控制块组成。(3)在传统的操作系统中,进程是资源分配和调度运行的基本单位,而程序不是。(4)(5)进程与程序之间不是一一对应的,即同一程序同时运行于若干不同的数据集合上,它将属于若干个不同的进程;而一个进程至少对应执行一个程序。2.为了实现并发进程间的合作和协调工作,以及保证系统的安全,操作系统在进程管理方?面应做哪些工作答:(1)进程控制:系统必须设置一套控制机构来实现进程创建、进程撤消以及进程在运行过程中的状态转换。(2)进程同步:系统必须设置同步机制来实现对所有进程的运行进行协调,协调的方式包括进程的互斥和进程的同步。

(3)进程通信:多道程序环境下可能需要诸进程合作完成一个任务,这些进程相互间需要通的能力。)过交换信息来协调各自工作的进度。因此系统必须具有进程之间通信(交换信息(4)进程调度:系统必须能够在处理机空闲时,按一定算法从就绪进程队列中选择一个就绪进程,把处理机分配给它,并为之设置运行的现场使其投入运行。.在操作系统中引入线程概念的主要目的是什么?3答:减少程序并发执行时所需付出的时空开销,提高程序执行的并发度。特别有利于共模型。/s享存储器的多处理机系统,和更加适合c4.在一个单CPU的多道程序设计系统中,若在某一时刻有N个进程同时存在,那么处于运行态、等待态和就绪态进程的最小和最大值分别可能是多少?答:若多道程序设计系统中,在某一时刻有N个进程同时存在,则处于运行态的进程个;处于等待态的进程最少1—N个,最大0个;处于就绪态的进程最少1个,最大0最少.个。个,最大N05.进程之间存在哪几种相互制约关系?各是什么原因引起的?下列活动分别属于哪种制约关?系若干同学去图书馆借书;(1)两队举行篮球比赛;(2)流水线生产各道工序;

(3)商品生产和社会消费(4)答:进程之间的制约关系分为直接制约关系(即同步)和间接制约关系(即互斥)。同步是因合作进程之间协调彼此的工作而控制自己的执行速度,即因相互合作、相互等待而产生的制约关系;而互斥是进程之间竞争临界资源而禁止两个以上的进程同时进入临界区所发生的制约关系。属于互斥关系,因为一本书只能借给一个同学。(1)

属于互斥关系,篮球只有一个,两队都要争夺。(2)

居于同步关系,各道工序的开始都依赖前一道工序的完成。(3)

属于同步关系,商品没生产出来则消费无法进行,商品没有消费完则无须再生产。(4)

6.为了让用户进程互斥地进入临界区,可以把整个临界区实现成不可中断的过程,即让用户具有屏蔽所有中断的能力。每当用户程序进入临界区的时候,屏蔽所有中断;当出了临界区的时候,再开放所有中断。你认为这种方法有什么缺点。答:用户进程进入临界区时屏蔽所有中断,应当也包括系统程序。若屏蔽的是用户进程,的确可以保护临界资源,但若系统所发出的中断也被屏蔽,则会引起错误,因为系统的中断往往与当前运行的程序无关,却可能是一些重要的硬件中断,如电源故障等,故不可盲目屏则更应该及时响应处理。又或者当时发出故障中断的中断源恰好是该临界资源,蔽所有中断;个进程共享一个互斥段,对于如下两种情况:n7.设有如果每次只允许一个进程进入互斥段;(1))同时进入互斥段。m

B并行工作,假定CPU利用率达到50%,?15分钟系统开销,请问系统效率能提高多少另加分钟9050%=/共用的CPU时间为:(18十27)和解:在多道系统中,程序AB系统效率提高=(A 和B单独执行的时间总和-多道方式下总时间)/A和B单独执行的时间%=

301504590)(6015))(9090)((60总和,即十-十/十=/2.在测量控制系统中,数据采集任务把所采集的数据送入一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两者共享单缓冲区的同步算法。.

表示缓冲区中是否有可供打印的,信号量sf解:在本题中,应设置两个信号童sf,se

。用于表示缓冲区有无空位置存放新的信息,其初值为1计算结果,其初值为o;信号量se本题的同步描述如下:int se=1;int sf=0;main( ){cobegin

get ( ) ;pute ( );coend

}get ( ){)采集工作未完成while (

{

采集一个数据;p(se);将数据送入缓冲区;v(sf);}

}pute ( ){)while (计算工作未完成{p(sf);

从缓冲区中取出数据;

v(se);

进行数据计算;

}}3.下图给出了四个进程合作完成某一任务的前趋图,试说明这四个进程间的同步关系并用操作描述它。VP、

完S3、S2可以开始执行。S3、S2结束后,S1先执行。当Sl解:上图说明任务启动后

成后,S4才能开始执行。为了确保这一执行顺序,设三个同步信号量b2、b3、b4分别表示。这四个进程的同步描述如下:是否可以开始执行,其初值均为0S3、S4进程S2、int b2=0;int b3=0; int b4=0;main ( ){cobegin s1 ( );

s2 ( );

s3 ( );

s4 ( );

coend}s1 ( ){…v(b2);v(b3);}s2 ( ){p(b2);…v(b4);}s3 ( ){p(b3);…v(b4);} s4 ( ){p(b4);*/操作操作,因此这里要用两个作了完成后均对和因在p(b4); /*s2s3b4vp….}.某系统的进程状态转换图如下,请说明:4

?)引起各种状态转换的典型事件有哪些(1(2)当我们观察系统中某些进程时,能够看到某一进程产生的一次状态转换能引起另一进程作一次状态转换。在什么情况下,当一个进程发生转换3时能立即引起另一个进程发生转换l?试说明是否会发生下述因果转换:3)(

23

1 4

答:(1)在本题所给的进程状态转换图中.存在四种状态转换。当进程调度程序从就绪队列中选取一个进程投入运行时引起转换1;正在执行的进程如因时间片用完而被暂停执行就会引起转换2;正在执行的进程因等待的事件尚未发生而无法执行(如进程请求完成I/O)。则会引起转换4I/O完成)(则会引起转换3;当进程等待的事件发生时如(2)如果就绪队列非空,则一个进程的转换3会立即引起另一个进程的转换1。这是因为一个进程发生转换3意味着正在执行的进程由执行状态变为阻塞状态,这时处理机空闲,进程调度程序必然会从就绪队列中选取一个进程并将它投入运行,因此只要就绪队列非空,一个进。1程的转换3能立即引起另一个进程的转换(3)所谓因果转换指的是有两个转换,一个转换的发生会引起另一个转换的发生,前一个转换称为因,后一个转换称为果,这两个转换称为因果转换。当然这种因果关系并不是什么时候都能发生,

而是在一定条件下才会发生。 2 1:发生转换2时,就必然引起另一进程的转换1。因为当发生转换2时,正在执行的进程从执行状态变为就绪状态,进程调度程序必然会从就绪队列中选取一个进程投入运。行,即发生转换132:某个进程的转换3决不可能引起另一进程发生转换2。这是因为当前执行进程从执行状态变为阻塞状态.不可能又从执行状态变为就绪状态。41:当处理机空闲且就绪队列为空时,某一进程的转换4就会引起该进程的转换1。因为此时处理机空闲,一旦某个进程发生转换4,就意味着有一个进程从阻塞状态变为就绪状态,因而调度程序就会将就绪队列中的此进程投入运行。5.某车站售票厅,任何时刻最多可容纳20

名购票者进入,当售票厅中少于20名购票者时,厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:

(1)用PV操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。

(2)根据所定义的信号量,把应执行的P、V操作填入下面横线上,以保证进程能够正确地并发执行。.

(3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。答:(1)定义一信号量S,初始值为20,其意义如下:

S>0 S的值表示可继续进入售票厅的人数

S=0 表示售票厅中已有20名顾客(购票者)

S<0 |S|的值为等待进入售票厅的人数

(2)根据所定义的信号量,把应执行的P、V操作填入下面横线上,以保证进程能够正确地并发执行。

COBEGIN PROCESS Pi(i=1,2,……)

begin;

P(S)

进入售票厅;

购票;

退出;

V(S)

end;

COEND

(3) S的最大值为20;S的最小值为20-n

6.理发店里有一位理发师,一把理发椅和N把供等候理发的顾客坐的椅子.如果没有顾客,则理发师便在理发椅上睡觉.当一个顾客到来时,他必须先唤醒理发师.如果顾客到来时理发师正在理发,则如果有空椅子,可坐下来等;否则离开。解:定义信号量如下:n}semaphore; {位子数目,初值为Var Sn:

1}semaphore; {理发师睡觉,初值为S:

1}初值为mutex: semaphore; {

操作实现如下:VP、用i:顾客进程

}P(Sn);{门外观望P(mutex);进门;V(mutex);}{if(sn==n-1) v(s); V(S);

等候;理发;V(Sn)P(mutex);出门;V(mutex);

:理发师进程Repeat P(S);

P(mutex);

叫人理发;

V(mutex);

理发;

Until false;7.试写出用加锁原语和开锁原语实现两个进程关于临界资源的操作的描述。Program test 答:begin

) 表示该资源可用s:=0 (cobegin (1)

A: begin

; 加锁原语A; 临界区; 开锁原语┇

end

B: begin

┇; 加锁原语B; 临界区; 开锁原语┇

end

conend

end

8. 桌子上有一只盘子,每次只能放入一只水果。爸爸专向盘中放苹果,妈妈专向盘中放桔子,一个儿子专等吃盘中的桔子,一个女儿专等吃盘中的苹果。请利用P、V操作实现他们之间的同步。解:在本题中,应设置三个信号量s、so、sa,信号量s表示盘子是否为空,其初值为1;信号量so表示盘中是否有桔子,其初值为0;信号量sa表示盘中是否有苹果,其初值为。同步描述如下:0int s=1;

int sa=0;int so=0;main ( ){cobegin

father ( );

son ( );

daughter ( );

coend}father ( ){p(s);

将水果放入盘中;

) v(so);if(放入的是桔子

v(sa); else

}son ( ){p(so);

从盘中取出桔子;

v(s);

吃桔子;

}daughter ( ){p(sa);

从盘中取出苹果;

v(s);

吃苹果;

}9.桌子上有一只盘子,最多可容纳两个水果,每次只能放人或取出一个水果。爸爸专向盘子中放苹果(apple),妈妈专向盘子中放桔子(orange),两个儿子专等吃盘子中的桔子,两个女儿专等吃盘子中的苹果。请用Pv操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。解:盘子为互斥资源,因可以放两个水果,empty初值为2;再设信号量mutex初值为。0表示盘中苹果个数,表示盘中桔子个数,初值均为apple,控制对盘子的互斥访问;1.

parbegin Father: begin L1: p(empty);P(mutex);

放苹果;

V(mutex);

V(apple);

Goto L1;End;Mother: begin L2: P(empty);P(mutex);放桔子;V(mutex);V(orange);Goto L2;

windows进程管理实验报告

实验报告 课程名称:操作系统 实验项目:windows进程管理 姓名: 专业:计算机科学与技术 班级: 学号:

计算机科学与技术学院 计算机系 2019 年 4 月 23 日

实验项目名称: windows进程管理 一、实验目的 1. 学习windows系统提供的线程创建、线程撤销、线程同步等系统调用; 2. 利用C++实现线程创建、线程撤销、线程同步程序; 3. 完成思考、设计与练习。 二、实验用设备仪器及材料 1. Windows 7或10, VS2010及以上版本。 三、实验内容 1 线程创建与撤销 写一个windows控制台程序(需要MFC),创建子线程,显示Hello, This is a Thread. 然后撤销该线程。 相关系统调用: 线程创建: CreateThread() 线程撤销: ExitThread() 线程终止: ExitThread(0) 线程挂起: Sleep() 关闭句柄: CloseHandle() 参考代码: ; } 运行结果如图所示。 完成以下设计题目: 1. 向线程对应的函数传递参数,如字符串“hello world!”,在线程中显示。 2. 如何创建3个线程A, B, C,并建立先后序执行关系A→B→C。

实验内容2 线程同步 完成父线程和子线程的同步。父线程创建子线程后进入阻塞状态,子线程运行完毕后再唤醒。 相关系统调用: 等待对象 WaitForSingleObject(), WaitForMultipleObjects(); 信号量对象 CreateSemaphore(), OpenSemaphore(), ReleaseSemaphore(); HANDLE WINAPI CreateSemaphore( _In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes _In_ LONG lInitialCount, _In_ LONG lMaximumCount, _In_opt_ LPCTSTR lpName ); 第一个参数:安全属性,如果为NULL则是默认安全属性 第二个参数:信号量的初始值,要>=0且<=第三个参数 第三个参数:信号量的最大值 第四个参数:信号量的名称 返回值:指向信号量的句柄,如果创建的信号量和已有的信号量重名,那么返回已经存在的信号量句柄参考代码: n"); rc=ReleaseSemaphore(hHandle1,1,NULL); err=GetLastError(); printf("Release Semaphore err=%d\n",err); if(rc==0) printf("Semaphore Release Fail.\n"); else printf("Semaphore Release Success. rc=%d\n",rc); } 编译运行,结果如图所示。

第二章进程管理答案

第二章进程管理 一、单项选择题 1、顺序程序和并发程序的执行相比,()。 A.基本相同 B. 有点不同 C.并发程序执行总体上执行时间快 D.顺序程序执行总体上执行时间快 2、在单一处理机上,将执行时间有重叠的几个程序称为()。 A.顺序程序 B. 多道程序 C.并发程序 D. 并行程序 3、进程和程序的本质区别是()。 A.存储在内存和外存 B.顺序和非顺序执行机器指令 C.分时使用和独占使用计算机资源 D.动态和静态特征 4、在下列特性中,不是进程的特性的是()。 A. 异步性 B. 并发性 C. 静态性 D. 动态性 5 A 6 A. 7 A. 8 A. 9 A. 10 A. 11 A. 12。 A. 13 A. 14 A. 15 A. 16、在操作系统中,对信号量S的P原语操作定义中,使进程进入相应阻塞队列等待的条件是()。 A. S>0 B. S=0 C. S<0 D. S≠0 17、信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为()。 A.10 B.8 C.6 D.4 18、在进程通信中,使用信箱方式交换信息的是()。 A.低级通信B.高级通信C.共享存储器通信D.管道通信 19.( )必定会引起进程切换。A.一个进程被创建后进入就绪态B.一个进程从运行态变成等待态c.一个进程从运行态变成就绪态 D.一个进程从等待态变成就绪态 20、操作系统使用( )机制使计算机系统能实现进程并发执行,保证系统正常工作。 A.中断B.查询c.同步D互斥 21.对于一个单处理器系统来说,允许若干进程同时执行,轮流占用处理器.称它们为()的。 A.顺序执行 B.同时执行c.并行执行D.并发执行

进程管理实验报告

实验2过程管理实验报告学生号姓名班级电气工程系过程、过程控制块等基本原理过程的含义:过程是程序运行过程中对数据集的处理,以及由独立单元对系统资源的分配和调度。在不同的数据集上运行程序,甚至在同一数据集上运行多个程序,是一个不同的过程。(2)程序状态:一般来说,一个程序必须有三种基本状态:就绪、执行和阻塞。然而,在许多系统中,过程的状态变化可以更好地描述,并且增加了两种状态:新状态和终端状态。1)就绪状态,当一个进程被分配了除处理器(CPU)以外的所有必要资源时,只要获得了处理器,进程就可以立即执行。此时,进程状态称为就绪状态。在系统中,多个进程可以同时处于就绪状态。通常,这些就绪进程被安排在一个或多个队列中,这些队列称为就绪队列。2)一旦处于就绪状态的进程得到处理器,它就可以运行了。进程的状态称为执行状态。在单处理器系统中,只有一个进程在执行。在多处理器系统中,可能有多个进程在执行中。3)阻塞状态由于某些事件(如请求输入和输出、额外空间等),执行进程被挂起。这称为阻塞状态,也称为等待状态。通常,处于阻塞状态的进程被调度为-?这个队列称为阻塞队列。4)新状态当一个新进程刚刚建立并且还没有放入就绪队列中时,它被称为新状态。5)终止状态是

什么时候-?进程已正常或异常终止,操作系统已将其从系统队列中删除,但尚未取消。这就是所谓的终结状态。(3)过程控制块是过程实体的重要组成部分,是操作系统中最重要的记录数据。控制块PCB记录操作系统描述过程和控制过程操作所需的所有信息。通过PCB,一个不能独立运行的程序可以成为一个可以独立运行的基本单元,并且可以同时执行一个进程。换句话说,在进程的整个生命周期中,操作系统通过进程PCB管理和控制并发进程。过程控制块是系统用于过程控制的数据结构。系统根据进程的PCB来检测进程是否存在。因此,进程控制块是进程存在的唯一标志。当系统创建一个进程时,它需要为它创建一个PCB;当进程结束时,系统回收其PCB,进程结束。过程控制块的内容过程控制块主要包括以下四个方面的信息。过程标识信息过程标识用于对过程进行标识,通常有外部标识和内部标识。外部标识符由流程的创建者命名。通常是一串字母和数字。当用户访问进程时使用。外部标识符很容易记住。内部标识符是为了方便系统而设置的。操作系统为每个进程分配一个唯一的整数作为内部标识符。通常是进程的序列号。描述性信息(process scheduling message)描述性信息是与流程调度相关的一些有关流程状态的信息,包括以下几个方面。流程状态:表

进程管理实验报告

进程的控制 1 .实验目的 通过进程的创建、撤消和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。 【答:进程概念和程序概念最大的不同之处在于: (1)进程是动态的,而程序是静态的。 (2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。 (3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。 (4)进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。】2 .实验内容 (1) 了解系统调用fork()、execvp()和wait()的功能和实现过程。 (2) 编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符串“parent:”和自己的标识数,而子进程则重复显示字符串“child:”和自己的标识数。 (3) 编写一段程序,使用系统调用fork()来创建一个子进程。子进程通过系统调用execvp()更换自己的执行代码,新的代码显示“new

program.”。而父进程则调用wait()等待子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。 3 .实验步骤 (1)gedit创建进程1.c (2)使用gcc 1.c -o 1编译并./1运行程序1.c #include #include #include #include void mian(){ int id; if(fork()==0) {printf(“child id is %d\n”,getpid()); } else if(fork()==0) {printf(“child2 id %d\n”,getpid()); } else {id=wait(); printf(“parent id is %d\n”,getpid()); }

第二章_进程管理习题修改汇总

一、选择题 1.在进程管理中,当 C 时,进程从阻塞状态变为就绪状态。 A.进程被进程调度程序选中 B.等待某一事件 C.等待的事件发生 D.时间片用完 2.分配到必要的资源并获得处理机时的进程状态是 B 。 A.就绪状态 B.执行状态 C.阻塞状态 D.撤消状态 3.进程的三个基本状态在一定条件下可以相互转化,进程由就绪状态变为运行状态的条件是 D 。 A.时间片用完 B.等待某事件发生 C.等待的某事件已发生 D.被进程调度程序选中4.进程的三个基本状态在一定条件下可以相互转化,进程由运行状态变为阻塞状态的条件是 B 。 A.时间片用完 B.等待某事件发生 C.等待的某事件已发生 D.被进程调度程序选中5.下列的进程状态变化中, C 变化是不可能发生的。 A.运行→就绪B.就绪→运行C.等待→运行D.等待→就绪 6.一个运行的进程用完了分配给它的时间片后,它的状态变为A 。 A.就绪 B.等待 C.运行 D.由用户自己确定7.操作系统通过 B 对进程进行管理。 A. JCB B. PCB C. DCT D. CHCT 8.一个进程被唤醒意味着 D 。 A. 该进程重新占有了CPU B. 它的优先权变为最大 C. 其PCB移至等待队列队首 D. 进程变为就绪状态 9.多道程序环境下,操作系统分配资源以 C 为基本单位。 A. 程序 B. 指令 C. 进程 D. 作业 10. 从下面的叙述中选出一条正确的叙述: (1)操作系统的一个重要概念是进程,不同的进程所执行的代码也不同。

(2)操作系统通过PCB来控制和管理进程,用户进程可从PCB 中读出与本身运行状态相关的信息。 (3)当进程由执行状态变为就绪状态时,CPU现场信息必须被保存在PCB中。 (4)当进程申请CPU得不到满足时,它将处于阻塞状态。(5)进程是可与其他程序并发执行的程序在一个数据集合上的运行过程,所以程序段是进程存在的唯一标志。 11. 从下面的叙述中选出4条正确的叙述: (1)一个进程的状态发生变化总会引起其它一些进程的状态发生变化。 (2)进程被挂起(suspend)后,状态变为阻塞状态。 (3)信号量的初值不能为负数。 (4)线程是CPU调度的基本单位,但不是资源分配的基本单位。(5)在进程对应的代码中使用wait、signal操作后,可以防止系统发生死锁。 (6)管程每次只允许一个进程进入。 (7)wait、signal操作可以解决一切互斥问题。 (8)程序的顺序执行具有不可再现性。 二、是非题 1.进程是动态的概念 2.进程执行需要处理机 3.进程是有生命期的

实验三-进程管理

实验三进程管理 一、实验目的 1.熟悉和理解进程和进程树的概念,掌握有关进程的管理机制 2.通过进程的创建、撤销和运行加深对进程并发执行的理解 3.明确进程与程序、并行与串行执行的区别 4.掌握用C 程序实现进程控制的方法 二、实验学时 2学时 三、实验背景知识 所涉及的系统调用 1、exec( )系列(exec替换进程映像) 系统调用exec( )系列,也可用于新程序的运行。fork( )只是将父进程的用户级上下文拷贝到新进程中,而exec( )系列可以将一个可执行的二进制文件覆盖在新进程的用户级上下文的存储空间上,以更改新进程的用户级上下文。exec( )系列中的系统调用都完成相同的功能,它们把一个新程序装入内存,来改变调用进程的执行代码,从而形成新进程。如果exec( )调用成功,调用进程将被覆盖,然后从新程序的入口开始执行,这样就产生了一个新进程,新进程的进程标识符id 与调用进程相同。 exec( )没有建立一个与调用进程并发的子进程,而是用新进程取代了原来进程。所以exec( )调用成功后,没有任何数据返回,这与fork( )不同。exec( )系列系统调用在UNIX系统库unistd.h中,共有execl、execlp、execle、execv、execvp五个,其基本功能相同,只是以不同的方式来给出参数。 #include int execl(const cha r *pathname, const char *arg, …); int execlp(const char *, const char *arg, …); int execle(const char *pathname, const char *arg, …, const char *envp[ ]); int execv(const char *pathname, char *const argv[ ]); int execvp(const char *, char *const argv[ ]); 参数: path参数表示你要启动程序的名称包括路径名。 arg参数表示启动程序所带的参数,一般第一个参数为要执行命令名,不是带路径且arg必须以NULL结束。 返回值:成功返回0,失败返回-1 注:上述exec系列函数底层都是通过execve系统调用实现. 1)带l 的exec函数:execl,execlp,execle,表示后边的参数以可变参数的形式给出且都以一个空指针结束。 #include

第2章 进程管理练习答案演示教学

第2章进程管理 练习答案

第二章进程管理 一、单项选择题 1、在单一处理机上执行程序,多道程序的执行是在(B)进行的。 A.同一时刻 B. 同一时间间隔内 C.某一固定时刻 D. 某一固定时间间隔内 2、引入多道程序技术后,处理机的利用率( C)。 A.降低了 B. 有所改善 C.大大提高 D. 没有变化,只是程序的执行方便了 3、顺序程序和并发程序的执行相比,( C)。 A.基本相同 C.并发程序执行总体上执行时间快 B. 有点不同 D.顺序程序执行总体上执行时间快 4、单一处理机上,将执行时间有重叠的几个程序称为(C )。 A.顺序程序 B. 多道程序 C.并发程序 D. 并行程序 5、进程和程序的本质区别是(D )。 A.存储在内存和外存 B.顺序和非顺序执行机器指令 C.分时使用和独占使用计算机资源 D.动态和静态特征 6、进程就是程序在并发环境中的执行过程,它是系统进行资源分配和调度的一个基本单位。进程具有[1A]、[2D]、调度性、异步性和结构性等基本特征。进程是一次执行过程,具有生命期体现了进程的[1]特征。进程由程序段、[3B]、[4C]组成,其中[4]是进程在系统中存在的唯一标识。 供选择的答案: [1][2] :A、动态性 B、静态性 C、共行性 D、并发性 E、可执行性 F、易用性 [3] :A、过程 B、数据 C、进程标识符 D、函数

[4] :A、FCB B、FIFO C、PCB D、JCB 7、进程执行时的间断性,决定了进程可能具有多种状态。进程的基本状态有三种,在分时系统中,当一个进程拥有的时间片到时,则该进程即由[1D]进入[2A]。如果出现因某种原因使得处理机空闲时,则需要从就绪队列中选择一进程,并将处理机分配给它,此时该进程进入[3D],这个过程是由[4C]来完成。供选择的答案:[1][2][3] :A、就绪状态 B、静止状态 C、阻塞状态 D、运行状态 [4] :A、进程控制程序B、资源分配程序C、进程调度程序 D、处理机分配程序 8、为描述进程的动态变化过程,采用了一个与进程相联系的(C ),根据它而感知进程的存在。 A.进程状态字 B. 进程优先数 C.进程控制块 D. 进程起始地址 9、下列进程状态的转换中,哪一个是不正确的( C)。 A. 就绪->运行 B. 运行->就绪 C. 就绪->阻塞 D. 阻塞->就绪 10、下列各项步骤中,哪一个不是创建进程所必须的步骤( B)。 A. 建立一个进程控制块PCB B. 由CPU调度程序为进程调度CPU C. 为进程分配内存等必要的资源 D. 将PCB链入进程就绪队列 11、在下列特性中,哪一个不是进程的特性( C)。 A. 异步性 B. 并发性 C. 静态性 D. 动态性 12、在单处理机系统中,处于运行状态的进程(A )。 A.只有一个 B. 可以有多个 C.不能被挂起 D. 必须在执行完后才能被撤下 13、如果某一进程在运行时,因某种原因暂停,此时将脱离运行状态,而进入( C) A.自由状态 B. 停止状态 C.阻塞状态 D. 静止状态

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

第二章-进程管理习题及答案

第二章进程管理习题及答案 一、填空题 1.进程的静态描述由三部分组成:① 、② 和③ 。 【答案】①PCB、②程序部分、③相关的数据结构集 【解析】PCB是系统感知进程的唯一实体。进程的程序部分描述了进程所要 完成的功能,而数据结构集是程序在执行时必不可少的工作区和操作对象。后两 部分是进程完成所需功能的物质基础。 2.进程存在的标志是。 【答案】进程控制块PCB 【解析】系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌握进程所处的状态以达到控制进程活动的目的。 3.① 是现代操作系统的基本特征之一,为了更好地描述这一特征而 引入了 ② 这一概念。 【答案】①程序的并发执行,②进程 【解析】程序的并发执行和资源共享是现代操行系统的基本特征。程序的并 发执行使程序失去了程序顺序执行时所具有的封闭性和可再现性。在程序并发执 行时,程序这个概念不能反映程序并发执行所具有的特性,所以引入进程概念来 描述程序并发执行所具有的特点。 4.给出用于进程控制的四种常见的原语① 、② 、③ 和④ 。【答案】①创建原语、②撤消原语、③阻塞原语、④唤醒原语 【解析】进程控制是系统使用一些具有特定功能的程序段来创建、撤消进程 以及完成进程各状态间的转换,从而达到多个过程高效率地并行执行和协调,实 现资源共享的目的。把那些在管态下执行的具有特定功能的程序段称为原语。 5.进程被创建后,最初处于① 状态,然后经② 选中后进入③ 状态。 【答案】①就绪,②进程调度程序,③运行 【解析】进程的从无到有,从存在到消亡是由进程创建原语和撤消原语完成的。被创建的进程最初处于就绪状态,即该进程获得了除处理机以外的所有资源,处于准备执行的状态;从就绪状态到运行状态的转换是由进程调度程序来完成的。 6.进程调度的方式通常有① 和② 方式两种。 【答案】①可剥夺、②非剥夺 【解析】所谓可剥夺方式,是指就绪队列中一旦有优先级高于当前运行进程 的优先级的进程存在时,便立即发生进程调度,转让处理机。而非剥夺方式则是指:即使在就绪队列中存在有优先级高于当前运行进程的进程,当前进程仍将继 续占有处理机,直到该进程完成或某种事件发生(如I/O事件)让出处理机。 7.轮转法主要是用于① 的调度算法,它具有较好的② 时间, 且对每个进程来说都具有较好的③ 性。

操作系统-进程管理实验报告

实验一进程管理 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3.实验内容 (1)进程的创建: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 源代码如下: #include #include #include #include #include int main(int argc,char* argv[]) { pid_t pid1,pid2; pid1 = fork(); if(pid1<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid1 == 0){ printf("b\n"); } 1/11

else{ pid2 = fork(); if(pid2<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid2 == 0){ printf("c\n"); } else{ printf("a\n"); sleep(2); exit(0); } } return 0; } 结果如下: 分析原因: pid=fork(); 操作系统创建一个新的进程(子进程),并且在进程表中相应为它建立一个新的表项。新进程和原有进程的可执行程序是同一个程序;上下文和数据,绝大部分就是原进程(父进程)的拷贝,但它们是两个相互独立的进程!因此,这三个进程哪个先执行,哪个后执行,完全取决于操作系统的调度,没有固定的顺序。 (2)进程的控制 修改已经编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 将父进程的输出改为father process completed 2/11

实验一 进程管理

实验一进程管理 1. 实验目的 ⑴加深对进程概念的理解,明确进程和程序的区别; ⑵进一步认识并发执行的实质; ⑶分析进程争用资源的现象,学习解决进程互斥的方法; ⑷了解Linux系统中进程通信的基本原理。 2. 实验准备 ⑴阅读Linux的sched.h源码文件,加深对进程管理的理解。 ⑵阅读Linux的fork.h源码文件,分析进程的创建过程。 3. 实验内容 ⑴进程的创建 编写一段程序,使用系统调用fork ( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程显示字符“b”和字符“c”。试观察记录屏幕上的显示结果,并分析原因。 ⑵进程的控制 修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 如果在程序中使用系统调用lockf ( )来给每一个进程加锁,可以实现进程之间的互斥,观察并分析出现的现象。 ⑶软中断通信 编制一段程序实现进程的软中断通信。要求:使用系统调用fork ( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上发来的中断信号(既按Del键);当捕捉到中断信号后,父进程系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:Child process 1 is killed by parent! Child process 2 is killed by parent! 父进程等待两个子进程终止后,输出如下的信息后终止: Parent process is killed! 在上面的程序中增加语句signal (SIGINT, SIG_IGN) 和signal (SIGQUIT, SIG_IGN),观察执行结果,并分析原因。 4. 实验指导

操作系统第二章进程管理测验题答案

爱班网测验2 刷新 第二章进程管理测验题收起 测验进行中结束 试题1 正在进行中 并发性是指若干事件在()发生。( B ) A.同一时刻 B.同一时间间隔 C.不同时刻 D.不同时间间隔内 试题2 正在进行中 进程控制块是描述进程状态和特性的数据结构,一个进程( D ) A.可以有多个进程控制块 B.可以和其他进程共用一个进程控制块 C.可以没有进程控制块 D.只能有惟一的进程控制块 试题3 正在进行中 当时,进程从执行状态转变为就绪状态。( B ) A.进程被调度程序选中 B.时间片到 C.等待某一事件 D.等待的事件发生 试题4 正在进行中 在进程状态转换时,下列转换时不可能发生的。( D ) A.就绪态->运行态 B.运行态->就绪态 C.运行态->阻塞态

D.阻塞态->运行态 试题5 正在进行中 下列各项工作步骤中,不是创建进程必需的。( B ) A.建立一个PCB B.调度程序为进程分配CPU C.为进程分配内存等资源 D.将PCB链入进程就绪队列 试题6 正在进行中 下列关于进程的叙述中,正确的是( A ) A.进程通过进程调度程序而获得CPU B.优先级是进行进程调度的重要依据,一旦确定不能改变 C.在单CPU系统中,任一时刻都有1个进程处于运行状态。 D.进程申请CPU得不到满足时,其状态变为等待状态 试题7 正在进行中 从资源管理的角度看,进程调度属于( C ) A.I/O管理 B.文件管理 C.处理机管理 D.存储器管理 试题8 正在进行中 下列有可能导致一进程从运行变为就绪的事件是( D ) A.一次I/O操作结束 B.运行进程需做I/O操作 C.运行进程结束

实验一进程管理实验

实验一linux进程的创建与控制 【实验目的】 1、加深对进程概念的理解,明确进程和程序的区别; 2、进一步认识并发执行的实质; 3、分析进程争用资源的现象,学习解决进程互斥的方法; 【实验环境】 编程环境:TC或者VC 操作系统软件:linux 【准备知识】 一.基本概念 1、进程的概念;进程与程序的区别。 2、并发执行的概念。 3、进程互斥的概念。 二.系统调用 系统调用是一种进入系统空间的办法。通常,在OS的核心中都设置了一组用于实现各 种系统功能的子程序,并将它们提供给程序员调用。程序员在需要OS提供某种服务的时候,便可以调用一条系统调用命令,去实现希望的功能,这就是系统调用。因此,系统调用就像 一个黑箱子一样,对用户屏蔽了操作系统的具体动作而只是控制程序的执行速度等。各个不同的操作系统有各自的系统调用,女口windows API,便是windows的系统调用,Linux的系 统调用与之不同的是Linux由于内核代码完全公开,所以可以细致的分析出其系统调用的机制。 三.相关函数。 1 fork()函数 fork()函数创建一个新进程。 其调用格式为:int fork(); 其中返回int取值意义如下: 正确返回:等于0 :创建子进程,从子进程返回的ID值; 大于0 :从父进程返回的子进程的进程ID值。

错误返回:等于一1创建失败。 2 wait()函数 wait()函数常用来控制父进程与子进程的同步。在父进程中调用wait()函数,则父进程被阻塞,进入等待队列,等待子进程结束。当子进程结束时,会产生一个终止状态字,系统会向父进程发出SIGCHLD言号。当接到信号后,父进程提取子进程的终 止状态字,从wait()函数返回继续执行原程序。 其调用格式为:#i nclude #i nclude / (pid_t) wait(i nt *statloc) ; 正确返回:大于0:子进程的进程ID值; / 等于0:其它。 错误返回:等于一1调用失败。 3 exit()函数 exit() 函数是进程结束最常调用的函数,在main()函数中调用return,最终也是调用exit()函数。这些都是进程的正常终止。在正常终止时,exit()函数返回进程 结束状态。 其调用格式为:#in elude <> void exit(i nt status) ; 其中status为进程结束状态。 4 kill()函数 \ kill()函数用于删除执行中的程序或者任务。 其调用格式为:kill(i nt PID,i nt IID) ; 其中:PID是要被杀死的进程号,IID为向将被杀死的进程发送的中断号。 关于Linux下的C语言编程 1 )编辑器可使用vi 2 )编译器使用gee 格式:gee optio n file name 例如:gee -o main 主要的option -o指定输出文件名(不指定则生成默认文件) 其它的参数见帮助(man gee)

进程管理实验报告

进程管理实验报告 1 .实验目的 通过进程的创建、撤消和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。 【答:进程概念和程序概念最大的不同之处在于: (1)进程是动态的,而程序是静态的。 (2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。 (3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。 (4)进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。】2 .实验内容 (1) 了解系统调用fork()、execvp()和wait()的功能和实现过程。 (2) 编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符串“parent:”和自己的标识数,而子进程则重复显示字符串“child:”和自己的标识数。 (3) 编写一段程序,使用系统调用fork()来创建一个子进程。子进程通过系统调用execvp()更换自己的执行代码,新的代码显示“new program.”。而父进程则调用wait()等待子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。

(3)运行并查看结果 child’s pid=2894 child’s pid=2994 parent’s pid=2849 child’s pid=2897 child’s pid=2897 parent’s pid=2849 child’s pid=2894 child’s pid=2994 parent’s pid=2849 (4)gedit创建进程2.c 使用gcc 2.c -o 2编译并./2运行程序2.c#include #include #include #include #include(6)运行并查看结果 new program ! -rw-r–r--. 1 root root 2456 Apr 14 2019 /etc/passwd child peocess PID:29035 4 .思考 (1) 系统调用fork()是如何创建进程的?

第二章 进程管理

第二章进程管理 1.从静态的角度看,进程是由(A)、(B)、(C)三部分组成的,其中(C)是进程存在的惟一标 志。当几个进程共享(A)时,(A)应当是可重入代码。 A,B,C:(1) JCB;(2) PCB;(3) DCB;(4) FCB;(5) 程序段;(6) 数据段;7) I/O 缓冲区。 2.进程的三个基本状态是(A)、(B)、(C)。由(A)到(B)是由进程调度所引起的;由(B)到C) 是正在执行的进程发生了某事件,使之无法继续执行而引起的。 A,B,C:(1) 挂起;(2) 阻塞;(3) 就绪;(4) 执行;(5) 完成。 3.下列进程状态转换中,绝对不可能发生的状态转换是(A);一般不会发生的状态转换是 (B)。 A,B:(1) 就绪→执行;(2) 执行→就绪;(3) 就绪→阻塞;(4) 阻塞→就绪;5) 阻塞→执行;(6) 执行→阻塞。 4.在一个单处理机系统中,存在5 个进程,则最多有(A)个进程处于就绪队列,(B)个进 程处于阻塞状态。 A,B:(1) 5;(2) 4;(3) 3;(4) 2;(5) 1;(6) 0。 5.正在执行的进程由于其时间片用完被暂停执行,此时进程应从执行状态变为(A)状态; 处于静止阻塞状态的进程,在进程等待的事件出现后,应变为(B)状态;若进程正处于执行状态时,因终端的请求而暂停下来以便研究其运行情况,这时进程应转变为(C)状态;若进程已处于阻塞状态,则此时应转变为(D)状态。 A,B,C,D:(1) 静止阻塞;(2) 活动阻塞;(3) 静止就绪;(4) 活动就绪;(5) 执行。 6.为使进程由活动就绪转变为静止就绪,应利用(A)原语;为使进程由执行状态转变为阻 塞状态,应利用(B)原语;为使进程由静止就绪变为活动就绪,应利用(C)原语;为使进程从阻塞状态变为就绪状态,应利用(D)原语。 A,B,C,D:(1) create;(2) suspend;(3) active;(4) block;(5) wakeup。 7.在将CPU 的执行状态分为用户态和核心态的系统中,应该在核心态下执行的指令依次 为(A)、(B)和(C)。而从用户状态转换到系统状态是通过(D)实现的。 A,B,C:(1) 屏蔽所有中断;(2) 读时钟;(3) 设置时钟的值;(4) 存取内存中某地址单元的值;(5) 停机。 D:(1) 执行进程直接修改程序状态字;(2) 中断屏蔽;(3) 中断;(4) 进程调度。 8.在分时系统中,导致进程创建的典型事件是(A);在批处理系统中,导致进程创建的典型事件是(B); 由系统专门为运行中的应用进程创建新进程的事件是(C)。在创建进程时,D)不是创建所必需的步骤。 A:(1) 用户注册;(2) 用户登录;(3) 用户记账;(4) 用户通信。 B:(1) 作业录入;(2) 作业调度;(3) 进程调度;(4) 中级调度。 C:(1) 分配资源;(2) 进行通信;(3) 共享资源;(4) 提供服务。 D:(1) 为进程建立PCB;(2) 为进程分配内存等资源;(3) 为进程分配CPU;(4) 将进程插入就绪队列。 9. 从下面对临界区的论述中,选出两条正确的论述。 (1) 临界区是指进程中用于实现进程互斥的那段代码。 (2) 临界区是指进程中用于实现进程同步的那段代码。 (3) 临界区是指进程中用于实现进程通信的那段代码。 (4) 临界区是指进程中用于访问共享资源的那段代码。 (5) 临界区是指进程中访问临界资源的那段代码。

实验一、进程调度实验报告

实验一、进程调度实验报告

广东技术师范学院实验报告 学院:计算机科学学 院 专业: 计算机科学与 技术(师范) 班级:成绩: 姓名:学号:组别:组员: 实验地点:实验日期:指导教师签名: 实验名称:实验一、进程调度实验 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解 二、实验类别 综合性实验。综合高级语言编程、进程调度模型、进程调度算法及数据结构等多方面的知识 三、实验内容和步骤 1.编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五个进程进行调度。 “最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。 静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。 动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。例如:在进程获得一次CPU后就将其优先数减少1。或者,进程等待的时间超过某一时限时增加其优先数的值,等等 该题根据老师给的代码用Visual C++运行,结果以及分析如下: 预习情况操作情况考勤情况数据处理情况

结果分析:根据上述输入的三个进程的信息可以得到:优先级最高的是进程cc 最先调度进程cc的状态为运行态,需要执行的时间为10当前就绪队列状态为:进程aa先级比较高,处于就绪队列前面,而进程bb先级是三者中最低的,所以处于就绪队列的最后。而此时这两个进程的状态都为就绪态。

结果分析:当进程cc了一个时间片之后而它已占用CPU时间已达到所需要的运行时间,则将它的优先级减1之后,再将三个进程按优先级的大小排列,从中选择优先级大的进程进入运行状态,则该次进入运行态的是进程aa 按照这种方式一直运行下去: 直到:

操作系统-实验三-进程管理-实验报告

计算机与信息工程学院实验报告 一、实验内容 1.练习在shell环境下编译执行程序 (注意:①在vi编辑器中编写名为sample.c的c语言源程序 ②用linux自带的编译器gcc编译程序,例如:gcc –o test sample.c ③编译后生成名为test.out的可执行文件; ④最后执行分析结果;命令为:./test) 注意:linux自带的编译程序gcc的语法是:gcc –o 目标程序名源程序名,例如:gcc –o sample1 sample1.c,然后利用命令:./sample 来执行。如果仅用“gcc 源程序名”,将会把任何名字的源程序都编译成名为a.out的目标程序,这样新编译的程序会覆盖原来的程序,所以最好给每个源程序都起个新目标程序名。 2.进程的创建 仿照例子自己编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示“a”,子进程分别显示字符“b”和“c”。观察记录屏幕上的显示结果,并分析原因。 3.分析程序 实验内容要在给出的例子程序基础上,根据要求进行修改,对执行结果进行分析。二、

实验步骤 1. 利用fork()创建一个小程序 (1)编写程序 #include main () { int i=5; pid_t pid; pid=fork(); for(;i>0;i--) { if (pid < 0) printf("error in fork!"); else if (pid == 0) printf("i am the child process, my process id is %d and i=%d\n",getpid(),i); else printf("i am the parent process, my process id is %d and i=%d\n",getpid(),i); } for(i=5;i>0;i--) { if (pid < 0) printf("error in fork!"); else if (pid == 0) printf("the child process, my process id is %d and i=%d\n",getpid(),i); else printf("the parent process, my process id is %d and

相关文档
最新文档