操作系统 习题 最经典
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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到达系统,它们估计的计算时间分别为小时和小时,系统在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分钟=
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
6、某采用分页存储管理的操作系统中,物理地址占32位,逻辑地址中页号占4位,页大小为4KB, 该系统的内存空间的大小为多少
段内地址 段号 15
8 0
7