操作系统部分(30分)
一、填充(每空一分,共14分)
1、采用单级文件目录的主要缺点是存在_______________问题。
2、在单道程序运行环境下,常用的作业调度算法有__________、__________、和__________。
3、特权指令是只能由_________________使用的指令。
4、存储器的保护机制(硬件)有___________保护和_________保护。
5、预防死锁中的预先分配法和标准(有序)分配法,它们分别破坏了产生死锁必要条件中的_____________条件和_____________条件。
6、在段式虚拟存储管理中,段表设置“改变位”的目的是为了___________________________________。
7、进程有三种基本状态,即[1]______________状态,[2]___________状态,[3]___________状态。当进程又[1]演变为[2]或[3]时,就会引起__________。
二、判断。(每题1分,共5分)
1、()有了动态重定位机构,作业地址空间的代码就可以原封不变的装入到给定的内存中。
2、()任一时刻,若有执行状态的进程,就一定有就绪状态的进程。
3、()文件系统中,设置OPEN操作的目的是为了将文件复制到内存中。
4、()临界段是不可中断的程序。
5、()作业的提交状态进入后备状态的过程是由作业调度程序完成的。
三、(5分)
分页式存储管理与分段式存储管理的主要区别是什么?
四、(6分)
以下是高级通讯原语SEND和RECEIVE不完整的框图。请填充以适当的P、V操作,并说明所用信号量的意义和初值。
SEND: RECEIVE:
↓ ↓
申请一消息区 (3)
↓ ↓
消息送消息区 (4)
↓ ↓
(1) 从消息链上摘下一消息
↓ ↓
消息区挂入消息链 (5)
↓ ↓
(2) 消息送接收区
↓ ↓
V(S2) 释放消息区
↓ ↓
语言与编译部分(35分)
一、(7分)
把下面不确定的有限自动机化为确定的有限自动机。
图(9410.bmp)
二(8分)
有文法 S—〉(L)| a
L—〉L,S | S
给此文法配上语义动作子程序(或者说为此文法写一个语法制导定义),它输出配对括号的个数,如对于句子
(a,(a,a)),输出是2。
三、(15分)
为语言{a^(m)b^(m)|n>m>=0}写三个文法,它们分别是二义文法,LR(1)文法和非LR(1)且非二义的文法。不必证明所写
文法的正确性,但每个文法的产生式不能超过4个。
四、(5分)
右边是一个FORTRAN 77程序,按语言的语义 CALL SUB
程序的输出结果是什么?在静态存储分配情 CALL SUB
况下,实际的输出结果是什么?两者是否有 END
区别?说明理由。 SUBROUTINE SUB
DATA I/10/
WRITE(*,*) I
I=100
END
程序设计与数据结构部分(35分)
一、(8分)
下面的程序段是合并两条链(F和G)为一条链F的过程。作为参数的两条链都是按结点上NUMBER值的由大到小链接。
合并后新链仍按此方式链接。请填写下述空框,使程序正确工作。
type pointer= ^ node;
node =record number:integer;
next :pointer
end;
procedure combine(var f:pointer; g:pointer);
var h,p : pointer;
begin new(h); h^. next :nil;
p:=h;
nil) do
if f^
=g^.number
then begin
p^.next:=__A__; P:=__B___; __C
end
else begin
p^. next:=__D____; P:=___E___; ____F
end;
if f=nil then __G__;
if g=nil then __H__;
f:=h^.next ; dispose(h)
end;
二、(12分)
如果一个数列中的某一段(至少有两个元素)的各元素值均相同,则称之为等值数列段。等值数列段中元素的个数
叫做等值数列段的长度。
现有由N个元素组成的整数数列A,编一程序求A中长度最大的所有等值数列段的始末位置,如果没有等值数列段,则
输出特殊标志。
三、(15分)
编一个程序,对输出的任意正整数N,打印出集合{0,1,…,n-1}的所有子集。例如,输出为3时,输出是
{ }
{0}
{1}
{0,1}
{2}
{0,2}
(1,2}
{0,1,2}