多核编程一、不定项选择(每题4分)1.计算机的硬件工艺发展顺序是:(A)A.电子管数字计算机、晶体管数字计算机、集成电路数字计算机、大规模集成电路数字计算机B.晶体管数字计算机、电子管数字计算机、集成电路数字计算机、大规模集成电路数字计算机C.电子管数字计算机、集成电路数字计算机、大规模集成电路数字计算机、晶体管数字计算机D.电子管数字计算机、集成电路数字计算机、晶体管数字计算机、大规模集成电路数字计算机2.下面关于Intel8086芯片于8088芯片的描述,不正确的是:(D)A.8086是第一个16位的微处理器。B.8088是第一个16位的微处理器。C.8086每周期能传送或接收16位数据D.8088每周期能传送或接收16位数据3.针对内存的速度瓶颈,英特尔为80386设计了_______来解决这个速度瓶颈:(B)A.虚拟86B.高速缓存(Cache)C.浮点运算单元D.多媒体扩展指令集4.对一个具体的问题做性能优化时,可以同时在这多个层次上考虑可能的优化手段,一般说来:(AB)A.在越高的层次上进行优化,可能获得的效益越高B.在越低的层次上进行优化工作则相对越容易实现C.在越高的层次上进行优化,可能获得的效益越低D.在越低的层次上进行优化工作则相对越难于实现5.VTune性能分析器中的取样功能有哪几种方式?(AC)A.基于时间取样B.随机取样C.基于事件取样D.线性取样6.Intel调优助手能够给我们自动推荐代码改进办法,主要有以下哪些方面?(BCD)A.算法自动改进B.处理器瓶颈以及改进C.取样向导增强D.超线程7.使用-O3编译选项所得的程序,执行效率比使用-O2编译选项所得的程序_______。(D)A.高B.低C.一样D.不一定8.对于函数调用的边际效应,以下表述不正确的是:(B)A.只要函数在调用的过程中改变了某些全局变量的值,我们就称函数调用中有边际效应。B.存在边际效应的函数调用,其调用次数的不同会对整个程序的行为产生不同的影响。C.为了避免函数调用的边际效应,就必须尽量避免使用全局变量,尽量使用局部变量。D.编译器无法检测出函数调用中是否会产生边际效应,所以应该将函数调用移出循环体外。9.对于一个优化的编译器,以下表述不正确的是:(D)A.编译器负责其中的寄存器分配的优化B.编译器负责其中的代码选择及有限重组的优化C.编译器进行一些局部范围内的优化D.优化的编译器能够改进算法的计算复杂度10.以下表述不正确的是:(D)A.在传统的操作系统中,CPU调度和分派的基本单位是进程B.在引入线程的操作系统中,则把线程作为CPU调度和分派的基本单位C.同一进程中线程的切换不会引起进程切换,从而避免了昂贵的系统调用D.由一个进程中的线程切换到另一进程中的线程时,也不会引起进程切换11.以下表述正确的是:(AC)A.在引入线程的操作系统中,进程之间可以并发执行B.在引入线程的操作系统中,一个进程中的多个线程之间不可以并发执行C.进程是拥有系统资源的一个独立单位,它可以拥有自己的资源D.线程是拥有系统资源的一个独立单位,它可以拥有自己的资源12.以下表述不正确的是:(A)A.用户级线程在用户层通过线程库来实现。对它的创建、撤销和切换都要利用系统的调用。B.核心级线程由操作系统直接支持,即无论是在用户进程中的线程,还是系统进程中的线程,它们的创建、撤消和切换都由核心实现C.硬件线程就是线程在硬件执行资源上的表现形式D.用户级线程通过操作系统被作为核心级线程实现,再通过硬件相应的接口作为硬件线程来执行13.对于操作系统中的线程,以下表述不正确的是:(D)A.操作系统中存在两种类型的线程,I/O阻塞线程和计算非阻塞线程B.IO阻塞线程主要用于有交互式的程序中,它在大多数时间内都在等待外部事件C.计算非阻塞线程在大多数时间内都是被调度函数调度到的,应该和处理器资源相匹配D.在处理IO阻塞线程的时候要依次地等待每个请求完成才继续处理下一个请求14.I/O阻塞线程_____引起时间片切换开销,计算非阻塞线程_____引起时间片切换的开销。(B)A.不会,会B.会,不会C.都会D.都不会15.以下表述错误的是:(D)A.OpenMP可以根据目标系统尽量使用最优数量的线程个数B.使用线程池可以避免为每个线程创建新进程的开销C.线程池通常具有最大线程数限制,如果所有线程都繁忙,而额外的任务将放入队列中,直到有线程可用时才能够得到处理D.对于有优先级的线程,也可以使用线程池16.调用exit会使____进程终止;调用pthread_exit会使____进程终止。(B)A.整个,整个B.整个,调用C.调用,调用D.调用,整个17.如果多个线程同时执行函数的多个活动请求而不会相互干扰,那么这个函数是____,如果会相互干扰,那么这个函数是_____。(A)A.线程安全,非线程安全B.都是线程安全C.都是非线程安全D.非线程安全,线程安全18.用户级线程开销很___,内核线程开销很___。(C)A.高,高B.高,低C.低,高D.低,低19.下列说法哪个是不正确的。(A)A.应用程序可以在内存中找到内核对象的数据结构并直接改变它们的内容。B.内核对象都是通过调用函数来创建的C.内核对象的数据结构只能被内核程序访问D.Windows提供了一组函数,以便用定义的很好的方法来对内核对象的数据结构进行操作20.下面哪个说法是正确的(AB)A.每个进程被初始化时,系统为它分配一个句柄表,用于保存该进程使用的内核对象信息B.相同的句柄值在不同的进程中可能标识不同的内核对象C.一个进程中止执行,它使用的内核对象也会被撤销D.内核对象是由进程拥有的21.下列说法哪个是不正确的。(C)A.进程是线程的容器B.单个进程可以包含多个线程C.进程中不一定有线程D.Win32中有专门的创建进程的API:CreateProcess22.OpenMP标准诞生于_______年。(B)A.1996B.1997C.1998D.199923.以下表述不正确的是:(C)A.OpenMP是一种面向共享内存以及分布式共享内存的多处理器多线程并行编程语言B.OpenMP是一种能够被用于显示制导多线程、共享内存并行的应用程序编程接口(API)C.OpenMP的规范由ANSI发起,由一组主要的计算机硬件和软件厂商共同制定并认可D.OpenMP能够支持多种平台,包括大多数的类UNIX系统以及WindowsNT系统24.在OpenMP的并行编程模型中,所有的处理器都连接到_________的内存单元上,处理器在访问内存的时候使用的是______的内存地址空间。(D)A.不同,相同B.不同,不同C.一个共享,不同D.一个共享,相同25.一条指令中的操作数地址,可以有个。ABCDA.0B.1C.2D.3二、填空题1.Flynn将计算机划分为四种基本类型,即SISD、____[1]___、____[2]___、MIMD。2.线程的状态分为就绪、____[3]___和运行状态。3.一组进程(线程)中的每个进程(线程)均等待此组进程(线程)中某一其它进程(线程)所占有的,因而永远无法得到的资源,这种现象称作____[4]____。4.分解是将应用程序划分成多个独立的任务,并确定这些任务之间的相互关系的过程,分解方式包括____[5]____分解、____[6]____分解和数据流分解。5.片上多核处理器的英文缩写是____[7]___。6.独立于体系结构性能优化方法主要有:____[8]___、____[9]___和____[10]___。