云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 多核程序设计(考试题)

多核程序设计(考试题)

  • 62 次阅读
  • 3 次下载
  • 2025/5/6 21:41:32

B. 动态负载平衡是在程序的运行过程中来进行任务的分配达到负载平衡的目的

C. 动态负载平衡中对任务的调度可以由系统来实现,也可以由程序员修改调度策略

D. 由于实际任务中存在很多的不确定因素,调度算法无法做得很优,因此动态负载平衡有 时可能达不到既定的负载平衡要求

19. 对于负载平衡,以下表述正确的是:(C)

A. 使用负载平衡,随着CPU 核数的增多总能让总的执行时间下降,从而使加速系数随CPU 核数的增加而增加

B. 负载平衡的困难之处在于程序中的可并行执行块很多要靠程序员来划分,随着核数的增 加,这项任务将会变得不可能

C. 负载划分的误差并不会会随着CPU 核数的增加而放大 D. 负载划分的难题还体现在CPU 和软件的升级上

20. 对于如何解决串行化方面的难题,以下表述正确的是:(ABC )

A. 少用锁,甚至采用无锁编程 B. 使用原子操作来替代锁 C. 从设计和算法层面来缩小串行化所占的比例 D. 设计并行指令

21. 在操作系统中引入进程的目的是:(A )

A. 提高系统吞吐量 B. 减少程序并发执行时所付出的时空开销 C. 便于组织程序逻辑 D. 以上都正确 22. 在操作系统中引入线程的目的是:(B )

A. 提高系统吞吐量 B. 减少程序并发执行时所付出的时空开销 C. 便于组织程序逻辑 D. 以上都正确

23.______是CPU 调度和分派的基本单位,______是资源拥有的基本单位。(D) A. 线程,线程 B. 进程,线程 C. 进程,进程 D. 线程,进程 24. 线程在不同的操作系统中还有不同的实现方式有:(D)

A. 用户级线程 B. 核心级线程 C. 硬件线程 D. 以上都是

25. 同一进程的两个线程_____访问对方的虚拟地址空间,不同进程的两个线程______访问 对方的虚拟地址空间。(C)

A. 可以,可以 B. 不可以,不可以 C. 可以,不可以 D. 不可以,可以

第5 章:多线程程序设计中的常见问题及解决途径习题

1.以下表述不正确的是:(A )

A. 使用多线程能够提升程序的性能,如果少量的线程能够提升程序的性能,那么更多的线 程能够更好

B. 过多的线程可能会严重影响程序的性能

C. 将给定的工作量划分给过多的线程会造成每个线程的工作量过少,因此可能导致线程启

动和终止时的开销比程序实际工作的开销还要多 D. 过多并发线程的存在将导致共享有限硬件资源的开销增大 2.以下表述不正确的是:(A )

A. 进程是操作系统分配处理器时间的基本单元

B. 线程上下文包括为使线程在线程的宿主进程地址空间中无缝地继续执行所需的所有信息 C. 当软件线程个数超过硬件线程个数的时候,支持抢占式多任务处理的操作系统一般会采 用时间片轮转调度的方案

D. 时间片的长度取决于操作系统和处理器。由于每个时间片都很小,因此即使只有一个处

理器,多个线程看起来似乎也是在同时执行

3.对于进程间切换,以下表述不正确的是:(C)

A. 在系统要进行进程间切换的时候,需要保存当前进程的寄存器状态,以便在下次回调到 当前线程的时候,能够恢复线程寄存器继续运行

B. 当存在少量线程的时候,进程调度程序会给每一个线程分配足够长的时间片,保存和恢 复线程寄存器的开销变得不是很显著

C.随着线程数目的增加,虽然线程调度程序分给每个线程的时间片也会相应减少, 但是不会降低系统性能。

D.保存和恢复线程使用的cache 的开销则是更敏感的一种开销 4.对于操作系统中的线程,以下表述不正确的是:(D )

A. 操作系统中存在两种类型的线程,I/O 阻塞线程和计算非阻塞线程

B. IO 阻塞线程主要用于有交互式的程序中,它在大多数时间内都在等待外部事件 C. 计算非阻塞线程在大多数时间内都是被调度函数调度到的,应该和处理器资源相匹配 D.在处理IO 阻塞线程的时候要依次地等待每个请求完成才继续处理下一个请求 5. I/O 阻塞线程_____引起时间片切换开销,计算非阻塞线程_____引起时间片切换的开

销。 (A ) A.不会,会 B.会,不会 C.都会 D.都不会 6.以下表述错误的是:(D)

A. OpenMP 可以根据目标系统尽量使用最优数量的线程个数

B. 使用线程池可以避免为每个线程创建新进程的开销

C. 线程池通常具有最大线程数限制,如果所有线程都繁忙,而额外的任务将放入队列中, 直到有线程可用时才能够得到处理

D.对于有优先级的线程,也可以使用线程池

7.对于可重入函数,以下表述不正确的是:(C)

A. 一个可重入的函数在执行中并不使用静态数据,也不返回指向静态数据的指针 B. 所有使用到的数据都由函数的调用者提供

C. 可重入函数在函数体内可以调用非可重入函数

D. 一个非可重入函数通常(尽管不是所有情况下) 由它的外部接口和使用方法即可进行判

8. 死锁发生必须同时满足以下条件:(ABCD )

A. 互斥 B. 占有并等待 C. 非抢占 D. 循环等待 9.以下表述不正确的是:(B )

A. 由于多个线程共享资源,在采用基于优先级调度策略时会出现较低优先级的线程先于高 优先级线程执行的情况

B. 优先级倒置可能使实时性要求低的线程错过临界期限 (critical deadline ),从而

导致系统崩溃 C. 要避免出现优先级倒置问题,必须让低优先级线程尽快释放临界资源

D. 目前解决优先级倒置通常有两种方法,一种是优先级继承(priority inheritance ),

另一种是优先级顶置 (priority ceilings ) 10. 如果一个线程占有资源并申请另一个不能立即分配的资源,那么其现在已分配的资源 ______ 。抢占资源分配到_______资源的链表上。(D)

A. 保持不变,当前 B. 保持不变,所等待 C. 被抢占,当前 D. 被抢占,所等待 11.以下表述不正确的是:(D)

A. 优先级继承技术强令低优先级的线程继承与之共享资源并被挂起的高优先级线程的优先

B. 一旦高优先级线程开始挂起,即可实施优先级继承,直到资源释放 C. 采用优先级继承方法可以有效地解决优先权倒置的问题

D. 优先级继承方法中动态改变线程的优先级并不对程序性能造成影响 12.以下表述不正确的是:(C)

A. 优先级顶置方案的目的是让低优先级线程尽快释放临界资源

B. 优先级顶置方法总是乐于提高线程的优先级,而优先级继承方法则比较懒惰,不到万不 得已不会提升线程的优先级

C. Windows 互斥量机制默认支持优先级顶置的方法

D. 对于使用锁或者忙等待机制的编程人员来说,如果有不同优先级的线程被允许获取锁, 就会遇到优先级倒置问题 13.以下表述不正确的是:(AD)

A. 在遇到锁竞争激烈的时候,就需要一个更快的锁 B. 可以通过复制资源的方式来避免使用锁

C. 减少对锁的等待时间的最有效方法是减少这个锁所保护的范围大小

D. 向一个散列表中插入数据的时候,使用一个锁对散列加锁和使用散列函数将关键字映射 到一个子表,然后线程取得这个子表的锁的效果是一样的 14.以下表述不正确的是:(B)

A. 如果一个数据结构读取频繁但是写入并不频繁,就可以使用读写锁(reader-writer lock)来解决竞争

B. 一个线程可以同时持有读线程锁和写线程锁

C. 读线程和写线程将分别排入各自的队列,锁在一组读线程和一个写线程之间交替进行操

D. 大多数获取锁的方法都采用超时值。使用超时可以避免应用程序中出现死锁 15. 非阻塞算法具有以下一些特征:(ABD ) A.无阻塞 B.无锁 C.无互斥 D.无等待 16.以下表述不正确的是:(C)

A. 非阻塞算法会导致大量的存储总线流量,因为不同的硬件线程会不断试图对同一cache 线进行操作。

B. 如果将锁竞争分布到多个锁上,并且每个锁都能够保证在其线程完成操作之前没有线程 能够访问它所保护的cache 线,那么有锁的算法就比等价的非阻塞算法性能好 C. 有锁算法一定比非阻塞算法好

D. 使用一个快速的循环锁保护一个不含原子操作的临界段,与需要三个或更多高竞争度原 子操作的非阻塞实现方式相比较而言,性能要好一些

17. 对用户级线程来讲,内核________它的存在,所以所有对用户级线程的管理和调度都

是在________空间来进行的。(C) A. 知道,用户 B. 知道,内核 C. 不知道,用户 D. 不知道,内核

18.以下表述错误的是:(D)

A. 对于一个串行程序任一时刻的任一运行副本来说,存储器都有一个良定(well defined ) 状态

B. 顺序一致性的存储器要满足每个线程的内部操作顺序是确定不变的且任一线程都可以感知到这些线程同样的操作顺序

C. 并非所有的线程都要求看到所有的写操作的结果,让他们按照顺序看到写操作的结果更 是没有必要

D. 按照严格操作顺序模型的开销会不会影响应用程序的性能

19.关于Itanium 体系结构,以下表述不正确的是:(B )

A. Itanium 体系结构不需要支持遗留软件,因此可以采用最新的松弛存储器模型 B. 基于Itanium 系统的编译器对volatile 的解释方式和传统习惯有很多差别

C. Itanium 体系结构的两种松弛存储模型经常被使用。第一种机制是消息传递(message passing ),第二种机制是存储笼(memory cage )。

D. 栅栏的双重检查(double-check )机制一般用在多线程代码的惰性初始化(lazy initialization)过程中

20. 具有不同局部性的存储单元,______放置在同一cache 行中,这样_____引发伪共享问

题。 (C)

A. 可以,会 B. 可以,不会 C. 不可以,会 D. 不可以,不会

21. 随着软件线程的增多,时间片轮转调度方案开销将会急剧增加,这种开销主要有:(AB ) A. 进程间切换时保存和恢复进程寄存器的开销

B. 在使用时间片机制的时候,保存和恢复线程使用的cache 的开销 C. 调度算法的开销 D. 以上都是

22. 看下面代码,线程T1 给Total 加上val1,线程T2 给Total 减去val2 。变量Total 的初始值是200,val1 的值是30,val2 的值是75。这两个线程的运行顺序可能是。(D )

A. T1 运行结束后运行T2 B. T2 运行结束后运行T1 C. T1 和T2 交错运行 D. 以上都有可能 23. 要避免死锁,最好的方法是:(A )

A. 复制原本需要互斥访问的资源

B. 按照一定的顺序获取资源(锁),保存一致的锁获取顺序可避免死锁环的出现 C. 按照地址对锁进行排序

D. 对已分配的资源不能抢占

24. 解决优先级倒置通常有:(AB )

A. 优先级继承 B. 优先级顶置 C. 优先级反转 D. 以上都是 25. 一个资源闲置得越少,要得到它的平均等待时间就越____,这种关系是_____ 的。(A ) A. 长,非线性 B. 长,线性 C. 短,非线性 D. 短,非线性

第6 章:Unix/Linux 多线程编程习题

1. 选择正确的代码:(B)

pthread_t mytid;

if(__________(___________,mytid))

{

printf(\ }

搜索更多关于: 多核程序设计(考试题) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

B. 动态负载平衡是在程序的运行过程中来进行任务的分配达到负载平衡的目的 C. 动态负载平衡中对任务的调度可以由系统来实现,也可以由程序员修改调度策略 D. 由于实际任务中存在很多的不确定因素,调度算法无法做得很优,因此动态负载平衡有 时可能达不到既定的负载平衡要求 19. 对于负载平衡,以下表述正确的是:(C) A. 使用负载平衡,随着CPU 核数的增多总能让总的执行时间下降,从而使加速系数随CPU 核数的增加而增加 B. 负载平衡的困难之处在于程序中的可并行执行块很多要靠程序员来划分,随着核数的增 加,这项任务将会变得不可能 C. 负载划分的误差并不会会随着CPU 核数的增加而放大 D. 负载划分的难题还体现在CPU 和软件的升级上 20.

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com