中科院计算机技术研究所1999年硕士生入学试题 编译原理与操作系统

中科院计算机技术研究所1999年硕士生入学试题 编译原理与操作系统

一.(15分)有表达式如下:A+B*(C-D)**N (**为幂乘)
(1)给出该表达式的逆波兰式表示(后缀式);
(2)给出上述表达式的四元式和三元式序列.

二.(15分)有C程序如下:
main()
{
printf("%d,%d,%d/n",10);
}
(1)试着写出上述printf语句输出的结果;
(2)从运行环境和printf的实现分析为什么会有这样的输出结果.

三.(5分)构造一个DFA(确定的有限自动机),使之接受含偶数个"1"的0,1串集.

四.(5分)有文法G,其产生式如下:
S->S(S),
S->ε /*空产生式*/
试写出一个语法制导定义,它输出配对的括号个数.

五.(10分)已知某语言L={a^(m)b^(n)|n>m>=0}.试写出产生该语言的两个文法G1和
G2,其中G1是LR(1)文法,G2是非LR(1)和非二义性文法.

六.填空(每空一分,共20分)
1.现代操作系统的两个最基本的特征是___和___.
2.进程控制块的初始化工作包括___,___和___.
3.在操作系统中引入线程概念的主要目的是___.
4.unix系统v中,系统向用户提供的用于创建新进程的系统调用是___;用于建立无名
管道的系统调用是___;用于创建有名管道的系统调用是___.
5.unix系统v中,引起进程调度的原因有___,___,___和___等.
6.在分区分配算法中,首次适应算法倾向于优先利用内存中___部分的空闲分区,从
而保留了___部分的大空闲区.
7.进行设备分配时所需的数据表格主要有___,___,___和___等.
8.利用符号链实现文件共享时,对文件主删除了共享文件后造成的指针悬空问题,解
决的方法是___.

七.(8分)在消息传递通信方式下,
A.发送进程和接收进程在通信过程中可以采用那三种同步方式?
B.试以下面给出的发送进程和接收进程(将接收到的数据存入S)为例,说明当接收进
程执行到标号为L2的语句时,采用这三种同步方式,X的值可能各是多少?
    发送进程P:        接收进程Q:
    M=10;
L1:    send M to Q;    L1:    receive S from P;
L2:    M=20;        L2:     X:=S+1;
    goto L1;

八.(8分)一系统具有150个存储单元,在T0时刻按下表所示分配给3个进程:
进程    Maximum demand       Current allocation
P1        70              25
P2        60              40
P3     60              45
对下列请求应用银行家算法分析判定是否是安全的:
A.第4个进程P4到达,最大需求60个存储单元,当前请求分配25个单元.
B.第4个进程P4到达,最大需求50个存储单元,当前请求分配35个单元.
如果是安全的请给出一个可能的进程安全执行序列.如果是不安全的,请说明原因.

九、(14分)设正在处理器上执行的一个进程的页表如下.页表的虚页号和物理块号
是十进制数,起始页号(块号)均为0.所有的地址均是存储器字节地址,页的大小为
1024字节.
A.详述在设有快表的请求分页存储管理系统中,一个虚地址转换成物理内存地址的过程.
B.下列虚地址对应与什么物理地址: (1)5499; (2) 2221;
虚页号     状态位     访问位      修改位     物理块号
0       1       1   0       4
1        1        1   1         7
2        0        0   0         ---
3        1        0   0         2
4        0        0   0        ---
5        1        0   1         0
注释:访问位---当某页被访问时,其访问位被置为1.

※试卷提供:王敏
※来源:天极网考研 http://edu.yesky.com/jxzl/kaoyan/kaoyan.htm
--

中科院计算机技术研究所1999年硕士生入学试题 编译原理与操作系统参考答案

一.
(1)后缀式:ABCD-*+ECD-N**/+
(2)
    四元式        三元式
    (1)( - , C , D , t1)    (1)( - , C , D )
    (2)( * , B , t1, t2)    (2)( * , B ,(1))
    (3)( +, A , t2, t3)    (3)( +, A ,(2))
    (4)( - , C , D, t4)    (4)( - , C , D )
    (5)(**, t4, N , t5)    (5)(**, (4), N)
    (6)( / , E , t5, t6)    (6)( / ,E ,(5))
    (7)( +, t3, t6, t7)    (7)( +,(3),(6))

二.
(1)(5分)输出结果: 10,X,Y 其中X,Y是随机整数值
(2)(10分)
从活动记录内容安排看,在运行栈中,调用者的活动记录在被调用者的下面,如图:
其中参数域和可能有的返回值放在紧靠调用者活动记录的地方.这样的好处是,对
调用者来说无须了解被调用者的局部数据或临时量,做到信息隐藏.另一好处是,
可以处理变元个数可变的过程,如printf.
从printf实现看,C语言中的printf函数,他的第一个变元指出了其余参数的性质,所以
一旦printf能够确定第一个变元位置,他就能找到其余变元.C的参数是逆序计算和
进栈的,这样就保证了被调用者能知道第一个变元的位置.在所给例子中,main函数
调用printf时仅压入两个参数到栈中,而第一个参数中指示要显示三个整数值,但仅
给出(压入栈(一个有效值).所以出现上述结果.

三.(5分)
见附件图片

四.(5分)为符号S引入综合属性h,语法制导定义如下:
    产生式        语义规则
    S->S1(S2)    S.h:=S1.h+S2.h+1
    S->ε        S.h:=0
    S'->S        print(S.h)/*输出其配对括号数*/
五.(10分)
    G1:LR(1)文法    G2:非LR(1),非二义性文法
    S->A,B        S->aSb|B
    A->aAb|ε    B->Bb|b
    B->Bb|b
六.填空
1.并发,共享
2.初始化标识符信息,初始化处理机状态信息,初始化处理机控制信息;
3.为了减少程序并发执行时所需付出的时空开销,提高程序执行的并发度;
4.fork pipe mknod
5.正在执行的进程时间片完; 正在执行的进程执行了sleep系统调用; 正在执行的
进程执行了exit系统调用; 正在执行的进程在用户态运行时有优先级更高的进程
进入就绪队列
6.中低地址 , 高地址
7.设备控制表, 控制器控制表, 通道控制表, 系统设备表
8.只让文件主拥有指向该文件索引结点的指针,而共享该文件的其他用户只有该文
件的路径明而不是指向索引结点的指针.
七.在消息传递通信方式下:
A三种同步方式分别为:
1.发送进程和接收进程均阻塞(即同步的发送和接收)
2.发送进程不阻塞,接收进程阻塞(即阻塞的发送和接收)
3.发送进程和接收进程均不阻塞(即无阻塞的发送和接收)
B.同步的发送和接收方式下:X=11;
阻塞的发送和接收方式下:X=11;
无阻塞的发送和接收,X=11,或21,或-99.
八.应用银行家算法
A.安全,存在至少一个进程安全执行队列:P3,P2,P1,P4.(只要P3排第一均可)
B.不安全.因为系统在满足了P4的资源请求后,已不满足安全性.
九.
A.在设有快表的请求分页系统中地址变换机构在进行地址变换时,
(1)首先检索快表,试图找到所要访问的页.若找到,便修改页表中的访问位.对于写指
令,还需将修改位置成"1",然后利用页表项中给出的物理块号和页内地址(偏移址),
形成物理地址.
(2)如果在快表中未找到该页的页表项,则应再到内存中查找页表,再从找到的页表
项的状态位来了解该页是否已调入内存,其结果可能是:
(1)该页已调入内存,这时应将该页的页表写入快表,当快表已满时,应先调出按某种
算法确定的页的页表项,然后再写入该页的页表项.然后再执行如(1)所述的地址变
换过程.
(2)该页尚未调入内存,便要产生缺页中断,请求操作系统从外存将所缺之页调入内
存.操作系统的缺页中断机构从外存中找到所缺的页后,判断内存是否已满.若否,则
从外存调入所缺的页;若是,还要先调用页面置换算法从内存中换出一页,再从外存
调入所缺的页.在做页面置换时,若将被换出的页的修改位置为"1",说明已被修改过
,则要将该页写回内存,然后执行(1)所述的地址变换过程.
B.
    虚地址(虚页号,页内地址)         物理地址(物理块号,块内地址)
2221=1024*2+173        (2,173)         (不在内存)
5499=1024*5+379        (5,379)         (0,379)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值