文档库 最新最全的文档下载
当前位置:文档库 › 操作系统习题集 - 2 - 进程管理

操作系统习题集 - 2 - 进程管理

操作系统习题集 - 2 - 进程管理
操作系统习题集 - 2 - 进程管理

习题集 - 2 - 进程管理

1. 在优先级调度中,__________类进程可能被“饿死”,即长时间得不到调度。

A.短进程 B.长进程 C.低优先级进程 D.大内存进程

解: C。优先级调度算法(PRI)的基本思想是:内核为每个进程赋予一个优先级,进程按照优先级的大小顺序在就绪队列中排队,内核将CPU分配给就绪队列头部的第一个进程——优先级最大的进程。因此,进程的优先级越低,在就绪队列中的排队位置就越靠近队列尾,获得运行之前的等待时间就越长。低优先级的进程必须等待所有高优先级进程运行结束后才会被调度运行。如果不断有高优先级的进程加入就绪队列,那么低优先级进程就会一直等待下去。这就是所谓的“饿死”现象。

2. 在下面的系统调用中,__________不会导致进程阻塞。

A.读/写文件 B.获得进程PID C.申请内存 D.发送消息

解: B。当正在执行的进程需要使用某种资源或等待某个事件时,如果资源已被其他进程占用或事件尚未出现,该进程不能获得所需的资源而无法继续运行,于是,进程将被阻塞。进程在阻塞状态中等待资源被释放,或等待事件的发生。所以,进程在执行系统调用时,如果需要使用某种资源,就可能导致进程阻塞。“读/写文件”需要使用设备和文件缓冲区;“申请内存”需要分配内存资源;“发送消息”需要使用消息缓冲区。

3. 下面关于临界区的叙述中,正确的是__________

A.临界区可以允许规定数目的多个进程同时执行

B.临界区只包含一个程序段

C.临界区是必须互斥地执行的程序段

D.临界区的执行不能被中断

解: C。临界段(临界区)的概念包括两个部分:①临界资源:必须互斥访问的资源。例如,需要独占使用的硬件资源,多个进程共享的变量、结构、队列、栈、文件等软件资源。②临界区:访问临界资源的、必须互斥地执行的程序段。即,当一个进程在某个临界段中执行时,其他进程不能进入相同临界资源的任何临界段。

4. 资源顺序分配法破坏了死锁发生的__________必要条件。

A.互斥占用 B.占有等待 C.非剥夺 D.循环等待

解: D。资源顺序分配方法是:给系统中的每类资源赋予一个自然数的序号,限制进程只能严格按照资源序号由小到大的顺序申请资源。该方法可以避免“循环等待”的情况发生。因为,若出现循环等待,则必会有进程在获得大序号资源后申请小序号资源。

5. 假设某操作系统采用RR调度策略,分配给A类进程的时间片为100 ms,分配给B类进程的时间片为400 ms,就绪进程队列的平均长度为5(包括正在运行的进程),其中A类进程有4个,B类进程有1个,所有进程的平均服务时间为2 s,问A类进程和B类进程的平均周转时间各为多少?(不考虑IO情况)

解析:时间片轮转调度(RR)是轮流地调度就绪队列中的每个进程,进程每次占用CPU的时间长度限制为时间片的大小。当采用固定的时间片大小时,每个进程按照固定周期被循环地执行。所以,进程的执行速度是由该进程的时间片大小在一个循环周期中所占的比例决定的,比例越高,进程的相对执行速度就越快。

解:因为就绪进程队列的平均长度为5,单个RR调度循环周期的时间为

4×100+1×400=800(ms)

A类进程需要20个时间片的执行时间,B类进程需要5个时间片的执行时间(1 s=1 000 ms)。

A类进程的平均周转时间为

20×0.8=16(s)

B类进程的平均周转时间为

5×0.8=4(s)

6. 某多道程序设计系统中配有一台处理器CPU和两台输入/输出设备IO1、IO2,现有优先级由高到低

的3个进程P1、P2、P3同时存在,它们使用资源的先后顺序和占用时间分别是:

进程P1:IO2(30 ms),CPU(10 ms),IO1(30 ms),CPU(10 ms),IO2(10 ms)。

进程P2:IO1(20 ms),CPU(20 ms),IO1(40 ms)。

进程P3:CPU(30 ms),IO2(20 ms)。

若进程调度采用“可抢占的最高优先级”调度算法,且忽略调度等所需的时间,请回答下列问题:

(1) 进程P1、P2、P3从开始到完成所用的时间分别是多少?(要求用坐标画出进程P1、P2、P3的工作

过程,其中横坐标表示时间,纵坐标表示CPU和IO设备。)

(2) 这3个进程从开始到全部完成时CPU的利用率为多少?IO1、IO2的利用率为多少?

解析:在“可抢占的最高优先级”调度中,任何时刻内核都将处理机分配给当前最高优先级的就绪进程。也就是说,只有当高优先级进程主动放弃CPU时,低优先级进程才有机会运行,并且,一旦高优先级进程需要使用CPU时,内核就会剥夺低优先级进程的CPU,分配给它使用。

在本题中,由于进程P1和P2在开始执行时先需要进行IO,所以最低优先级的进程P3获得了CPU。

但是,P3运行了20 ms后就被P2抢占了CPU,因为P2刚好完成了IO,并且P2的优先级大于P3。同样的原因,P2运行了10 ms后,就被P1抢占了CPU。P1在CPU上运行10 ms之后再次需要进行IO 而放弃CPU,于是,P2、P1获得继续运行的机会。以此方式,P1、P2和P3相继完成自己的运行过程。

解:根据“可抢占的最高优先级”调度算法,画出进程P1、P2、P3的工作过程(见图2 9)。

图2.9进程P1、P2、P3

进程P1、P2、P3从开始到完成所用的时间分别是90 ms、110 ms、80 ms。这3个进程从开始到全部完成时的时间为110(ms),在此期间内:

CPU的利用率=(30+20+10+10)/110=63.6%

IO1的利用率=(20+30+40)/110=81.8%

IO2的利用率=(30+20+10)/110=54.5%

7. 论述以下解决双进程临界区问题的软件算法是错误的。

ProcessP0:

do {

flag[0]=true;①

while(flag[1]);③

临界区

flag[0]=false;

}while(1);

ProcessP1:

do {

flag[1]=true;②

while(flag[0]);④

临界区

flag[1]=false;

}while(1);

解析: 在算法中,两个进程P1和P2各自拥有自己的标志牌flag[0]和flag[1]。当进程需要进入临界区时,举起标志牌(设置值为true)。然后观察对方是否举起标志牌,是则等待并继续观察(while语句),直到对方放下标志牌(设置值为false)。这时,进程才进入临界区。进程退出临界区时,放下标志牌(设置值为false)。

解:通过使用标志牌flag[0]和flag[1],能够保证满足“互斥”条件。但是,当两个进程按照①②③④的顺序执行程序时,它们各自举起了标志牌,同时都因为观察到对方也举起了标志牌而等待在while语句中。由于两个进程都不会放下自己的标志牌,因此都无法进入临界区,不能满足“有限等待”的条件。所以,上述解决双进程临界区问题的算法是错误的。

8. 以下解决双进程访问共享变量count的程序是否存在错误?试用信号量实现。

Share:count=0;

Int: flag[2];

cobegin

Process P0:

do {

flag[0]=true;①

while(flag[1]);③

count=count+1;

flag[0]=false;

}while(1);

Process P1:

do {

flag[1]=true;②

while(flag[0]);④

count=count+1;

flag[1]=false;

}while(1);

coend

解:在上述程序中,访问共享变量的语句count=count+1构成临界区。两个进程P0和P1各自拥有自己的标志牌flag[0]和flag[1]。当进程需要进入临界区时,举起标志牌(设置值为true)。然后观察对方是否举起标志牌,是则等待并继续观察(while语句),直到对方放下标志牌(设置值为false)。这时,进程才进入临界区。进程退出临界区时,放下标志牌(设置值为false)。

通过使用标志牌flag[0]和flag[1],能够保证满足“单一进入”的条件。但是,当两个进程按照①、②、③、④的顺序执行程序时,它们各自举起了标志牌,同时都因为观察到对方也举起了标志

牌而等待在while语句中。由于两个进程都不会放下自己的标志牌,因此都无法进入临界区,不能满足“有限等待”的条件。所以,上述程序是错误的。

设置信号量S实现对共享变量count的互斥访问。

Share:count=0;

struct semaphore S=1;

cobegin

Process P0:

do {

P(S);

count=count+1;

V(S);

}while(1);

Process P1:

do {

P(S);

count=count+1;

V(S);

}while(1);

coend

9. 假定一个阅览室最多可容纳100人,读者进入和离开阅览室时都必须在阅览室门口的一个登记表上进行登记,而且每次只允许一人进行登记操作。用信号量实现该过程。

解:设置信号量S:控制进入阅览室的人数。初值=100。

设置信号量mutex:控制登记表的互斥使用。初值=1。

struct semaphore s=100,mutex=1;

cobegin

reader (i ) (i=1,2,…,k)

{

P(S);

P(mutex);

写登记表;

V(mutex);

阅读;

P(mutex);

写登记表;

V(mutex);

V(S);

离开;

}

coend

10. 在具有N个进程的系统中,允许M个进程(N≥M≥1)同时进入它们的共享区,其信号量S的值的变化范围是(1),处于等待状态的进程数最多是(2)个。

解:信号量S用于控制进入共享区的进程数,初值为M。极端情况是N个进程都需要进入共享区。

(1)(M-N,M);(2)N-M

11. 在测量控制系统中,数据采集任务把所采集的数据送一单缓冲区;计算任务从该缓冲区中取出数据进行计算。试写出利用信号量机制实现两者共享单缓冲区的同步操作算法。

解:设置信号量S1和S2控制数据采集任务与计算任务之间的同步。

初值:S1=1,S2=0。

struct semaphore S1=1, S2=0;

cobegin

数据采集任务:计算任务:

begin begin

While(true){ While(true){

采集数据;P(S2);

P(S1); 从缓冲区读出数据;

数据写入缓冲区;V(S1);

V(S2); 计算;

} }

end end

coend

12. 有n+1个进程A1,A2,…,A n和B,A1,…,A n通过同一缓冲区各自不断向B发消息,B不断取消息,它必须取走发来的每一个消息。刚开始时缓冲区为空,试用P、V操作正确实现之。

解:设置信号量S1和S2控制进程Ai与进程B之间的同步。初值:S1=1,S2=0。

设置信号量S控制进程Ai之间互斥地使用缓冲区。初值:S=1。

struct semaphore S1=1, S2=0, S=1;

cobegin

进程Ai(i=1,2,···,n):进程B:

begin begin

While(true){ While(true){

P(S1);P(S2);

P(S); 从缓冲区读出消息;

消息写入缓冲区;V(S1);

V(S); }

V(S2);

} end

end

coend

13. 桌子上有一只盘子,每次只能放入或取出一个水果。现有许多苹果和橘子。一家四口人各行其职。爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,儿子专等吃盘子中的橘子,女儿专等吃盘子中的苹果。请用PV操作来实现四人之间的同步算法。

解:设置信号量empty表示盘子的状态。初值:empty =1。

设置信号量apple表示盘子中的苹果。初值:apple =0。

设置信号量orange表示盘子中的橘子。初值:orange =0。

struct semaphore empty =1, apple =0, orange =0;

Parbegin

爸爸: begin

L1: P(empty);

放苹果;

V(apple);

Goto L1;

End;

妈妈:begin

L2: P(empty);

放橘子;

V(orange);

Goto L2;

End;

女儿:begin

L3: P(apple);

取苹果;

V(empty);

Goto L3;

End;

儿子:begin

L4: P(orange);

取橘子;

V(empty);

Goto L4;

End;

Parend

14. 下面是两个并发执行的进程。它们能正确运行吗?若不能请举例说明,并改正之。Parbegin

Var x:integer;

Process P1 Process P2

Var y,z:integer;Var t,u:mteger;

Begin Begin

x:=1;①x:=0;②

y:=0;③t:=0;⑥

if x>=1 then y:=y+1;④if x<=1 then t:=t+2;⑦

z:=y;⑤u:=t; ⑧

end end

Parend

解:变量x是两个进程的共享资源。若先执行P1,后执行P2,结果为Y=1,Z=1,T=2,U=2;若并发执行P1和P2,并按图中标示的顺序执行,则结果为Y=0,Z=0。即不能正确运行。

改正的方法是为临界资源x设置信号量S,初值为1。程序如下:

Parbegin

Var x:integer;

struct semaphore S=1;

Process P1 Process P2

Var y,z:integer;Var t,u:mteger;

Begin Begin

P(S); P(S);

x:=1;①x:=0;②

y:=0;③t:=0;⑥

if x>=1 then y:=y+1;④if x<=1 then t:=t+2;⑦

V(S); V(S);

z:=y;⑤u: =t; ⑧

end end

Parend

15. 兄弟俩共同使用一个账号,每次限存或取10元,存钱与取钱的进程分别如下所示:

begin

amount:integer;

amount:=0;

cobegin

process SAVE

m1:integer;

begin

m1:=amount;①

m1:=m1+10;

amount:=m1;②

end;

process TAKE

m2:integer;

begin

m2:=amount;③

m2:=m2-10;

amount:=m2;④

end;

eoend;

end;

由于兄弟俩可能同时存钱和取钱,因此两个进程是并发的。若哥哥先存了两次钱,但在第三次存钱的时候,弟弟在取钱,请问最后账号amount上面可能出现的值? 如何用P、V操作实现两并发进程的正确执行?

解:哥哥存两次钱后,amount=20, 第三次存钱时,弟弟正在取钱,因没有对amout互斥操作,则可能发生下面的情况;

(1)执行顺序为①②③④或③④①②: amount=20;

(2)执行顺序为①③②④或③①②④: amount=10;

(3)执行顺序为①③④②或③①④②: amount=30;

设信号量mutex(初值为1)控制两进程对变量amount的互斥使用。正确过程如下:begin

amount:integer;

amount:=0;

struct semaphore mutex =1;

cobegin

process SAVE

m1:integer;

begin

P(mutex);

m1:=amount;①

m1:=m1+10;

amount:=m1;②

V(mutex);

end;

process TAKE

m2:integer;

begin

P(mutex);

m2:=amount;③

m2:=m2-10;

amount:=m2;④

V(mutex);

end;

eoend;

end;

16. 战地指挥官通过无线电不断地向他的三个士兵下达作战指令,但是他必须在得到所有士兵对前一条指令的“确认”之后才能下达新的指令。请使用P、V操作进行指挥官和士兵之间的协同管理。

解:设置信号量S1表示士兵1的“确认”信息。初值:S1 =1。

设置信号量S2表示士兵2的“确认”信息。初值:S2 =1。

设置信号量S3表示士兵3的“确认”信息。初值:S3 =1。

begin

struct semaphore S1=1, S2=1,S3=1;

cobegin

process 指挥官:

begin

while(true){

P(S1); P(S2); P(S3);

向士兵1发送指令;

向士兵2发送指令;

向士兵3发送指令;

}

end;

process 士兵1

begin

while(true){

接收指挥官的指令;

V(S1);

}

end;

process 士兵2

begin

while(true){

接收指挥官的指令;

V(S2);

}

end;

process 士兵3

begin

while(true){

接收指挥官的指令;

V(S3);

}

end;

eoend;

end;

17. 三个并发进程通过缓冲区bufl,buf2以及信号量nonel,nonfl,none2,nonf2,sl和s2协作完成如下图的任务,bufl,buf2的大小分别为n1,n2。

nonel none2

nonel none2

18. 三个进程如下,试补充完整:

初值:nonel=none2=0;nonfl=nl,nonf2=n2, sl=1,s2=1。

输入进程:

while(1){

(1)

P(s1);

输入一个字符到bufl;

V(s1);

(2) ;

}

加工进程:

while(1){

P(nonel);

(3) ;

从buf1中取一个字符到ch;

(4) ;

V(nonfl);

P(nonf2);

P(s2);

ch送bur2;

V(s2);

V(none2);

}

输出进程:

while(1){

(5) ;

(6) ;

从bur2取一个字符到打印口;

(7) ;

(8) ;

}

解:通过分析程序可知,信号量s1和s2分别用于实现对缓冲区buf1,buf2的互斥访问;nonel和nonfl 用于实现输入进程与加工进程之间的同步,none2和nonf2用于实现加工进程与输出进程之间的同步。

(1) P(nonfl) (2) V(nonel) (3) P(s1) (4) V(s1)

(5) P(none2) (6) P(s2) (7) V(s2) (8) V(nonf2)

19. 一个仓库,可以存放A和B两种产品,但要求:

(1)每次只能存人一种产品(A或B);

(2)A产品数量—B产品数量

(3)B产品数量—A产品数量

其中,M、N是正整数,试用P、V操作描述产品A与产品B的入库过程。

解:条件(1)说明产品A与产品B必须互斥地放入仓库。

条件(2)和(3)说明每放入一个产品B,就可以多放入一个产品A;反之亦然。设置信号量mutex控制产品A与产品B互斥地放入仓库。初值:mutex=1。

设置信号量Sa表示可以放入仓库的产品A的数目。初值:Sa=M-1。

设置信号量Sb表示可以放入仓库的产品B的数目。初值:Sb=N-1。

产品A与产品B的入库过程如下:

Semaphore: Sa, Sb, mutex;

Sa = m-1; Sb= n-1; mutex = 1;

process_A ( ) {

while(1){

P(Sa);

P(mutex);

A产品入库;

V(mutex);

V(Sb);

}

}

process_B ( ) {

while(1){

P(Sb);

P(mutex);

B产品入库;

V(mutex);

V(Sa);

}

}

20. 今有A、B两组进程共享文件P,规定同组进程可以同时读文件P,但当有A组(或B组)进程在读文件P时,就不允许B组(或A组)进程读文件P。现定义两个计数器C1和C2,分别记录A组和B组中读文件P 的进程数。当用P、V操作进行管理时,需要三个信号量S1、S2和SAB才能保证正确地并发执行。程序结构如下:

begin

S1, S2, SAB: semaphore;

C1, C2: integer;

S1: = 1;S2: = 1;SAB: = 1;C1: =0;C2: =0;

cobegin

process Ai(i = 1,2,··· )

begin

( ); /*(1)*/

C1: =C1+1;

If Cl=l then( ); /*(2)*/

( ); /*(3) */

read P;

( ); /*(4)*/

C1:=C1-1;

if C1 =0 then( ); /* (5) */

( ); /*(6)*/

end;

process Bj(j = 1,2, ···)

begin

( ); /*(7)*/

C2: =C2+1;

If C2=l then( ); /*(8)*/

( ); /*(9)*/

read P;

( ); /*(l0) /

C2: = C2 - 1;

if C2 = 0 then( ); /*(11) */

( ); /* (12)*/

end;

eoend;

end;

请回答:

(1)说明信号量S1,S2,SAB的作用:

(2)在上述程序的填空处填上适当的P、V操作,以保证它们能够正确地并发执行。

解:S1的作用是控制计数器C1的互斥使用。

S2的作用是控制计数器C2的互斥使用。

SAB 的作用是控制A组和B组对文件的互斥使用。

(1) P(S1) (2) P(SAB) (3) V(S1) (4) P(S1) (5) V(SAB) (6) V(S1) (7) P(S2) (8) P(SAB) (9) V(S2) (10) P(S2) (11) V(SAB) (12) V(S2)

计算机操作系统进程调度实验研究报告

计算机操作系统进程调度实验研究报告

————————————————————————————————作者:————————————————————————————————日期:

操作系统实验题:设计一若干并发进程的进程调度程序 一、实验目的 无论是批处理系统、分时系统还是实时系统,用户进程数一般都大于处理机数,这将导致用户进程互相争夺处理机。这就要求进程调度程序按一定的策略,动态地把处理及分配给处于就绪队列中的某一进程,以使之执行。进程调度是处理机管理的核心内容。本实验要求采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法编写和调试一个简单的进程调度程序。通过本实验可以加深理解有关进程控制块、进程队列的概念。并体会了优先数和先来先服务调度算法的具体实施办法。 二、实验要求 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解. 三、实验内容 进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法(将用户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,并按照先来先服务的方式进行调度处理)。 每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。 就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。重复以上过程,直到所要进程都完成为止。 四、实验算法流程

计算机操作系统概述习题集

计算机操作系统概述习题集 1、学习“计算机操作系统”这门课,至少要记住操作系统的概念哪两大特征? 2、选择题: (1)操作系统负责管理计算机系统的(),其中包括处理机、内存、外围设备和文件。 ①、程序;②、文件;③、资源;④、进程 (2)没有下列设备计算机无法工作(): ①、硬盘;②、软盘;③、内存;④、打印机 3、(是非题)()操作系统的“配置”或“生成”,是指可以任意按用户要求装配成各种应用核心。 4、述操作系统的五大管理功能。 5、什么是批处理系统?为什么要引入批处理系统? 6、什么叫多道程序?试述多道程序涉及技术的基本思想及特征,为什么对作业进行多道批处理可以提高系统效率? 7、何为分时系统?简述其特点。 8、分时系统和实时系统有何不同? 9、多用户操作系统离开了多终端的硬件支持,能否安装和使用? 10、多用户操作系统和网络操作系统有什么区别? 11、UNIX或Linux操作系统的最大特点是什么? 12、Linux操作系统的内核版本(X.X.XX)和发行版本(X.X)有什么区别? 15、实现多道程序解决哪些问题? 16、试比较硬盘共享的两种方式(虚拟软盘方式和文件服务方式),它们各适用于什么场合? 17、分布式操作系统应具有哪些功能? 作业管理习题集 1 、什么是作业、作业步和作业流?作业管理包括哪些内容? 2 、 SPOOLing 的含义是什么?试述 SPOOLing 系统的特点和功能,以及控制过程。 3 、作业调度的功能是什么?作业调度算法应考虑的主要因素是什么? 4 、有哪些基本的作业调度算法?在什么情况下调用作业调度程序。 6 、选择题(在括号内选择最确切的一项作为答案划一个钩,多划按错论):

操作系统实验-进程控制

实验一、进程控制实验 1.1 实验目的 加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练习Linux 系统中进程创建与控制有关的系统调用的编程和调试技术。 1.2 实验说明 1)与进程创建、执行有关的系统调用说明进程可以通过系统调用fork()创建子进程并和其子进程并发执行.子进程初始的执行映像是父进程的一个复本.子进程可以通过exec()系统调用族装入一个新的执行程序。父进程可以使用wait()或waitpid()系统调用等待子进程的结束并负责收集和清理子进程的退出状态。 fork()系统调用语法: #include pid_t fork(void); fork 成功创建子进程后将返回子进程的进程号,不成功会返回-1. exec 系统调用有一组6 个函数,其中示例实验中引用了execve 系统调用语法: #include int execve(const char *path, const char *argv[], const char * envp[]); path 要装入 的新的执行文件的绝对路径名字符串. argv[] 要传递给新执行程序的完整的命令参数列表(可以为空). envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空).

Exec 执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。如果exec 调用失败,它会返回-1。 wait() 系统调用语法: #include #include pid_t wait(int *status); pid_t waitpid(pid_t pid,int *status,int option); status 用 于保留子进程的退出状态 pid 可以为以下可能值: -1 等待所有PGID 等于PID 的绝对值的子进程 1 等待所有子进程 0 等待所有PGID 等于调用进程的子进程 >0 等待PID 等于pid 的子进程option 规 定了调用waitpid 进程的行为: WNOHANG 没有子进程时立即返回 WUNTRACED 没有报告状态的进程时返回 wait 和waitpid 执行成功将返回终止的子进程的进程号,不成功返回-1。 getpid()系统调用语法: #include #include pid_t getpid(void); pid_t getppid(void); getpid 返回当前进程的进程号,getppid 返回当前进程父进程的进程号 2)与进程控制有关的系统调用说明可以通过信号向一个进程发送消息以控制进程的 行为。信号是由中断或异常事件引发的,如:键盘中断、定时器中断、非法内存引

计算机操作系统考试重点习题集

计算机操作系统考试重 点习题集 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

计算机操作系统习题原语:由若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性;即原语的执行必须是连续的,在执行过程中不允许被中断 死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去 进程:是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位 线程:进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指中的程序的调度单位 管程:管程 (英语:Monitors,也称为监视器) 是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。这些共享资源一般是硬件设备或一群变数 链接文件:在文件之间创建链接,实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称 文件系统:操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法 快表 虚拟存储器:作业装入的时候只装入一部分,另一部分放在上,当需要的时候再装入到主存,用户的可以比主存的空间要大 逻辑地址:是指由程序产生的与段相关的偏移地址部分 物理地址:是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址

驱动程序:是一种可以使和设备通信的特殊程序。相当于的接口,只有通过这个接口,才能控制设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作临界区:指的是一个访问共用资源的程序片段,而这些共用资源又无法同时被多个访问的特性 程序控制块; 系统为了管理进程设置的一个专门的数据结构。系统用它来记录进程的外部特征,描述进程的运动变化过程。同时,系统可以利用PCB来控制和管理进程文件控制块: 操作系统为管理文件而设置的一组具有固定格式的数据结构,存放了为管理文件所需的所有有属性信息(文件属性或元数据) 处理机: 处理机包括,,输入-输出接口,加接就构成完整的计算机系统。处理机是处理计算机系统中和数据,并按照程序规定的步骤执行指令的部件 操作系统: 是管理和控制与资源的程序,是直接运行在“”上的最基本的,任何其他软件都必须在的支持下才能运行 页表: 是一种特殊的,放在系统空间的页表区,存放逻辑页与物理页帧的对应关系DMA:直接存储器访问 库函数:把函数放到库里,供别人使用的一种方式。.方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用 #include<>加到里面就可以了 简答题 1. OS有哪几大特征其最基本的特征是什么 并发、共享、虚拟、异步,最基本的是并发和共享 2. 什么是时分复用技术举例说明它能提高资源利用率的根本原因是什么

操作系统第四版-课后习题答案

操作系统第四版-课后习题答案

第一章 作者:佚名来源:网络 1、有一台计算机,具有IMB 内存,操作系统占用200KB ,每个用户进程各占200KB 。如果用户进程等待I/O 的时间为80 % ,若增加1MB 内存,则CPU 的利用率提高多少? 答:设每个进程等待I/O 的百分比为P ,则n 个进程同时等待刀O 的概率是Pn ,当n 个进程同时等待I/O 期间CPU 是空闲的,故CPU 的利用率为1-Pn。由题意可知,除去操作系统,内存还能容纳4 个用户进程,由于每个用户进程等待I/O的时间为80 % , 故: CPU利用率=l-(80%)4 = 0.59 若再增加1MB 内存,系统中可同时运行9 个用户进程,此时:cPu 利用率=l-(1-80%)9 = 0.87 故增加IMB 内存使CPU 的利用率提高了47 % : 87 %/59 %=147 % 147 %-100 % = 47 % 2 一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A 先开始做,程序B 后开始运行。程序A 的运行轨迹为:计算50ms 、打印100ms 、再计算50ms 、打印100ms ,结束。程序B 的运行轨迹为:计算50ms 、输入80ms 、再计算100ms ,结束。试说明(1 )两道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会等待?( 2 )程序A 、B 有无等待CPU 的情况?若有,指出发生等待的时刻。 答:画出两道程序并发执行图如下: (1)两道程序运行期间,CPU存在空闲等待,时间为100 至150ms 之间(见图中有色部分) (2)程序A 无等待现象,但程序B 有等待。程序B 有等待时间段为180rns 至200ms 间(见图中有色部分) 3 设有三道程序,按A 、B 、C优先次序运行,其内部计算和UO操作时间由图给出。

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

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 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章 一、填空 1.计算机由硬件系统和软件系统两个部分组成,它们构成了一个完整的计算机系统。 2.按功能划分,软件可分为系统软件和应用软件两种。 3.操作系统是在裸机上加载的第一层软件,是对计算机硬件系统功能的首次扩充。 4.操作系统的基本功能是处理机(包含作业)管理、存储管理、设备管理和文件管理。 5.在分时和批处理系统结合的操作系统中引入“前台”和“后台”作业的概念,其目的是改善系统功能,提高处理能力。 6.分时系统的主要特征为多路性、交互性、独立性和及时性。 7.实时系统与分时以及批处理系统的主要区别是高及时性和高可靠性。 8.若一个操作系统具有很强的交互性,可同时供多个用户使用,则是分时操作系统。 9.如果一个操作系统在用户提交作业后,不提供交互能力,只追求计算机资源的利用率、大吞吐量和作业流程的自动化,则属于批处理操作系统。 10.采用多道程序设计技术,能充分发挥CPU 和外部设备并行工作的能力。 二、选择 1.操作系统是一种 B 。 A.通用软件B.系统软件C.应用软件D.软件包2.操作系统是对 C 进行管理的软件。 A系统软件B.系统硬件C.计算机资源D.应用程序3.操作系统中采用多道程序设计技术,以提高CPU和外部设备的A。 A.利用率B.可靠性C.稳定性D.兼容性4.计算机系统中配置操作系统的目的是提高计算机的 B 和方便用户使用。 A.速度B.利用率C.灵活性D.兼容性5. C 操作系统允许多个用户在其终端上同时交互地使用计算机。 A.批处理B.实时C.分时D.多道批处理6.如果分时系统的时间片一定,那么 D ,响应时间越长。 A.用户数越少B.内存越少C.内存越多D.用户数越多 三、问答 1.什么是“多道程序设计”技术?它对操作系统的形成起到什么作用? 答:所谓“多道程序设计”技术,即是通过软件的手段,允许在计算机内存中同时存放几道相互独立的作业程序,让它们对系统中的资源进行“共享”和“竞争”,以使系统中

计算机操作系统考试重点习题集

计算机操作系统习题 原语:由若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性;即原语的执行必须是连续的,在执行过程中不允许被中断 死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去 进程:是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位 线程:进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位 管程:管程 (英语:Monitors,也称为监视器) 是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。这些共享资源一般是硬件设备或一群变数 链接文件:在文件之间创建链接,实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称 文件系统:操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法 快表 虚拟存储器:作业装入的时候只装入一部分,另一部分放在磁盘上,当需要的时候再装入到主存,用户的逻辑地址空间可以比主存的绝对地址空间要大 逻辑地址:是指由程序产生的与段相关的偏移地址部分 物理地址:是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址 驱动程序:是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作 临界区:指的是一个访问共用资源的程序片段,而这些共用资源又无法同时被多个线程

访问的特性 程序控制块; 系统为了管理进程设置的一个专门的数据结构。系统用它来记录进程的外部特征,描述进程的运动变化过程。同时,系统可以利用PCB来控制和管理进程 文件控制块: 操作系统为管理文件而设置的一组具有固定格式的数据结构,存放了为管理文件所需的所有有属性信息(文件属性或元数据) 处理机: 处理机包括中央处理器,主存储器,输入-输出接口,加接外围设备就构成完整的计算机系统。处理机是处理计算机系统中存储程序和数据,并按照程序规定的步骤执行指令的部件 操作系统: 是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行 页表: 页表是一种特殊的数据结构,放在系统空间的页表区,存放逻辑页与物理页帧的对应关系 DMA:直接存储器访问 库函数:把函数放到库里,供别人使用的一种方式。.方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了 简答题 1. OS有哪几大特征其最基本的特征是什么 并发、共享、虚拟、异步,最基本的是并发和共享 2. 什么是时分复用技术举例说明它能提高资源利用率的根本原因是什么 a. 时分复用技术:将资源在不同的时间片内分配给各进程以使该资源被重复利用,从而提高资源的利用率。 b. 如采用时分复用技术的虚拟处理机,能够在不同的时间片内处理多个用户的请求,从而使得用户感觉自己独占主机,而处理机在这期间也被充分的利用。

第二章 操作系统进程(练习题标准答案)

第二章操作系统进程(练习题答案)

————————————————————————————————作者:————————————————————————————————日期: 2

第二章进程管理 1.操作系统主要是对计算机系统全部 (1) 进行管理,以方便用户、提高计算机使 用效率的一种系统软件。它的主要功能有:处理机管理、存储管理、文件管理、 (2) 管 理和设备管理等。Windows和Unix是最常用的两类操作系统。前者是一个具有图形界面的 窗口式的 (3) 系统软件,后者是一个基本上采用 (4) 语言编制而成的 的系统软件。在 (5) 操作系统控制下,计算机能及时处理由过程控制反馈的信息 并作出响应。 供选答案: (1): A. 应用软件 B. 系统软硬件 C. 资源 D. 设备 (2): A. 数据 B. 作业 C. 中断 D. I/O (3): A. 分时 B. 多任务 C. 多用户 D. 实时 (4): A. PASCAL B. 宏 C. 汇编 D. C (5): A. 网络 B. 分时 C. 批处理 D. 实时 答案:CBBDD 2.操作系统是对计算机资源进行的 (1) 系统软件,是 (2) 的接口。 在处理机管理中,进程是一个重要的概念,它由程序块、 (3) 和数据块三部 分组成,它有3种基本状态,不可能发生的状态转换是 (4) 。 虚拟存储器的作用是允许程序直接访问比内存更大的地址空间,它通常使用 (5) 作为它的一个主要组成部分。 供选答案: (1): A. 输入和输出 B. 键盘操作 C. 管理和控制 D. 汇编和执行 (2): A. 软件和硬件 B. 主机和外设 C. 高级语言和机器语言 D. 用户和计算机 (3): A. 进程控制块 B. 作业控制块 C. 文件控制块 D. 设备控制块 (4): A. 运行态转换为就绪态 B. 就绪态转换为运行态 C. 运行态转换为等待态 D. 等待态转换为运行态 (5): A. 软盘 B. 硬盘 C. CDROM D. 寄存器 答案:CDADB 3.在计算机系统中,允许多个程序同时进入内存并运行,这种方法称为 D。 A. Spodling技术 B. 虚拟存储技术 C. 缓冲技术 D. 多道程序设计技术 4.分时系统追求的目标是 C。 A. 高吞吐率 B. 充分利用内存 C. 快速响应 D. 减少系统开销 5.引入多道程序的目的是 D。

操作系统练习题1-2

第一、二章习题 一、选择题 1.操作系统在计算机系统中处于(B )的位置。 (A)计算机硬件和软件之间 (B)计算机硬件和用户之间 (C)处理机和用户程序之间 (D)外部设备与处理机之间 2.在计算机系统中,操作系统是(B )。 A、一般应用软件 B、核心系统软件 C、用户应用软件 D、系统支撑软件 3、UNIX操作系统是著名的( B )。 A、多道批处理系统 B、分时系统 C、实时系统 D、分布式系统 4、(B)不是实时系统的基本特征。 A、安全性 B、公平响应 C、实时性 D、高可靠 5、分时系统响应时间与( D )有关。 A、每个应用进程分配的时间片长度 B、进程大小 C、等待队列中的就绪进程数目 D、等待队列中的就绪进程数目和时间片长度 6、批处理系统中最重要的程序是( C )。 A、数据库程序 B、文件操作程序 C、监督程序 D、计时程序 7、在下面的选项中,( A )不属于操作系统提供给用户的可用资源。 A、中断机制 B、处理机 C、存储器 D、I/O设备 8、实时操作系统必须在(B )的时间内响应一个新任务。 A、一个机器周期 B、被控对象规定 C、任意周期 D、时间片 二、填空题

1、在一个计算机系统中,资源分为四类:(处理器)、(存储器)、(I/O设备)以及信息(数据和程序)。 2、OS的主要功能有(处理机管理),用于分配和控制处理机;(存储器管理),主要负责内存的分配与回收;(I/O设备管理),负责I/O设备的分配与操纵;(文件管理),负责文件的存取、共享和保护。 3、把操作系统的操作命令界面作为(命令控制界面),操作系统为编程人员提供的界面是 (系统调用)。 4、作业由(程序)、(数据)和(作业说明书)组成。 5、在批处理系统中,系统以(作业)为单位把程序和数据调入内存以执行 6、操作系统中,一般用户的输入输出可分为5种:(联机输入输出方式)、(脱机输入输出方式)、(直接耦合方式)、( SPOOLING系统)、( 网络联机方式) 7、(脱机输入输出)方式又称为预输入方式 8、操作系统的基本特征(共享)(并发)(虚拟)(异步) 三、简答题 1.答:操作系统的职能是管理和控制计算机系统中的所有硬、软件资源,合理地组织计算机工作流程,并为用户提供一个良好的工作环境和友好的接口。操作系统的基本功能包括:处理机管理、存储管理、设备管理、信息管理(文件系统管理)和用户接口等。 2.答:现代操作系统具有以下基本特征: (1)并发性并发指的是在操作系统中存在着许多同时的或并行的活动。 (2)共享性系统中存在的各种并发活动,要求共享系统中的硬件、软件资源。 (3)虚拟性虚拟是指将一个物理实体映射为若干逻辑实体,例如虚拟处理机,虚拟存储器等。 (4)不确定性在多道程序设计环境下,各程序按异步方式运行,每道程序在何时执行、各自执行的顺序以及每道程序所需的时间、程序执行的结果都是不确定的。 3. 答:在OS中引入多道程序设计技术,可带来如下好处: (1)提高CPU的利用率当内存中仅存放一道程序时,每逢该程序运行中发出I/0请求后,CPU空闲,必须在其I/0完成后才继续运行;尤其是I/0设备的低速性,更使CPU的利用率显著降低。在引入多道程序设计技术后,由于可同时把若干道程序装入内存,并可使它们交替地执行,这样,当正在运行的程序因I/0而暂停执行时,系统可调度另一道程序运行,从而可保持CPU处于忙碌状态 (2)可提高内存和I/0设备利用率为了能运行较大作业,通常内存都具有较大容量,但由于80%以上的作业都属于中小型,因此在单道程序环境下也必定造成内存的浪费。类似地,系统中所配置的多种类型的I/0设备,在单道程序环境下,也不能充分利用。如果允许在内存中装入多道程序,并允许它们并发执行,则无疑会大大提高内存利用率和I/0设备的利用率。 (3)增加系统吞吐量在保持CPU、I/0设备不断忙碌的同时,也必然会大幅度地提高系统的吞吐量,从而降低作业加工所需费用。

第二章-操作系统进程(练习题答案)

第二章进程管理 1.操作系统主要是对计算机系统全部 (1) 进行管理,以方便用户、提高计算机使 用效率的一种系统软件。它的主要功能有:处理机管理、存储管理、文件管理、 (2) 管 理和设备管理等。Windows和Unix是最常用的两类操作系统。前者是一个具有图形界面的 窗口式的 (3) 系统软件,后者是一个基本上采用 (4) 语言编制而成的 的系统软件。在 (5) 操作系统控制下,计算机能及时处理由过程控制反馈的信息 并作出响应。 供选答案: (1): A. 应用软件 B. 系统软硬件 C. 资源 D. 设备 (2): A. 数据 B. 作业 C. 中断 D. I/O (3): A. 分时 B. 多任务 C. 多用户 D. 实时 (4): A. PASCAL B. 宏 C. 汇编 D. C (5): A. 网络 B. 分时 C. 批处理 D. 实时 答案:CBBDD 2.操作系统是对计算机资源进行的 (1) 系统软件,是 (2) 的接口。 在处理机管理中,进程是一个重要的概念,它由程序块、 (3) 和数据块三部 分组成,它有3种基本状态,不可能发生的状态转换是 (4) 。 虚拟存储器的作用是允许程序直接访问比内存更大的地址空间,它通常使用 (5) 作为它的一个主要组成部分。 供选答案: (1): A. 输入和输出 B. 键盘操作 C. 管理和控制 D. 汇编和执行 (2): A. 软件和硬件 B. 主机和外设 C. 高级语言和机器语言 D. 用户和计算机 (3): A. 进程控制块 B. 作业控制块 C. 文件控制块 D. 设备控制块 (4): A. 运行态转换为就绪态 B. 就绪态转换为运行态 C. 运行态转换为等待态 D. 等待态转换为运行态 (5): A. 软盘 B. 硬盘 C. CDROM D. 寄存器 答案:CDADB 3.在计算机系统中,允许多个程序同时进入内存并运行,这种方法称为 D。 A. Spodling技术 B. 虚拟存储技术 C. 缓冲技术 D. 多道程序设计技术 4.分时系统追求的目标是 C。 A. 高吞吐率 B. 充分利用内存 C. 快速响应 D. 减少系统开销 5.引入多道程序的目的是 D。

操作系统练习题2

操作系统练习题2 一、选择题 1.操作系统是计算机系统的核心软件。按功能特征的不同,可把操作系统分为 [1]_________________、[2]___________________、[3]_____________________、 网络操作系统和分布式操作系统几种基本类型。其中[1]的主要目的是提高系统的吞吐量和效率,而[2]是一旦有处理请求和要求处理的数据时,就立即应该处理该数据并将结果及时送会,例如[4]________________________等。 供选择的答案: [1][2][3] A、单用户系统B、批处理系统C、分时系统 D、微机操作系统 E、实时系统 [4] A、计算机激光照排系统B、办公自动化系统 C、计算机辅助设计系统 D、航空售票系统 2.操作系统是用户和计算机之间的接口,用户通过________________________、 ________________________与操作系统取得联系。 A、输入/输出设备 B、命令接口 C、中断服务程序 D、系统调用 3.常用的作业调度算法有____________________、____________________、 ____________________和____________________。 A、先来先服务法 B、先进先出法 C、最短作业优先法 D、优先数法 E、响应比高者优先法 F、最近最少使用淘汰法 4.文件的存储方法依赖于____________________和____________________。 A、文件的物理结构 B、存放文件的存储设备的特性 C、文件类型 D、文件的逻辑结构 5.设备管理的主要程序之一是设备分配程序,当进程请求在主存和外设之间传送信息 时,设备分配程序分配设备的过程通常是____________________。 A、先分配设备,再分配控制器,最后分配通道 B、先分配控制器,再分配设备,最后分配控制器 C、先分配通道,再分配设备,最后分配控制器 D、先分配通道,再分配控制器,最后分配设备

操作系统习题及答案二

三、简答题 1、什么是进程?为什么要引入进程的概念?进程与程序有何区别? 1.在操作系统中,由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。这些都是在程序的动态过程中发生的。用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。为此,人们引入“进程”这一概念来描述程序动态执行过程的性质。 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 进程和程序是既有联系又有区别的两个概念,它们的主要区别如下: (1)程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是下个动态概念。 (2)程序的存在是永久的。而进程则是有生命期的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤消而消亡。 (3)程序仅是指令的有序集合。而进程则由程序、数据和进程控制块组成。 (4)进程与程序之间不是一一对应的,即同一程序同时运行于若干不同的数据集合上,它将属于若干个不同的进程;而一个进程可以执行多个程序。 2、简述进程的三种基本状态及其变化情况。 2.进程的三种基本状态为等待态、就绪态、运行态。运行态会变成等待态或就绪态,前者是由于等待外设等资源引起,后者是由时间片用完等原因引起;等待态变成就绪态,是由于等待的条件已得到满足;就绪态变成运行态,是按调度策略从就绪队列中选出一个进程占用处理器时,该进程就从就绪态变成运行态。 3、假设有一种低级调度算法是让“最近使用处理器较少的进程”运行,试解释这种 算法对“I/O繁重”型作业有利,但并不是永远不受理“处理器繁重”型作业。 3.因为1/O繁忙型作业忙于I/O,所以它CPU用得少,按调度策略能优先执行。同样 原因一个进程等待CPU足够久时,由于它是“最近使用处理器较少的进程”,就能被优 先调度,故不会饥饿。 4、作业调度和进程调度各自的主要功能是什么? 4.作业调度的主要功能是: 1)记录系统中各个作业的情况; 2)按照某种调度算法从后备作业队列中挑选作业; 3)为选中的作业分配内存和外设等资源; 4)为选中的作业建立相应的进程; 5)作业结束后进行善后处理工作。 进程调度的主要功能是: 1)保存当前运行进程的现场; 2)从就绪队列中挑选一个合适进程; 3)为选中的进程恢复现场。 5、线程与进程的根本区别是什么? 5.在采用线程技术的操作系统中,线程与进程的根本区别在于:进程是资源的分配单位,而线程是调度和执行单位。 6、产生死锁的四个必要条件是什么? 6.答:产生死锁的必要条件如下:

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

实验一进程管理 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

操作系统100习题集

第二章Windows操作系统习题集 出题单位:南昌二十六中习题说明:本节内容为Windows操作系统,分别有A、B、C三个级别的知识点,A级最高,是计算机专业班提高的部分;B级次之,是计算机专业班的达标级别;C级最低,是非计算机专业班的达标级别。其中,C级涵盖在B级知识中,A 级知识点涵盖了B、C两级知识点。 C级 一、是非选择题。(对的选A,错的选B) 1.“开始”菜单只包含了系统提供的部分命令。(A B) 2.Windows中的文件名不区分英文字母大小写。(A B) 3.任务栏中间显示的是被打开运行的程序。(A B) 4.Windows操作系统是一个单用户单任务的操作系统。(A B) 5.同一文件夹下,不可以存放两个内容相同但文件名不同的文件。(A B)6.用户可以从“开始”菜单中选择“帮助”命令来获取相应的“帮助”信息。(A B) 7.为了让用户快速启动程序或打开文件、文件夹,我们可以在桌面或开始菜单中建立快捷方式。(A B) 8.中英文切换可以按Ctrl+空格键。(A B) 二.选择题。 9.在Windows中,能弹出对话框的操作是:() A.选择了带省略号的菜单项 B、选择了带向右三角形(?)的菜单项 C.选择了颜色变灰的菜单项 D.运行了与对话框对应的应用程序 10.“剪贴板”程序是:() A.硬盘上的一块区域B、软盘上的一块区域 C.内存中的一块区域D、高速缓冲区中的一块区域 11.当用户不清楚某个文档或文件夹位于何处时,可以使用()命令来寻找并打开它。 A.程序B、文档C、帮助D、查找 12.在Windows中,下列文件名中不合法的是() A.My Program Group B. file1. file2. bas C. A

计算机操作系统(习题集)第三章_答案

第三章处理机调度与死锁 一、单项选择题 1、操作系统中的作业管理是一种(A )。 A.宏观的高级管理 B.宏观的低级管理 C.系统刚开始加电 D.初始化引导完成 2、作业调度又称为[1A],它决定将哪些在外存储器上的处于[2D]状态的作业调入主机内存。 系统经作业调度程序选中一个或多个作业后,就为它们分配必要的内存、设备及软资源。然后控制权就交给了[3B],由[3]将它们变为一个或一组[4C],并[5A]。 供选择的答案: [1]:A、高级调度B、低级调度C、中级调度 D、进程调度 [2]:A、就绪B、阻塞C、提交D、后备 [3]:A、存储管理模块B、处理机管理模块C、文件管理模块D、设备管理模块 [4]:A、指令B、子程序C、进程D、程序段 [5]:A、把它们挂到就绪队列上B、为它们分配处理机 C、把它们挂到后备队列上 D、为它们分配设备 3、处于后备状态的作业存放在(A )中。

A.外存 B.内存 C.A和B D.扩展内存 4、在操作系统中,JCB是指(A )。 A.作业控制块 B.进程控制块 C.文件控制块 D.程序控制块 5、作业在系统中存在与否的唯一标志是(C)。 A.源程序 B.作业说明书 C.作业控制块 D.目的程序 6、按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这是指(A)调度算法。 A.先来先服务法 B. 短作业优先法 C.时间片轮转法 D. 优先级法 7、在批处理系统中,周转时间是(B )。 A.作业运行时间 B.作业等待时间和运行时间之和 C.作业的相对等待时间 D.作业被调度进入内存到运行完毕的时间 8、为了对紧急进程或重要进程进行调度,调度算法应采用(B)。 A.先来先服务法 B. 优先级法 C.短作业优先法 D. 时间片轮转法 9、操作系统中,(A)负责对进程进行调度。 A.处理机管理 B. 作业管理 C.高级调度管理 D. 存储和设备管理

操作系统实验二

操作系统实验实验二进程管理 学号 1215108019 姓名克帆 学院信息学院 班级 12电子2

实验目的 1、理解进程的概念,明确进程和程序的区别。 2、理解并发执行的实质。 3、掌握进程的创建、睡眠、撤销等进程控制方法。 实验容与要求 基本要求:用C语言编写程序,模拟实现创建新的进程;查看运行进程;换出某个进程;杀死进程等功能。 实验报告容 1、进程、进程控制块等的基本原理。 进程是现代操作系统中的一个最基本也是最重要的概念,掌握这个概念对于理解操作系统实质,分析、设计操作系统都有其非常重要的意义。为了强调进程的并发性和动态性,可以给进程作如下定义:进程是可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。 进程又就绪、执行、阻塞三种基本状态,三者的变迁图如下: 由于多个程序并发执行,各程序需要轮流使用CPU,当某程序不在CPU上运行时,必须保留其被中断的程序的现场,包括:断点地址、程序状态字、通用寄存器的容、堆栈容、程序当前状态、程序的大小、运行时间等信息,以便程序再次获得CPU时,能够正确执行。为了保存这些容,需要建立—个专用数据结构,我们称这个数据结构为进程控制块PCB (Process Control Block)。 进程控制块是进程存在的惟一标志,它跟踪程序执行的情况,表明了进程在当前时刻的状态以及与其它进程和资源的关系。当创建一个进程时,实际上就是为其建立一个进程控制块。 在通常的操作系统中,PCB应包含如下一些信息: ①进程标识信息。为了标识系统中的各个进程,每个进程必须有惟一的标识名或标 识数。 ②位置信息。指出进程的程序和数据部分在存或外存中的物理位置。 ③状态信息。指出进程当前所处的状态,作为进程调度、分配CPU的依据。 ④进程的优先级。一般根据进程的轻重缓急其它信息。 这里给出的只是一般操作系统中PCB所应具有的容,不同操作系统的PCB结构是不同的,我们将在2.8节介绍Linux系统的PCB结构。

相关文档
相关文档 最新文档