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

2017年华南理工大学计算机科学与工程学院408计算机学科专业基础综合之计算机操作系统考研题库

  摘要

一、综合题

1. 引入捡查点的目的是什么?引入检查点后又如何进行恢复处理?

【答案】(1)引入检查点的目的

引入检查点的目的是使对事务记录表中事务记录的清理工作经常化,即每隔一定时间便做一次下述工作:首先是将驻留在易失性存储器(内存)中的当前事务记录表中的所有记录输出到稳定存储器中;其次是将驻留在易失性存储器中的所有己修改数据输出到稳定存储器中;然后是将事务记录表中的(检查点)记录输出到稳定存储器中;最后是每当出现一个(检查点)记录时,系统便执行恢复操作,利用redo 和undo 过程实现恢复功能。

(2)引入检查点后恢复处理的方法

恢复处理由恢复例程来实现。首先查找事务记录表,确定在最近检查点以前开始执行的最后的事务Ti 。在找到这样的事务后再返回去搜索事务记录表,便找到第一个检查点记录,恢复例程从该检查点开始,返回搜索各个事务记录,并利用redo 和undo 过程对它们进行处理。

2. 为什么说多级反馈队列调度算法能较好地满足各方面用户的需要?

【答案】(1)终端型作业用户

由于终端型作业用户所提交的作业大多属于交互型作业,作业通常较小,系统只要能使这些作业(进程)在第一队列所规定的时间片内完成,便可使终端型作业用户都感到满意;

(2)短批处理作业用户

对于很短的批处理型作业,开始时像终端型作业一样,如果仅在第一队列中执行一个时间片即可完成,便可获得与终端型作业一样的响应时间。对于稍长的作业,通常也只需在第二队列和第三队列各执行一个时间片即可完成,其周转时间仍然较短;

(3)长批处理作业用户

对于长作业,它将依次在第1,2, …,n 个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。

3. 线程控制块TCB 中包含了哪些内容?

【答案】如同每个进程有一个进程控制块一样,系统也为每个线程配置了一个线程控制块TCB , 将所有用于控制和管理线程的信息记录在线程控制块中。线程控制块通常有这样几项:

(1)线程标识符,为每个线程赋予一个唯一的线程标识符;

(2)—组寄存器,包括程序计数器PC 、状态寄存器和通用寄存器的内容;

(3)线程运行状态,用于描述线程正处于何种运行状态;

(4)优先级,描述线程执行的优先程度;

(5)线程专有存储区,用于线程切换时存放现场保护信息,和与该线程相关的统计信息等;

(6)信号屏蔽,即对某些信号加以屏蔽;

(7)堆栈指针,在TCB 中,也须设置两个指向堆栈的指针:指向用户自己堆栈的指针和指向核心栈的指针。

4. 在一个请求分页系统中,采用FIFO 页面置换算法时,假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5, 当分配给该作业的物理块数M 分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果。

【答案】(1)在作业物理块数为3时FIFO 页面置换算法的过程如下:

当分配给该作业的物理块数M 为3时,缺页9次,缺页率:9/12=3/4。

(2)在作业物理块数为4时,FIFO 页面置换算法的过程如下:

当分配给该作业的物理块数M 为4时,缺页10次,缺页率:10/12=5/6。

比较结果:在理论上,作业物理块越多,产生的缺页次数应该越少,而由上面的比较结果可知,物理块多的反而产生更多的缺页次数,这就是Belady 现象。

5. 什么叫重定位?采用内存分区管理时,如何实现程序运行时的动态重定位?

【答案】重定位,又称地址映射,就是要建立虚拟地址与内存地址的关系,把逻辑地址转换成物理地址的过程。

其具体方法有两种:静态地址重定位和动态地址重定位。

(1)静态地址重定位:即在虚空间程序执行之前由装配进程完成映射工作,完成各个首地址不同的连续地址对换,不需要硬件支持,但无法实现虚拟存储器,不支持对换技术。程序一旦装入内存就不能再移动和对换,而且必须在程序执行之前把有关部分全部装入内存;

(2)动态地址重定位:即在程序执行过程中CPU 访问之前,将要访问的内容(代码、数据)地址转换成内存地址,它依靠硬件地址变换机制完成:

物理线性地址=基地址+程序虚地址

动态重定位的实现。通常,这种转换由专门的硬件机构来完成,通常采用一个重定位寄存器,

在每次进行存储访问时,对取出的逻辑地址加上重定位寄存器的内容,形成正确的物理地址,重定位寄存器的内容是程序装入内存的起始地址。

6. 系统安全性的复杂性表现在哪几个方面?

【答案】系统安全的复杂性表现在:

(1)多面性。在较大规模的系统中,通常都存在多个风险点,在这些风险点处又都包含物理安全、逻辑安全及安全管理三方面的内容。其中任一方面出现问题,都可能引起安全事故;

(2)动态性。由于信息技术不断发展和攻击者的手段层出不穷,使得系统的安全问题呈现出动态性;

(3)层次性。系统安全是一个涉及诸多方面且相当复杂的问题,因此需要采用系统工程的方法解决。利用多个层次的安全功能来覆盖系统安全的各个方面;

(4)适度性。根据实际需要提供适度的安全目标并加以实现。

7. 病毒设计者采取了哪几种隐藏方式来让病毒逃避检测?

【答案】病毒设计者通常采取3种隐藏方式来让病毒逃避检测:

(1)伪装

为了逃避检测,病毒将把自己伪装起来,使被感染过的文件与原有文件一样。①通过压缩伪装。病毒程序的设计者为了隐藏病毒,通过压缩技术,使感染上病毒的文件的长度与原有文件的长度一致,以逃避检查。在使用压缩方法时,在病毒程序中应包含压缩程序和解压缩程序;②通过修改日期或时间来伪装。病毒程序的设计者还会修改感染上病毒的文件的修改日期和时间,使之与原文件相同。

(2)隐藏

为了逃避反病毒软件的检测,病毒程序的设计者常把病毒隐藏在一个不易检查到的地方。①隐藏于目录和注册表空间。在目录的末端是一个隐藏病毒的好地方;②隐藏于程序的页内零头里。一个程序段和数据段可能被装入若干个页面中,通常在最后一页都会有页内零头。因此,在系统中就可能存在许多的页面零头,病毒就可隐藏在这些零头中,当病毒占用多个零头时,可由指针将这些零头链接起来;③更改用于磁盘分配的数据结构。在这种方法中,病毒程序可以为真正的引导记录扇区和病毒自身重新分配磁盘空间,然后再更改用于磁盘分配的数据结构的内容,使病毒合法地占据存储空间,既不会被发现,也不会被覆盖;④更改坏扇区列表。病毒程序可以更改真正的引导记录扇区和病毒程序分配到磁盘的任意空闲扇区,然后就把这些扇区作为坏扇区,再相应地修改磁盘的坏扇区列表。

(3)多形态

为了逃避反病毒软件的检测,病毒设计者又设计了多形态病毒。常用的产生多形态病毒的方法如下:①插入多余的指令;②对病毒程序进行加密。