某段式存储管理系统中,有一作业的段表如下表所示,求逻辑地址[0,65],[1,55],[2,90],[3,20]对应的主存地址(按十进制)。(其中方括号中的第一个元素为段号,第二个元素的段内地址。)
0 200 600 0
1 50 850 0
2 100 1000 0
3 150 — 1
8.解:逻辑地址[0,65],对应的主存地址为600+65=665。
逻辑地址[1,55],因为段内地址超过段长,所以产生段地址越界中断。
逻辑地址[2,90],对应的主存地址为 1000+90=1090。
逻辑地址[3,20],因状态为1,即该段在辅存中,故产生缺段中断。
在一个盒子里,混装了数量相同的围棋白子和黑子。现要由进程 和把白子和黑子分开。拣白子,拣黑子,规定每个进程每次只拣一子,当一进程不在拣子时,不允许另一个进程去拣,当一进程拣了一子时,必须让另一进程接着去拣。试用P.V操作写出这两个进程正确执行的程序
2.解:由规定,每进程每次只拣一子,且每次只能一进程拣子,故两进程互斥进入,但每进程拣一子后,另一进程必须进入拣子。则其实是同步问题,故设置两信号量S1、S2,如果先让P1拣白子,则信号量初值S1=1,S2=0,两并发进程程序如下:
进程P1 进程P2
P(S1) P(S2)
拣一白子 拣一黑子
V(S2) V(S1)
3.桌上有一只盘子,每次只能放入一个水果,进程 向盘中放苹果,进程向盘中放桔子,进程取走盘中苹果,进程取走盘中桔子。试用P,V操作写出它们能正确执行的程序。
3.解:设信号量S的初值1,信号量的S1和 S2初值均为0。程序如下:
进程P1 进程P2
P(S) P(S)
向盘中放苹果 向盘中放桔子
V(S1) V(S2)
进程P3 进程P4
P(S1) P(S2)
取盘中苹果 取盘中桔子
V(S) V(S)