操作系统 习题 最经典

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、设有两个优先级相同的进程P1,P2如下所示。令信号量S1,S2的初值为0,试问P1,P2并发运行结束后,x=? ,y=? ,z=?

进程P1 进程P2

y:=1; x:=1;

y:=y+2; x:=x+1;

V(S1); P(S1);

z:=y+1; x:=x+y;

P(S2); V(S2);

y:=x+y z:=x+z

X=5, y=8, Z= 9.

2、在生产者-消费者问题中,假定在生产者和消费者之间的公用缓冲池中有n 个缓冲区,可利用互斥信号量mutexP使生产者进程实现对缓冲池的互斥使用,利用互斥信号量mutexC使消费者进程实现对缓冲池的互斥使用;利用资源信号量empty和full分别表示缓冲池中空缓冲区和满缓冲区的数量。又假定这些生产者和消费者相互等效,只要缓冲池未满,生产者便可将产品送入缓冲池;只要缓冲池未空,消费者便可从缓冲池中取走一个产品。试用记录型信号量正确实现生产者和消费者的同步。

Semaphore mutexP=1, mutexC=1, empty=n, full=0; Item buffer[n];

int in=out=0;

void producer()

{

While(1)

{

Produce an item in netxp;

wait(empty);

wait(mutexP);

buffer[in]=nextp;

in= (in+1) mod n;

signal(mutexP);

signal(full);

}

}

Void consumer()

{

While(1)

{

….

wait(full);

wait(mutexC);

nextc=buffer[out];

out=(out+1) mod n;

signal(mutexC);

signal(empty);

……..

Consume the item in nextc;

…….

}

}

3、在读者—写者问题中,假定为实现Reader与Writer进程间在读或写时的互斥而设置了一个互斥信号量Wmutex。另外,再设置一个整型变量Readcount表示正在读的进程数目。由于只要有一个Reader 进程在读,便不允许Writer进程去写。因此,仅当Readcount=0,表示尚无Reader进程在读时,Reader进程才需要执行Wait(Wmutex)操作。若Wait(Wmutex)操作成功,Reader进程便可去读,相应地,做Readcount+1操作。同理,仅当Reader进程在执行了Readcount 减1操作后其值为0时,才须执行signal(Wmutex)操作,以便让Writer进程写。又因为Readcount是一个可被多个Reader进程访问

的临界资源,因此,也应该为它设置一个互斥信号量rmutex。试用记录型信号量正确实现读者—写者问题的同步。

semaphore rmutex=wmutex=1;

int readcount=0;

void reader(int i)

{

while(1)

{

wait(rmutex);

if(readcount==0) wait(wmutex);

readcount++;

signal(rmutex);

Perform read operation;

wait(rmutex);

readcount--;

if(readcount==0) signal(wmutex);

signal(rmutex);

}

}

void write(int j)

{

while(1)

{

wait(wmutex);

perform write operation;

signal(wmutex);

}

}

4、有两个作业A和B,分别在7:00和8:30到达系统,它们估计的

计算时间分别为0.8小时和0.1小时,系统在9:00开始以响应比高

者优先算法进行调度,请问在单道执行时这两道作业被选中的次序以及被选中时的响应比。

按照响应比的定义是:响应比 = 优先权= (等待时间+ 要求服务时间) /要求服务时间

∴在 9:00开始调度时两作业的啊应比如下:

A作业的响应比=(120分钟+ 48分钟)/48分钟=3.5

B作业的响应比= (30分钟+ 6分钟)/6分钟=6

因而应先选中作业B执行;作业B被选中时的响应比为6,待作业B 执行结束后再选作业A执行。

此时A的响应比= (120分钟+ 6分钟+ 48分钟)/48分钟=3.625

5、已知分段地址的结构如下:

① 在这样的地址结构中,允许一个作业最多可以分为多少个段?

② 每个段的最大长度是多少?

③ 已知有一逻辑地址是0296H ,段表如下,物理地址是多少?

1)28=256 2) 28=256

3)0296 H= 0000 0010 1001 0110 2 150

+ 0001 1000 0000 0000 = 1896H

6K+ 150 = 6294

段内地址

段号

15

8 0

7

相关文档
最新文档