当前位置:问答库>考研试题

2017年内蒙古大学计算机学院893数据结构与操作系统(自命题)考研强化模拟题

  摘要

目录

2017年内蒙古大学计算机学院893数据结构与操作系统(自命题)考研强化模拟题(一).... 2

2017年内蒙古大学计算机学院893数据结构与操作系统(自命题)考研强化模拟题(二).... 9

2017年内蒙古大学计算机学院893数据结构与操作系统(自命题)考研强化模拟题(三).. 13

2017年内蒙古大学计算机学院893数据结构与操作系统(自命题)考研强化模拟题(四).. 17

2017年内蒙古大学计算机学院893数据结构与操作系统(自命题)考研强化模拟题(五).. 24

一、应用题

1. 下图将一组进程分为4类,假定各类进程之间采用优先级调度,每类进程内部采用时间片轮转调度。请简述PI 、P2、P3、P4、P5、P6、P7、P8进程的调度过程。

【答案】不同类进程之间采用优先级调度,而同类进程内部采用时间片轮转调度。先进行优先级4的进程调度,P1, P2, P3按时间片进行轮转;等Pl ,P2, P3均执行完,执行优先级3的进程P4, P5。同理P4, P5按时间片轮转,运行完成后调度优先级1的进程P6, P7, P8。进程P6, P7, P8按时间片轮转直至完成。

【解析】所谓多级反馈队列轮转法就是把就绪进程按优先级排成多个队列,并赋给每个队列不同的时间片,高优先级进程的时间片比低优先级进程的时间片小。调度时先选择高优先级队列的第一个进程,使其投入运行,当该进程时间片用完后,若高优先级队列中还有其他进程,则按照轮转法依次调度执行,否则转入低一级的就绪队列。只有高优先级就绪队列为空时,才从低一级的就绪队列中调度进程执行。

2. 已知T0时刻系统资源分配情况如下表所示。T0时刻系统资源分配表

(1)判断系统当前状态是否是死锁状态?

(2)P2进程发出请求向量Request2[l, 0,1], 系统能把资源分给它吗?

(3)若在P2进程申请资源后,P3进程发出请求向量Request3[0, 0, 1], 系统能把资源分给它吗?

【答案】(1)①初始化,令Work=Available,Finish 列全为false 。

系统资源初始化分配表

②因为将资源分配给P2进程,同时标记FiniSh[2]为true 。P2进程使用完后将

系统将资源分配给P2进程

它所占用的全部资源释放。此时系统资源分配情况如下表所示。

因为将资源分配给P3进程,同时标记FiniSh[3]为true 。P3进程使用完后将它所

系统将资源分配给P2进程

占用的全部资源释放,此时系统资源分配情况如下表所示。

因为将资源分配给P4进程,同时标记FiniSh[4]为true 。P4进程使用完后将它

系统将资源分配给P4进程

所占用的全部资源释放,此时系统资源分配情况如下表所示。

因为将资源分配给P1进程,同时标记FiniSh[l]为trae^PUt程使用完后将^所占

系统将资源分配给P1进程 用的全部资源释放,此时系统资源分配情况如下表所示。

⑥此时Finish 列的所有项均为true , 故系统没有死锁。

⑵P2进程发出请求向量Request2[l,0, 1],假定系统先将资源分配给P2进程。由第⑴题的解

,故系统可把资源分配给P2进程。题过程可以看出,此时系统存在一个安全序列(P2, P3, P4,P1)

(3)①在P2进程申请资源后,P3进程发出请求向量ReqUeSt3[0, 0, 1],假定系统先将资源分配给P3进程。此时Available=(0,1, 0)。初始化,令Work=Available,Finish 列全为false 。

系统将资源分配给P3进程

②此时因为找不到

的进程,故系统处于不安全状态。因此不能将资源分配给P3。

二、综合题

3. 为了实现文件保护,某系统为每个文件设置一个访问控制表,回答下列问题:

(1)文件F 的访问控制表包括哪些内容?

(2)如果进程P 要修改文件C ,系统将如何利用文件F 的访问控制表控制对文件F 的访问?

【答案】(1)访问控制表ACUAccess Control List)按行或按列来存储矩阵中的非空元素。可以把每个文件的ACL 放在一个单独的磁盘块中,并在文件的i 节点中包含这个磁盘块的块号。因为只存储了非空项,全部ACL 所需的存储空间要比存储整个矩阵所需的空间少得多。

访问权限表不允许直接被用户(进程)所访问。通常,将访问权限表存储到系统区内的一个专用区中,只允许专用于进行访问合法性检查的程序对该表进行访问,以实现对访问控制表的保护;

(2)当一个进程第一次试图去访问一个对象时,必须先检查访问控制表,检查进程是否具有对该对象的访问权。如果无权访问,便由系统来拒绝进程的访问,并构成一例外(异常)事件;

,否则(有权访问)便允许进程对该对象进行访问,并为该进程建立一访问权限,将之连接到进程。

以后,该进程便可直接利用这一返回的权限去访问该对象,这样,便可快速地验证其访问的合法性。当进程不再需要对该对象进行访问时,便可撤销该访问权限。