北航操作系统课程-20200330课堂小测-线程与调度

2020-03-30-课堂小测-线程与调度


北京航空航天大学计算机学院-2020春操作系统课程
以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平有限,如有错误敬请批评指正。


1 以下说法正确的是:(单选)

A. 用户级线程在切换时也需要陷入内核

B. 内核级线程切换比用户级线程切换效率高

C. 不同内核级线程可以被调度到不同处理机上执行

D. 内核级线程发生阻塞时,与其在同一进程中的其他内核级线程也将被阻塞

答:C

用户级线程是由库函数实现的,在切换时不需要陷入内核,消耗较小,A错误。内核级线程涉及到了真正的多处理机分配,在切换时相对用户级线程的消耗较大,B错误。不同内核级线程是可以被调度到不同处理机上的,是一种真正的程序并行机制,C正确。内核级线程发生阻塞时,同一进程的其他内核级线程不会被阻塞,这是内核级线程的优势,D错误。


2 以下说法正确的是:(单选)

A. PThreads API是一个Unix下的线程实现

B. PThread_yield的作用是终止当前线程执行并退出

C. PThreads API可为编程人员提供多线程编程的可移植性

D. PThreads API仅支持创建用户级线程

答:C

PThread API在类Unix系统很常见,但它不是仅在Unix下的线程实现,而是已经成为了一种通用标准(IEEE 1003.1c),A错误。Pthread_yield的作用是释放CPU给其他线程,但并不一定是终止当前线程并退出,有可能是等待IO等操作,B错误。PThread API提供了多线程良好的可移植性,只需要操作系统支持其库函数即可,C正确。PThread API支持创建用户级线程和内核级线程,D错误。


3 以下说法正确的是:(单选)

A. 引用全局变量的函数一定不是线程安全的

B. 引用static变量的函数可以是线程安全的

C. 线程安全的函数一定是可重入的

D. 可重入的函数一定是线程安全的

答:B

多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他操作,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的。线程安全的概念并不与是否调用全局变量和静态变量绑定,A错误,B正确。线程安全和可重入的概念也不是相互绑定的,线程安全不一定可重入,而可重入也不一定线程安全,C、D错误。


4 以下说法正确的是:(单选)

A. 在Solaris中,一个轻量级进程可以和0个或1个内核线程绑定

B. 在Linux下clone系统调用主要用来创建线程

C. 在Linux下fork系统调用也可以接收克隆标志,从而用于创建线程

D. 在Linux下当CLONE_FS克隆标志被指定时,clone出来的进程与父进程共享打开的文件

答:B

Solaris中的轻量级进程是将多个用户级线程统一管理,绑定给内核级线程的进行调度的,一个轻量级进程必须绑定至少一个内核级线程,否则无法调度,A错误。Linux下clone系统调用可以接收克隆标志创建线程,B正确。fork系统调用不指定克隆标志,C错误。CLONE_FS被指定时,父子进程共享的是文件系统,CLONE_FILES指定父子进程共享打开的文件,D错误。


5 ________ 的职责包括决定哪些作业何时被换出主存:(单选)

A. 高级调度

B. 中级调度

C. 低级调度

答:B

高级调度:又称为“宏观调度”、“作业调度”。从用户工作流程的角度,一次提交的若干个作业,对多个作业进行调度。时间上通常是分钟、小时或天。内外存交换又称为“中级调度”,指令和数据必须在内存里才能被CPU直接访问,中级调度从存储器资源的角度,将进程的部分或全部换出到外存上,将当前所需部分换入到内存。低级调度:又称为“微观调度”、“进程或线程调度”。从CPU资源的角度,执行的单位,时间上通常是毫秒。因为执行频繁,要求在实现时达到高效率。


6 以下哪些操作是操作系统进行进程调度的时机:(多选)

A. 进程被创建时

B. 进程结束时

C. 进程被阻塞时

D. 进程主动让出CPU时

E. 时钟中断发生时

F. 进程执行了除以0的指令时

G. 进程进行系统调用时

答:A、B、C、D、E、F、G

新进程创建时,应当决定执行新进程还是继续执行父进程,A正确。进程结束时、被阻塞时、主动放弃CPU时、分时系统时钟中断发生时间片已到时,当前进程释放处理机,应决定哪一进程接替它执行,B、C、D、E正确。进程执行除0会陷入异常,进程执行系统调用会陷入内核,只要操作系统取得了对CPU的控制,就有需要进行调度,F、G正确。


7 以下说法正确的是:(单选)

A. 系统吞吐量是系统中作业平均周转时间的倒数

B. 单处理机系统的吞吐量是系统中作业平均周转时间的倒数

C. 单处理机系统,在不可抢夺调度机制下,其吞吐量是系统中作业平均周转时间的倒数

D. 单处理机系统,在不可抢夺调度机制下,如果处理机被100%利用,其吞吐量是系统中作业平均周转时间的倒数

E. 以上说法均不正确

答:E

周转时间是作业从提交到完成所经历的所有时间总和,吞吐量是系统在单位时间完成的作业数。在上述选项中,从前至后依次增添条件,条件最严苛的D项,单处理机不抢占,处理机100%利用,其吞吐量也不一定等于平均周转时间的倒数,这是因为不同作业没有处理机的并行,但有可能有IO或其他外设操作的并行,倒数关系不能成立,其他选项情况下更是无法成立,选择E。


8 以下哪些情况会导致进程停止占用CPU:(多选)

A. 进程退出

B. 进程等待IO

C. 进程被调度程序抢占

D. 分配给进程的时间片已到

答:A、B、C、D

进程退出、进程等待IO、进程被调度程序抢占和分配给进程的时间片已到,都会导致进程停止占用CPU。


9 以下说法不正确的是:(单选)

A. FCFS调度算法对于长作业有利

B. SJF调度算法会引起长作业被“饿死”的现象

C. SRTF调度算法中正在执行的作业会因为新作业到达而被中断执行

D. HRRF调度算法中,一个作业要求运行的时间越长,其响应比越大

答:D

FCFS先来先服务是有利于长作业执行的,这是因为它是非抢占的,长作业一旦占据CPU就会执行到结束,不利于短作业,A正确。SJF短作业优先是会让短作业先执行,长作业会由于源源不断到来的短作业而长时间得不到执行,发生“饿死”现象,B正确。SRTF最短剩余时间是一种抢占式算法,当前作业有可能被新作业到达中断执行,C正确。HRRF最高相应比优先,是将最短剩余时间做了优化,长作业如果等待时间过长,也会提高优先级,而并不是其运行时间越长相应比越大,D错误。


10 以下四个作业被提交到系统中,采用SJF调度算法,其平均带权周转时间为 ________ 小时:(填空)
作业号提交时刻运行时间/h
110 : 001
210 : 101
310 : 250.5
411 : 000.25

答:1.8125

SJF算法在上述四个作业的运行情况如下:

作业1在10 : 00到来,队列中只有一个作业,开始执行,在11 : 00执行结束,作业1等待时间0,执行时间1小时,周转时间1小时,带权周转时间1。

作业2、3、4均在作业1执行期间到来,依照短作业优先原则,作业4在11 : 00开始执行,11 : 15执行结束,作业4等待时间0,执行时间0.25小时,周转时间0.25小时,带权周转时间1。

11 : 15,作业4执行结束后队列中还有作业2和作业3,依照短作业优先原则,作业3开始执行,11 : 45执行结束。作业3等待时间50分钟(5/6小时),执行时间0.5小时,周转时间80分钟(4/3小时),带权周转时间8/3。

11 : 45,队列中只剩作业2,执行1小时后12 : 45结束。作业2等待时间95分钟(19/12小时),执行时间1小时,周转时间155分钟(31/12小时),带权周转时间31/12小时。

系统平均带权周转时间:(1 + 1 + 8/3 + 31/12) / 4 = 1.8125.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值