赞
踩
注:本文以操作系统—精髓与设计原理(第九版中文翻译版)为参考,答案仅供参考,如有疑惑欢迎提出指正。转载请标明出处。
第四章
1. (单选题) 一种将执行应用程序的进程划分为可并发运行的线程的技术称为():
A多线程
B同步
C多进程
D以上都不是
正确答案:A
答案解析:
多线程是指操作系统在单个进程内支持多个并发执行路径的能力(P91)。
2. (单选题) 操作系统能够独立处理以下两个特点(characteristics):“资源所有权”和“调度/执行”。对于支持线程的操作系统,以上两个特点的第一个,被给与了以下哪个实体/unit():
A程序
B进程
C线程
D系统调用
正确答案:B
答案解析:
为区分这两个特点,我们通常将分派的单位称为线程或轻量级进程,而将拥有资源所有权的单位称为进程(process)或任务(P91)。
3. (单选题) 操作系统能够独立处理以下两个特点(characteristics):“资源所有权”和“调度/执行”。对于支持线程的操作系统,以上两个特点的第二个(也可以被称为分派/Dispatching),被给与了以下哪个实体/unit():
A程序
B进程
C线程
D系统调用
正确答案:C
答案解析:
为区分这两个特点,我们通常将分派的单位称为线程或轻量级进程,而将拥有资源所有权的单位称为进程(process)或任务(P91)。
4. (单选题) 关于进程和线程之间的关系,下列哪一项是正确的():
A在两个不同的进程之间切换所需的时间比在同一个进程中的两个线程之间切换所需的时间要少
B在现有进程中创建新线程所花费的时间要比创建新进程少得多
C终止一个进程所需的时间比终止一个线程要少
D以上都是
正确答案:B
答案解析:
比较性能后会发现线程的优点如下(P92):
5. (单选题) 下列关于线程的叙述中,正确的是():
A线程包含CPU现场,可以独立执行程序
B每个线程有自己独立的地址空间
C进程只能包含一个线程
D线程之间的通信必须使用系统调用函数
正确答案:A
答案解析:
A(未找到原话对应).
默认情况下,应用程序从单个程序开始,并在该进程中开始运行(P95)。每个线程都有一个执行栈(P92)。
B.
进程中所有线程共享该进程的状态和资源,所有进程都驻留在同一块地址空间中,并可访问相同的数据(P92)。
C.
一个进程中可能有一个或多个线程(P92)。
D.
由于同一个进程中的多个线程共享内存和文件,因此他们无须调用内核就可以互相通信。
6. (单选题) 下列哪个系统应用了多线程():
A Solaris
B Linux
C Win10
D以上都是
正确答案:D
答案解析:
Solaris,Linux和Win10都应用了多线程。
7. (单选题) 在Linux系统中,可以在一个进程中创建和执行多个线程。则其线程:进程的关系是():
A 1:1
B M:N
C M:1
D以上都不是
正确答案:C
答案解析:
阅读理解
8. (单选题) 当一个线程需要等待一个事件时,与线程状态变化相关的基本线程操作称为():
A阻塞操作
B解除阻塞操作
C生成操作
D以上都不是
正确答案:A
答案解析:
有4种与线程状态改变相关的基本操作(P94):
派生:典型情况下,在派生一个新进程时,同时也会为该进程派生一个线程。随后,进程中的线程可在同一进程中派生另一个线程,并为新线程提供指令指针和参数;新线程拥有自己的寄存器上下文和栈空间,并放在就绪队列中。
阻塞:线程需要等待一个事件时就会被阻塞(保存线程的用户寄存器、程序计数器和栈指针),处理器转而执行另一个就绪线程。
解除阻塞:发生阻塞一个线程的事件时(此处我的理解是这个事件已经完成并通知原阻塞的线程),会将该线程转移到就绪队列中。
结束:一个线程完成后,会释放其寄存器上下文和栈。
9. (单选题) 在纯ULT策略中,当一个多线程进程中的某个线程被阻塞后():
A该进程的其他线程仍可继续运行
B整个进程都将阻塞
C该阻塞进程将被撤销
D该阻塞线程将永远不可能再执行
正确答案:B
答案解析:
用户级线程(User-Level Thread,ULT)
在ULT执行一个系统调用时,不仅会阻塞这个线程,而且会阻塞进程中的所有线程(P97)。
假设进程B在其线程2中执行(P95):
在线程2中执行的应用程序代码进行一个阻塞进程B的系统调用。例如:执行一次I/O调用。这会把控制权转交给内核,随后内核启动I/O操作,把进程B置于阻塞态,并切换到另一个进程。
10. (单选题) 与内核级线程(KLTs)相比,用户级线程(ult)的缺点之一是():
A线程切换不需要切换到内核模式
B调度是基于应用的
C当用户级线程执行系统调用时,进程中的所有线程都被阻塞
D以上都是
正确答案:C
答案解析:
使用ULT而非KLT的优点如下(P96):
(1)所有线程管理数据结构都在一个进程的用户地址空间中,线程切换不需要内核模式特权,因此进程不需要为了管理线程而切换到内核模式,进而节省了两次状态切换(从用户模式到内核模式,以及从从内核模式返回用户模式)的开销。
(2)调度因应用程序的不同而不同。一个应用程序可能更适合简单的轮转调度算法,而另一个应用程序可能更适合基于优先级的调度算法。为了不要乱底层的操作系统调度程序,可以做到为应用程序量身定做调度算法。
(3)ULT可在任何操作系统中运行,不需要对底层内核进行修改以支持ULT。线程库是供所有应用程序共享的一组应用级函数。
与KLT相比,ULT 也有两个明显的缺点(P97):
(1)在典型的操作系统中,许多系统调用都会引起阻塞。因此,在ULT执行一个系统调用时,不仅会阻塞这个线程,而且会阻塞进程中的所有线程。
(2)在纯 ULT 策略中,多线程应用程序不能利用多处理技术。内核一次只把一个进程分配给一个处理器,因此一个进程中只有一个线程可以执行,这相当于在一个进程内实现了应用级多道程序设计。虽然多道程序设计可明显提高应用程序的速度,但同时执行部分代码更会使某些应用程序受益。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。