北航操作系统2011年期末试卷试题解析

操作系统试卷(2011年)参考答案及部分解析

一、名词解释题(每题4分,共24分)
1、文件控制块
答案:文件控制块是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息。文件控制块是文件存在的标志
文件控制块一般包括的内容:
文件名
文件类型
物理地址
文件大小
最近访问日期
最近修改日期
文件主标识
访问权限

2、临界资源
答案:一次仅允许一个进程使用的共享资源。

3、虚拟存储器
答案:虚拟存储技术是在主存和辅存之间,增加部分软件及必要的硬件支持,使主、辅之间的信息交换、程序的重定位、地址转换都能自动进行,从而主、辅存形成一个有机的整体,这种存储器的概念成为虚拟存储器。

4、死锁
答案:两个以上的进程相互等待一个永远不可能发生的条件出现,这种僵

5、页表
答案:页式存储管理使用的数据结构,主要用于逻辑地址到物理地址的映射。

二、判断题(每题1分,共6分)
1、由于P、V操作描述同步、互斥等问题的能力不足,所以有必要引入其它的通讯原语或机制,如send, receive或Monitor等。 (F)
解析:
在这里插入图片描述
P/V操作完全可以实现所有要求

2、信号量是只允许由P/V操作进行访问和修改的数据结构。 (T)
解析:
在这里插入图片描述

3、在请求页式存储管理中,页面淘汰所花费的时间不属于系统开销。(F)
解析:对操作系统进行管理的操作都属于系统开销

4、预防死锁就是破坏死锁存在的某个必要条件。(T)

5、磁盘是一类典型的字符设备。 (F)
解析:
有两类设备。
块设备:系统中可以随机访问(不按顺序访问)数据,这种设备称为块设备。比如我们常用的磁盘就是一种典型的块设备。

字符设备: 系统中按字符流的方式有序的访问数据,这种设备称为字符设备。比如我们常用的键盘。
https://blog.csdn.net/longwang155069/article/details/43418891

三、简答题(每题5分,共20分)
1、如果普通用户程序可以自行修改页表,会产生什么问题?
答案:页表用于完成地址映射。如果用户可以修改页表,那么该用户就可以访问任何地址,从而产生安全问题。

2、进程与线程之间有何区别?
答案:
进程是操作系统中并发单元,也是能分得资源的最小单位。线程是在进程内部活动的并发单元,它只是进程行为的一条独立的执行路线,它能使用的资源仅限于它所在的进程范围之内,惟一能通过线程获得的资源就是使用处理机的时间片。有时也把线程称为轻量级进程。

3、简述并比较SCAN(扫描)磁盘调度算法与最短寻道时间优先算法。
答案:最短寻道时间优先算法选择访问磁道与当前磁头所在磁道距离最近的进程,容易产生饥饿现象。SCAN优先考虑磁头移动方向(按照一个方向移动)。
解析:
在这里插入图片描述

4、信号量的物理意义是什么?
答案:信号量的值为正时,表示系统中某类资源的数量;为负时,表示等待进程个数。

四、资源分配(共10分)
某计算机系统中有8 台打印机,有k个进程竞争使用,每个进程最多需要3 台打印机. 该系统可能会发生死锁的k 的最小值是多少?并说明理由。
答案:k=4.
分析:假设k=3,3 个进程共享8 台打印机,每个进程最多可以请求3 台打印机,若3个进程都分别得到2 台打印机,系统还剩下2 台打印机,接下去无论哪个进程申请打印机,都可以得到满足,3 个进程都可以顺利执行完毕,这种情况下不会产生死锁。假设k=4,4个进程共享8 台打印机,都得不到满足,产生了互相等待,可能会发生死锁。

五、进程同步(共15分)
(1)写出P、V操作的定义。(5分)
(2)某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。试用PV操作同步顾客和营业员的活动过程。(10分)
答案:
(1)S为一个信号量,P、V操作可描述为:
P(S): while S<=0 do skip
S := S-1;
V(S): S := S+1;
(2) 程序结构2分
信号量初值2分
程序逻辑6分

六、存储管理(15分)
某计算机提供给用户232字节的虚拟存储空间,虚拟存储器采用一级页表实现,页面大小是4K字节。某进程的页表内容如下表所示,操作系统最多为进程分配2页物理内存,采用最近最少使用置换算法(LRU)和局部淘汰策略。设又虚地址访问序列2111H、191AH、2315H,请问:
(1)进程页表占用多少内存空间?请说明理由。(5分)
(2)191AH的物理地址是多少?请说明理由。(10分)
在这里插入图片描述

答:
(1)4MB
解析:2^32/ 212=220
2^20*4=4M
解析:一个页表大小为4K,因此需要2^20个页表
每个页表项对应一个页表,但每个页表项只有4B,因此为4M

(2)物理地址为1091AH。
虚地址191AH被分成两部分,页号P=1,页内偏移D=91AH。由于进程工作集为2,需要替换第0页,因此191AH的对应的物理块号为10H。物理地址为10H*4K+91AH=1091AH。
注:已经访问过对应页号为2的2111H,因此按照LRU原则应该访问0(页号1的内容不存在)
最多分配两页内存,故不能再分配,只能从已经分配的内容中提取
工作集概念:
https://blog.csdn.net/zhuliting/article/details/6118702

七、并发问题(10分)
下面是两个并发执行的进程。它们能正确运行吗?若不能请举例说明,并改正之:
cobegin
var x:integer;
procedure P1 procedure P2
var y,z:integer; var t,u:integer;
begin begin
x:=1; x:=0;
y:=0; t:=0;
if x1 then y:=y+1; if x1 then t:=t+2;
z:=y; u:=t;
end end
coend

答:不能正确运行。例如:先执行完整个P1,再执行P2,那么P1中y的值为1。但是如果执行到P1:x:=1;时,切换到P2执行,然后再执行P1,那么那么P1中y的值为0。同样条件的两次运行,其结果是不确定的。
有很多种改正方法,下面是一个例子。
cobegin
var empty: semaphore := 0;
var x:integer;
procedure P1 procedure P2
var y,z:integer; var t,u:integer;
begin begin
P(empty);
x:=1; x:=0;
y:=0; t:=0;
if x1 then y:=y+1; if x1 then t:=t+2;
z:=y; u:=t;
V(empty);
end end
coend

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,buaa数据结构期末考试的题目要求是对函数调用栈进行分析,并输出函数调用关系。在这个题目中,用户通过输入操作和函数名来模拟函数的入栈和出栈操作。每个函数在调用栈中的出现顺序被称为函数的运行时调用序。要求按照函数的运行时调用序输出函数的调用关系,包括函数名及被调用函数,用冒号":"分隔,被调用函数之间用逗号","分隔。若一个函数没有调用其他函数,则不输出。该题目中规定函数名长度不超过20,每个函数最多调用不超过10个不同函数,程序中用户定义的函数个数不超过100。 根据引用,需要使用三个关键数组:line是一个栈,用来存储函数的入栈和出栈操作;ans用来存放函数的调用关系;name[MAX][20用来存储函数的名称,其中一维下标即为函数的编号。 根据引用,该题目的一个解决思路是,将函数名以字符串形式存储起来,并用数组的下标代替函数名,相当于给函数名编了号。然后根据这个编号来进行函数的调用。 综上所述,buaa数据结构期末考试的题目是对函数调用栈进行分析,并输出函数调用关系。根据给定的操作和函数名,通过数组和栈的操作,可以将字符串形式的函数名转化成编号,并根据编号来建立函数之间的调用关系,最后按照函数的运行时调用序输出函数的调用关系。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [BUAA北航2021期末数据结构B题](https://blog.csdn.net/weixin_53241840/article/details/118284659)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值