操作系统复习题库
一、选择题
1、引入多道程序设计的前提之一是系统具有( )
A、多个CPU B、多个终端
C、中断功能 D、分时功能
2、在早期无操作系统时代,下面关于人工操作方式的说法错误的是( )
A、用户独占全机,资源利用率低
B、主机等待人工操作,cpu和内存利用率低
C、人工速度慢,但智能化程度高
D、脱机输入输出技术提高了cpu和I/O速度
3、操作系统的发展过程是( )
A、原始操作系统,管理程序,操作系统
B、原始操作系统,操作系统,管理程序
C、管理程序,原始操作系统,操作系统
D、管理程序,操作系统,原始操作系统
4、下列关于操作系统在计算机系统中的地位描述不准确的是( )
A、计算机系统的数据中心
B、为用户和上层程序提供服务
C、最复杂最实时的online管理系统
D、计算机系统的安全基石
5、进程调度的对象和任务分别是( )。
A.作业,从就绪队列中按一定的调度策略选择一个进程占用CPU
B、进程,从后备作业队列中按调度策略选择一个作业占用CPU
C、进程,从就绪队列中按一定的调度策略选择一个进程占用CPU
D、作业,从后备作业队列中调度策略选择一个作业占用CPU
6、在进程管理中,当( )时,进程从阻塞状态变为就绪状态。
A、进程被进程调度程序选中 B、等待某一事件
C、等待的事件发生 D、时间片用完
7、下列各项步骤中,哪一个不是创建进程所必须的步骤( )。
A、建立一个进程控制块PCB
B、由CPU调度程序为进程调度CPU
C、为进程分配内存等必要的资源
D、将PCB链入进程就绪队列
8、以下( )选项不是死锁发生的必要条件。[zj1]
A、共享 B、互斥 C、占有等待 D、非剥夺
9、以下对程序和进程的描述错误的是( )
A、一个进程只能运行一个程序
B、相同的程序可以在两个以上的进程中运行
C、程序文件存放在磁盘中,运行时才读入内存
D、进程在系统运行期间动态创建
10、现代操作系统的两个基本特征是( )和资源共享。
A. 多道程序设计 B.中断处理
C.程序的并发执行 D.实现分时与实时
11、分配到必要的资源并获得处理机的进程状态是
A、就绪状态 B、运行状态 C、阻塞状态 D、结束状态
12、两个进程争夺同一个资源( )。
A、一定死锁 B、不一定死锁 C、不会死锁 D、以上说法都不对
13、时间片轮转调度算法经常用于( )
A、单用户操作系统 B、实时系统 C、分时操作系统 D、批处理系统
14、以下( )选项不是死锁发生的必要条件。
A、共享 B、互斥 C、占有等待 D、非剥夺
15、当每类资源只有一个个体时,下列说法中不正确的是( C )。
A、有环必死锁 B、死锁必有环
C、有环不一定死锁 D、被锁者一定全在环中
16、相同的任务集,采用下列不同的作业调度算法,作业平均周转时间最短的是( )。
A、先来先服务法 B、短作业优先法
C、优先数法 D、时间片轮转法
17采用时间片轮转调度算法是为了( )
A、多个终端用户能得到系统的及时响应 B、先来先服务
C、需CPU最短的进程能先执行 D、优先级高的进程能先执行
18、下面关于安全状态和非安全状态说法正确的是( )
A. 安全状态是没有死锁的状态,非安全状态是有死锁的状态
B.安全状态是可能有死锁的状态,非安全状态也是可能有死锁状态
C.安全状态是可能没有死锁的状态,非安装状态是有死锁的状态
D.安全状态是没有死锁的状态,非安全状态是可能有死锁的状态
19、如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置为( )
A、0 B、1 C、2 D、3
20、下列各项工作中 , 哪一个不是创建进程必须的步骤( )
A.建立一个 PCB 进程控制块B.由进程调度程序为进程调度 CPU
C.为进程分配内存等必要的资源 D.将 PCB 链入进程就绪队列
21、在多道程序设计的计算机系统中,CPU( )。
A、只能被一个程序占用 B、可以被多个程序同时占用
C、可以被多个程序交替占用 D、以上都不对
22、多道程序环境下操作系统分配资源以( )为基本单位。
A、程序 B、指令 C、作业 D、进程
23、以下存储管理技术中,支持虚拟存储的技术是( )。
A、动态分区法 B、可重定位分区法C、页式存储技术 D、固定分区技术
24、下面对临界区的论述中,正确的是( )
A、临界区是指进程中用于实现进程互斥的那段代码。
B、临界区是指进程中用于实现进程同步的那段代码。
C、临界区是指进程中用于实现进程通信的那段代码。
D、临界区是指进程中访问临界资源的那段代码
25一种既有利于短小作业又兼顾到长作业的作业调度算法是( )。
A、先来先服务 B、轮转C、最高响应比优先D、均衡调度
26、设置当前工作目录的主要目的是( )。
A 节省外存空间 B 节省内存空间
C 加快文件的检索速度D加快文件记录的读/写速度
27、为了进行进程协调,进程之间应具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式称为( )。
A、进程互斥 B、进程同步C、 进程通信D、进程制约
28、为了实现存储保护,对共享区域中的信息( )。
A、既不可读,也不可写 B、只可读,不可写
C、既可读,又可写 D、能执行,可修改
29、文件系统的主要目的是( )。
A、实现对文件的按名存取 B、实现虚拟存储
C、提供外存的读写速度 D、用于存储系统文件
30、磁盘与主机之间传递数据的单位是( )。
A、柱面 B、磁道 C、数据块 D、记录
31、若P、V操作使信号量S的值为-1,则表示有( )个等待进程。
A、0 B、1 C、2 D、3
32、在段式系统中,至少经过( )次地址变换才能访问到内存数据。
A、1 B、2 C、3 D、4
33、在页式存储管理方案中用来实现地址变换的是( )。
A、页表 B、段表 C、段表和页表 D、空闲区表
34、操作系统实现按名存取的关键在于解决( )。
A、文件逻辑地址到文件具体的存储地址的转换
B、文件的符号名与文件具体的存储地址的转换和映射[zj2]
C、文件逻辑结构到文件名称转换
D、文件名称到文件逻辑地址的转换
35、为了允许不同用户的文件具有相同的文件名,通常在文件系统中采用( )。
A、重名翻译B、多级目录 C、约定 D、文件名
36、文件系统中用( )管理文件。
A、堆栈结构 B、指针 C、页表 D、目录
37、在页式存储管理中,若所需页面不在内存中,则会引起( )。
A、I/O中断B、时钟中断C、缺页中断 D、越界中断
38、DMA方式是为了实现( )之间数据的快速传输
A.内存和外设 B、内存和CPU C、CPU和外设 D、外设和外设
39、磁盘属于( )设备
A、顺序存取B、直接存取 C、链接存取 D、随机存取
40、DMA方式是为了实现( )之间数据的快速传输
A、内存和外设 B、内存和CPU C、CPU和外设 D、外设和外设
41、可变分区方式常用的内存分配算法中,( )总能找到满足作业要求的最小空闲区。
A、最佳适应算法 B、首次适应算法
C、最坏适应算法 D、循环首次适应算法
42、为了允许不同用户的文件具有相同的文件名,通常在文件系统中采用( )。
A、重名翻译 B、多级目录 C、约定 D、文件名
43、对磁盘进行移臂调度的目的是为了缩短( )时间
A、寻找 B、等待 C、传输 D、启动
44、处理器有32位地址,则它的虚拟地址空间为( )字节。
A、2GB B、4GB C、100KB D、640KB
二、简单题
1、现有3个批处理作业,第一个作业10:00到达,需要执行2小时;第二个作业在10:10到达,需要执行1小时;第三个作业在10:25到达,需要执行25分钟。分别采用先来先服务和短作业优先调度算法,计算各调度算法下的作业平均周转时间。
答:
先来先服务算法:作业1的周转时间是2小时,作业2的周转时间是2小时50分钟即2.83小时,作业3的周转时间是3小时,平均周转时间为(2+2.83+3)/3=2.61小时。
短作业优先调度算法:作业1的周转时间是2小时,作业2的周转时间是3小时15分钟即3.25小时,作业3的周转时间是2小时,平均周转时间为(2+3.25+2)/3=2.42小时。
2、画出进程三种基本状态的转换关系,并分别任举一种引起各种状态转换的典型事件。
答:1.就绪态——>运行态 2.运行态——>就绪态 3.运行态——>阻塞态 4.阻塞态——>就绪态
事件:
1、CPU调度
2、执行进程的时间片用完,或被其他优先权更高的进程占用CPU
3、等待某种事件(如I/O的完成,或被他人占用的临界资源变为可用状态)
4、进程所等待的事件发生(如I/O的完成,或所等待的临界资源变为可用状态)
3、某系统在某时刻的状态如下表所示,使用银行家算法回答下面的问题:
- 求Need矩阵。
- 系统是否处于安全状态?如安全,请给出一个安全序列。
- 如果进程P1发来请求(0,4,2,0),这个请求能否立刻被满足?如安全,请给出一个安全序列。
答:
4、某系统进程驻留集大小为3,内存页面访问串为7,0,1,2,0,3,0,4,2,3,0,3,2,回答问题:
- 若系统的页面置换采用FIFO算法,写出驻留集页面变化及缺页情况。
- 若系统的页面置换采用OPT算法,写出驻留集页面变化及缺页情况。
- 若系统的页面置换采用LRU算法,写出驻留集页面变化及缺页情况。
答:
5、使用信号量机制解决生产者、消费者问题(有限缓冲区问题),用伪代码写出主要的过程。
答:
int in=0,out=0;
semaphore empty,full,mutex;
empty.value=n; //空缓冲区资源信号量,初始状态有n个空的缓冲区
full.value=0; //满缓冲区资源信号量,初始状态有0个满缓冲区
mutex.value=0; //缓冲区互斥访问量
void producer() //生产者程序
{
while(true)
{
item=producerItem(); //生产一个产品
p(empty); //申请一个空缓冲区。如有,继续执行;否则,此处进程挂起
p(mutex); //如果没有其他进程访问缓冲区,继续执行;否则,进程挂起
putItemIntoBuffer(item); //将产品放入缓冲区
in=(in+1)mod n; //修改指针位置
v(mutex); //解锁,离开缓冲区,如果有其他进程等待进入,则唤醒
v(full); //增加一个满缓冲区,如果有消费者等待,则唤醒
}
}
void consumer() //消费者程序
{
while(true)
{
p(full); //如果有满缓冲区,则继续执行;否则,挂起
p(mutex); //如果没有其他进程访问缓冲区,继续执行;否则,挂起
item=removeItemFromBuffer(); //从缓冲区取走一个产品
out=(out+1)mod n; //修改指针位置
consume(item); //消费产品
v(mutex); //解锁,离开缓冲区,如果有其他进程等待进入,则唤醒
v(empty); //增加一个空缓冲区,如果有生产者等待,则唤醒
}
}
6、在请求分页虚存管理系统中:页面大小为212B,主存的访问时间是100ns,快表的访问时间是10ns,换入页面的平均时间为100,000,000ns(该时间已经包含页表修改及将页表项加入快表),当进程执行时,依次访问虚地址:0x2159、0x18C5、0x24B3
页号 | 合法位 | 页帧号 | 磁盘块号 |
0 | 1 | 0x101 | 0x334 |
1 | 0 | 0x326 | |
2 | 1 | 0x254 | 0x77A |
3 | 0 | 0x120 |
问:
- 各需要多少访问时间?
- 0x18C5的物理地址是多少(采用固定页数LRU算法,进程页帧数为2)?
- 写出页表变化(假设快表初始为空,变址先访问快表)
答:页面大小为 2^12B,得到页内位移占虚地址的低 12 位,页号占剩余高位。
① 虚地址 Ox2159
页号 P=2,页内地址 Ox159。有效位为 1,存在内存中。
先访问快表 10ns,快表为空,未命中。接着访问页表 100ns 得到页帧号,合成物理地址后访问主存 100ns,共计访问时间为 10ns + 100ns + 100ns = 210ns。
② 虚地址 Ox18C5
页号 P=1,页内地址 Ox8C5。有效位为 0,不存在内存中。
先访问快表 10ns,未命中。接着访问页表 100ns,未命中,进行缺页中断处理 100,000,000ns,再次访问快表 10ns,命中。合成物理地址后访问主存 100ns,共计访问时间为 10ns + 100ns + 100,000,000ns + 10ns + 100ns = 100,000,220ns。
③ 虚地址 Ox24B3
页号 P=2,页内地址 Ox4B3。有效位为 1,存在内存中。
因为第一次访问已将该页号放入快表,所以本次访问快表 10ns,命中。合成物理地址,接着访问主存 100ns,共计访问时间为 10ns + 100ns = 110ns。
Ox18C5 的物理地址
页号 P=1,页内地址为 Ox8C5,有效位为 0,不在内存中。
采用 LRU 算法,对 1 页进行缺页中断处理,0 页被淘汰。1 页对应的页帧号为 Ox101,所以物理地址为 Ox1018C5。