操作系统典型题目讲解

Proc结构或称进程表项进程控制块User结构Unix进程正文段:可共享程序段用户栈区数据段用户数据区:非共享程序段和用户工作数据系统工作区:包括核心栈和user结构 26、下列内容中属于进程上下文的是:()(选项:用户打开文件表;PCB;中断向量;核心栈)

27、根据Bernstein条件,则如下4条语句中: S1:a=x+y; S2: b=z+1; S3:c=a-b; S4:w=c+1;

S1和S2能否并发执行?S3和S4呢? 28、某系统的进程状态变迁如图所示:(1)说明一个进程发生变迁1、3和5的原因;(2)当发生一个变迁时可能引起另一个变迁的发生,则这两个变迁称为因果变迁。下述因果变迁是否会发生?如果有可能的话,会在什么情况下发生?3→5;3→2;2→1;4→1;4→5. (3)根据此状态变迁图说明该系统的调度策略和调度效果。

运行2低优先就绪135阻塞4高优先就绪首次选择100ms,以后选择500ms 2.2 进程控制:

1、下列程序执行时,系统的输出可能是什么? {

a=55;

9

}

pid=fork(); if (pid==0){ } Else { }

sleep(7);

Printf(“a=%d\\n”,a); Wait(0);

Printf(“parent child exited\\n”); sleep(5); a=99; sleep(5);

printf(“child leaving\\n”); exit(0);

2.3进程同步:

Int I;

(for i=1;i<=10;i++) Total=total+1;

1、临界资源:P1、P2两个进程执行代码相同,共享total变量:

问:最后total可能的最小值、最大值(2,20) 2、判断:临界区就是临界资源所在的区域。

3、所谓临界区是指(一个缓冲区、一段数据区、同步机制、一段程序)(南京理工01) 4、判断:对临界资源应采用互斥的方式来实现共享。(北京理工02)

5、下面活动分别属于进程的哪种制约关系?(1、几个同学去图书馆借书;几个同学在打篮球;流水生产线上的各道工序;对一个产品的生产和消费;)(北京理工96) 6、填空:若信号量 初值为3,当前值为-3,则表示有()个进程在该信号量上等待? 7、下面是两个并发执行的进程,他们能正确运行吗?若不能请修改。(北航02) Parbegin

Int x; P1 {

int y,z;

10

P2: { }

}

X=1;y=0;

If x>=1 then y=y+1; Z=y;

x=0;t=0;

If x<=1 then t=t+2; U=t;

8、双进程临界区问题的算法,其中布尔型数组blicked[2]初始值为{false,false},整型turn初始值为0,id代表进程编号(0,1),请说明正确否?(违反忙则等待原则) Do{

blocked[id]=true; While(turn!=id) { }

编号为id的进程的临界区 Blocked[id]=false;

编号为id的进程的非临界区 }while(true);

9、在具有N个进程的系统中,允许M个进程(N≥M≥1)同时进入它们的临界区,其信号量S的值的变化范围是(),处于等待状态的进程数最多是()个。 10、判断以下解决双进程临界区问题的算法是否正确: Process Pi(i=0,1):

Do{

Flag[i]=true; While(flag[1-i]);

critical section flag[i]=false;

While(blocked[1-id]); Turn=id;

remainder section

}while(1);

11

11、用V操作唤醒一个等待进程时,被唤醒进程的状态变为()。(选项:运行;等待;就绪;完成)

12、若有3个进程共享一个互斥段,每次最多允许两个进程进入互斥段,则信号量的变化范围是()。 13、关于进程同步与互斥的说法,判断:

(1)进程的同步与互斥都涉及到并发进程访问共享资源的问题。 (2)进程的同步是进程互斥的一种特殊情况。

(3)进程的互斥是进程同步的特例,互斥进程是竞争共享资源的使用,而同步进程之间必然存在依赖关系。

(4)进程互斥和进程同步有时候也称为进程同步。 14、判断:临界区是不可中断的程序。

15、判断:如果在加锁法实现互斥时,将未进入临界区的进程排队等待,从而让其有被再调度 的机会,加锁法和P、V原语实现互斥时其效果是相同的。

16、由于并发进程执行的随机性,一个进程对另一个进程的影响是不可预测的,甚至造成结果的不正确,下面对造成不正确的因素的描述正确的是:()(选项:与时间有关;与进程占用的处理机有关;只与执行速度有关;只与外界的影响有关)

17、有两个优先级相同的进程A、B如下,令信号量S1和S2的初值均为0,已知Z=3,则A、B并发运行结束后X、Y、Z的值分别是:

A Y=2; Y=Y+3; V(S1); Z=Y+0; P(S2); Z=Y+Z; B X=2; X=X+3; P(S1); X=X+Y; V(S2); Y=Y+Z; 18、信号量是一个整型变量,可在其上做加1或减1的操作。

2.4 经典进程同步问题

1、一个供应商用汽车给某超市送货,并把汽车上的货物用超市的三轮车运到仓库中,超市的工作人员也用三轮车从仓库中取货去出售。假设共有3辆三轮车,仓库中只能容纳10辆三轮车的货物,且每次从汽车上取货只能共给一辆三轮车,仓库也只能容纳一辆三轮车进入。用信号量实现向仓库中送货及从仓库中取货的同步算法。 2、有一个仓库,可以存放A、B两种产品,但要求:

① 每次只能存入一种产品(A或B); ② A产品数量-B产品数量

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

12

联系客服:779662525#qq.com(#替换为@)