2020年4月江苏自考《操作系统》模拟题:综合题
发表时间:2020-03-13 17:14 来源:未知 作者:江苏自考网小编
第1题 生产围棋的工人不小心把相等数量的黑子和白子混装在一个盒子里,现在要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程PA和PB组成,系统功能如下:
?PA专拣黑子,PB专拣白子;
?每个进程每次只拣一个子,当一个进程拣子时,不允许另一个进程去拣子;
?当一个进程拣一个子(黑或白)后,必须让另一个进程去拣一个子(白或黑)。
请回答:
(1)这两个并发进程之间的关系是同步还是互斥
(2)写出PV操作管理时应定义的信号量及其初值。
(3)根据定义的信号量,写出用PV操作管理两个并发进程的程序。
【正确答案】 (1)两个进程之间是同步关系。因为这两个进程都要从盒子里面去拣棋子,但规定了两个进程必须轮流取不同的颜色的棋子,因而相互间要互通消息,这显然是一个进程同步问题。 (2)在该问题中应该区分“允许拣黑子”和“允许拣白子”两个消息,所以应该定义两个信号量S1和S2,分别和两个消息相对应,初值是S1:=1;S2:=0或者S1:=0;S2=1。 (3)程序如下: begin S1,S2:semaphore; S1:=1; S2:=0; cobegin Process PA begin L:P(S1); 拣黑子; V(S2); goto L1 end; process PB begin L2:P(S2); 拣白子; V(S1) goto L2 end coend end.
第2题 如果有一个程序要把50×50的数组赋初值形成单位矩阵,每个主存块为200个字节,每个数组元素占2个字节,若已分配到2个主存块可供使用,数组中的元素按行编址,其初始状态为空,程序编制如下:
(1)Var A: ARRAY[1..50,1..50]of integer;
i,j:integer;
BEGIN
FOR j:=1 to 50 DO
FOR i:=1 to 50 DO
IF i=j THEN
A[i,j]:=1;
ELSE
A[i,j]:=0
END.
(2)Var A:ARRAY[1..50,1..50]of integer;
i,j:integer;
BEGIN
FOR i:=1 to 50 DO
FOR j:=1 to 50 DO
IF i=j THEN
A[i,j]:=1;
ELSE
A[i,j]:=0
END.
当采用FIFO页面调度算法时,各会产生多少次缺页中断
【正确答案】 根据题意,每个主存块能放100个元素,2个主存块能存放200个元素。但缺页中断时,装入/调出单位还是一页(即100个元素)。由于主存初始状态为空,所以从第一页起,都要做页面中断处理。 (1)此程序按列处理,所以每执行一次赋值语句就会有一次页面中断。比如,赋A[1,1]为1,A[2,1]为0后,A[3,1],A[4,1]不在主存中,要通过缺页中断处理装入下一页,所以共产生1250次((50×50)/2)缺页中断。 (2)此程序按行处理,每装入一页可分为二行元素赋值,然后才产生一次缺页中断,所以共产生25次(50/2)缺页中断。
第3题 假定有一个磁盘组共有100个柱面,每个柱面上有8个磁道,每个盘面被划分成8个扇区。现有一个含有6400个逻辑记录的文件,逻辑记录的大小与扇区大小 一致,该文件以顺序结构的形式被存放到磁盘上。柱面、磁道、扇区的编号 从“0”开始,逻辑记录的编号也从“0”开始。文件信息从0柱面、0磁道、0扇区开始存放,请问:
(1)该文件的第3680个逻辑记录应存放在哪个柱面的第几个磁道的第几个扇区
(2)第78柱面的第6磁道的第6扇区中存放了该文件中的第几个逻辑记录
【正 确答案】 磁盘信息存放: 由题设知,本磁盘组共有100个柱面,每个柱面上有8个磁道,每个盘面被划分成8个扇区;并且文件逻辑记录的大小与扇区大小一致,且文件是按顺序结构存放 的。因此,该磁盘组的每个盘面可以存放8个逻辑记录,每个柱面可以存放64(8×8)个逻辑记录,整个磁盘组可以存放6400(100×64)个逻辑记 录。文件信息从0柱面、0磁道、0扇区开始存放,逻辑记录从0开始编号。 (1)第3680个逻辑记录存放的位置是: 柱面号:INT(3680÷64)=57 磁道号:INT(MOD(3680,64)÷8)=4 扇区号:MOD(MOD(3680,64),8)=0 所以,第3680个逻辑记录应存放在第57柱面的第4磁道的第0扇区; (2)第78柱面的第6磁道的第6扇区中存放的文件逻辑记录号是: 78×64+6×8+6=5046 所以,第78柱面的第6磁道的第6扇区中存放的文件逻辑记录号是5046。
第4题 某系统有同类互斥资源m个,供n个进程共享使用,如果每个进程最多申请x个资源(其中1≤x≤m)
证明:(1)当n(x-1)+1≤m时,系统不会发生死锁;
(2)设各进程的最大资源需求量之和为s,证明:当s<m+n时,系统不会发生死锁。
【正确答案】 (1)∵每个进程最多申请使用x个资源 ∴最坏情况下是每个进程都得到了(x-1)个资源,并且现在均申请所需最后一个资源 即,系统剩余资源数为m-n(x-1)。 此时,只要系统至少还有一个资源可以使用,就可以使这n个进程中某个进程得到其所需要的全部资源,继续执行到完成;当它执行完后释放其所占有的资源,供其他进程使用,因而,当m-n(x-1)≥1时,系统不可能发生死锁。 m-n(x-1)≥1?n(x-1)+1≤m 即,当n(x-1)+1≤m时,系统不会发生死锁。 (2)请参见(1)的证明。
(温馨提示:如果关于"江苏省自学考试报名及考试"问题不是很了解,还有什么疑问,请及时联系咨询老师:15755063059或者咨询在线老师
。)