目录
操作系统---期末应用综合题
操作系统---期末应用综合题
1. 若在一分页存储管理系统中,某作业的页表如表1所示。已知页面大小为1024字节,试将逻辑地址1011,5012(十进制数)转化为相应的物理地址。
表1某作业页表
页号 | 块号 |
0 | 2 |
1 | 3 |
2 | 1 |
3 | 6 |
【答案】在分页存储管理系统中,为了实现逻辑地址到物理地址的变换,系统将逻辑地址中的页
号与页表长度进行比较,如果页号超过了页表长度,则表示本次所访问的地址已超越进程的地址空间,系统产生地址越界中断;否则,根据页号查页表,从中得到该页的物理块号,并将它存入物理地址的块号部分,与此同时再将逻辑地址中的页内地址直接送入物理地址中的块内地址部分,从而得到了要访问的物理地址。
在本题中,为了描述方便,设页号为P,页内位移为W,逻辑地址为A,页面大小为L,则:
P=A/L
W=A%L
- 逻辑地址1011。
P=1011/1024=0
W=1011% 1024=1011
查页表知第0页在2号块,所以物理地址为:2×1024+1011=3059。
- 逻辑地址5012。
P=5012/1024=4
W=5012%1024=916
因页号超过页表长度,该逻辑地址非法。
5. 当前磁盘读写位于柱面号20,此时有多个磁盘请求以下列柱面号顺序送至磁盘驱动器:10、 22、20、2、40、6、38。在寻道时,移动一个柱面需要6ms,按先来先服务和电梯算法(方向从0~40)计算所需总的寻道时间。
【答案】(1)先来先服务:寻道的次序为20、10、22、20、2、40、6、38。总的寻道时间为:【20-10、22-10、22-20、20-2、40-2、40-6、38-6】(10+12+2+18+38+34+32)*6=876ms。
(2)电梯算法(方向从0~40):寻道的次序为20、22、38、40、10、6、2。总的寻道时间为:(2+16+2+30+4+4)*6=348ms。
1. 有两个合作进程P1、P2它们从一台输入/输出设备读入数据,P1进程读入数据a,P2进程读入数据b,输入设备是一台独占设备,如下图所示。两个进程做如下计算:
P1:x=a+b;
P2:y=a*b;
两个进程的工作流程
计算完成后结果x、y由进程P1输出。用信号量实现进程P1 、P2的同步算法。
【答案】两个进程的同步情况如下图所示,由于输入设备是一台独占设备,所以input(a)和input(b)只能互斥执行。设置4个信号量,s1表示数据a是否读入,s2表示数据b是否读入,s3表示是否完成y=a*b计算,mutex表示对输入设备的互斥访问。对应的同步算法如下:
Semaphore s1=0 ,s2=0,s3=0,mutex=1;
main( )
{ Cobegin
{ P1( ) //P1进程
{ P(mutex);
input(a);
V(mutex);
V(s1);
P(s2);
x=a+b;
P(s3);
输出x、y;
}
P2( ) // P2进程
{ P(mutex);
input(b);
V(mutex);
V(s2);
P(s1);
y=a*b;
V(s3);
}
}
Coend
}
进程P1 进程P2
两个进程的同步情况
6. 某银行提供一个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号机选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:
cobegin
{ 顾客进程i
{ 从取号机获得一个号码;
等待叫号;
获取服务;
}
营业员进程
{ while(TRUE)
{ 叫号;
为顾客服务;
}
}
} coend
请添加必要的信号量和P、V(或wait( )、signal( ))操作,实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。
【答案】完整的过程及信号量的含义和初值设置如下:
Semaphore mutex=1; //互斥使用取号机信号量
Semaphore empty=10; //空座位的数量信号量
Semaphore full=0; //己占座位的数量信号量
Semaphore service=0; //等待叫号信号量
cobegin
{ 顾客进程i
{ P(empty);
P(mutex);
从取号机获得一个号;
V(mutex);
V(full);
P(service); //等待叫号
}
营业员进程
{ while(TRUE)
{ P(full);
V(empty);
V(service); //叫号
为顾客服务;
}
}
} coend