2018年山东科技大学计算机科学与工程学院823数据结构与操作系统之计算机操作系统考研核心题库
● 摘要
一、选择题
1. 在请求分页存储管理方案中,若某用户空间为16个页面,页长1KB ,现有页表如下,则逻辑地址0A1F (H )所对应的物理地址为( )。
A.0E1F (H )
B.031F (H )
C.0A1F (H )
D.021F (H )
【答案】A
【解析】每页大小为1KB , 所以页内地址占据10位。用户共有16个页,所以,页号占4位。这样,0A1F (H )对应的二进制数为故页号为2, 对应的内存块为3, 这样,物理地址就是即0E1F (H )。
2. 支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行,来实现CPU 的共享,但其中( )不是引起操作系统选择新进程的直接原因。
A. 运行进程的时间片用完
B. 运行进程出错
C. 运行进程要等待某一事件发生
D. 有新进程进入就绪状态
【答案】D
【解析】A 项、B 项、C 项中,操作系统必须立即调度其他进程,而有新的进程进入就绪状态,如果CPU 正在处理其他进程的请求,则该就绪进程仍然需要等待,不会引起操作系统选择新进程。
3. 存储管理的目的是( )。
A. 方便用户
B. 提高内存利用率
C. 方便用户和提高内存利用率
D. 増加内存实际容量
【答案】C
【解析】存储管理的目的有两个:一是方便用户,二是提高内存利用率。
4. 在支持多线程的系统中,进程P 创建的若干个线程不能共享的是( )。
A. 进程P 的代码段
B. 进程P 中打开的文件
C. 进程P 的全局变量
D. 进程P 中某线程的栈指针
【答案】D
【解析】进程是资源分配的基本单元,进程下的各线程可以并行执行,它们共享进程的资源,包括地址空间、持有资源、相关变量和代码等,但各个线程有自己的栈,这样各线程才能够独立执行程序而不相互干扰,各自的栈指针对其他线程是透明的,因此进程P 中某线程的栈指针是不能共享的。
这里有一个小技巧:线程共享进程的资源,但不能共享线程的资源。因此,只要选择明确归属于某线程的选项即可。选项中只有D 项是明确归属于某线程的,因此为正确答案。
5. 在UNIX 中,通常把设备作为( )文件来处理。
A. 特殊
B. 普通
C. 目录文件
D. 设备
【答案】A
二、综合题
6. 何谓事务? 如何保证事务的原子性?
【答案】(1)事务的定义
事务是用于访问和修改各种数据项的一个程序单位。事务也可以被看做是一系列相关读和写操作。被访问的数据可以分散地存放在同一文件的不同记录中,也可放在多个文件中。只有对分布在不同位置的同一数据所进行的读和写(含修改)操作全部完成时,才能再以托付操作来终止事务。
(2)保证事务原子性的方法
要保证事务的原子性必须要求:一个事务在对一批数据执行修改操作时,要么全部完成,并用修改后的数据代替原来数据,要么一个也不改,保持原来数据的一致性。
7. 在请求分页系统中,产生“抖动”的原因是什么?
【答案】发生“抖动”的根本原因是,同时在系统中运行的进程太多,由此分配给每一个进程的物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时,频繁地出现缺页,必须请求系统将所缺之页调入内存。这会使得在系统中排队等待页面调进/调出的进程数目增加。显然,对磁盘的有效访问时间也随之急剧增加,造成每个进程的大部分时间都用于页面的换进,换出,而几乎不能再去做任何有效的工作,从而导致发生处理机的利用率急剧下降并趋于0的情况。我们称此时的进程是处于“抖动”状态。
8. 在解决死锁问题的几个方法中,哪种方法最易于实现? 哪种方法使资源利用率最高?
【答案】为保证系统中诸进程的正常运行,应事先采取必要的措施,来预防发生死锁。在系统中已经出现死锁后,则应及时检测到死锁的发生,并采取适当措施来解除死锁。目前,处理死锁的方法可归结为以下四种:
(1)预防死锁;
(2)避免死锁;
(3)检测死锁;
(4)解除死锁。
其中,预防死锁最容易实现,避免死锁使资源利用率最高。
9. 何为进程?系统为了控制进程的运行,都要保护什么?
【答案】进程是可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。由于多个程序并发执行,各程序需要轮流使用CPU , 为了控制进程的运行,当某程序不在CPU 上运行时,必须保留其被中断的程序的现场,包括:断点地址、程序状态字、通用寄存器的内容、堆栈内容、程序当前状态、程序的大小、运行时间等信息,以便程序再次获得CPU 时,能够正确执行。为了保存这些内容,需要建立一个专用数据结构,我们称这个数据结构为进程控制块PCB (Process Control Block)。