多核程序设计1-概论
- 格式:ppt
- 大小:2.51 MB
- 文档页数:60


习题一1-1 存储程序式计算机的主要特点是什么?答:1.存储程序:用户将解决的问题的步骤事先告诉计算机,成为程序;2.程序控制:计算机所作的任何事情都是通过CPU执行程序来完成的。
1-2 批处理系统和分时系统各具有什么特点?为什么分时系统的响应比较快?答:批处理系统:先将程序加载到内存中然后再由CPU执行。
分时系统:分时系统是把处理机时间划分成很短的时间片(如几百毫秒)轮流地分配给各个联机作业使用,如果某个作业在分配的时间片用完之前还未完成计算,该作业就暂时中断。
分时系统由于是时间片轮转来运行程序,所以比多道处理系统响应更快。
1-3 实时系统的特点是什么?实时信息处理系统和分时系统从外表看来很相似,它们有什么本质的区别?答:实时系统的特点是快速响应。
实时系统:实时系统是指计算机对于外来信息能够在被控制对象允许的截止期限内反应的系统。
分时系统:分时系统是把处理机时间划分成很短的时间片(如几百毫秒)轮流地分配给各个联机作业使用,如果某个作业在分配的时间片用完之前还未完成计算,该作业就暂时中断。
1-4 什么是多道程序设计技术?试述多道程序运行的特征?答:多道程序设计技术是在计算机主存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插地运行。
特征:多道——计算机主存中同时存放几道相互独立的程序;宏观上并行——同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕;微观上串行——从微观上看,主存中的多道程序轮流或分时地占有处理机,交替执行。
(注:基于现在系统的发展,逐渐出现了多核CPU,所以出现了在微观上可以并行的特征)1-7 什么是操作系统?操作系统的主要特性是什么?答:操作系统是一个大型的程序系统,它负责计算机系统软、硬件资源的分配和管理;控制和协调并发活动;提供用户借口,使用户获得良好的工作环境。
操作系统的主要特性有:并发、共享、不确定性。
摩尔定律:对集成电路上可容纳的晶体管数目、性能和价格等发展趋势的预测,其主要内容是:成集电路上可容纳的晶体管数量每18个月翻一番,性能将提高一倍,而其价格将降低一半。
主存: 计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取。
控制器:计算机的指挥中心,它使计算机各部件自动协调地工作。
时钟周期:时钟周期是时钟频率的倒数,也称为节拍周期或T周期,是处理操作最基本的时间单位。
多核处理器:多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核)。
字长:运算器一次运算处理的二进制位数。
存储容量: 存储器中可存二进制信息的总量。
CPI:指执行每条指令所需要的平均时钟周期数。
MIPS:用每秒钟执行完成的指令数量作为衡量计算机性能的一个指标,该指标以每秒钟完成的百万指令数作为单位。
CPU时间:计算某个任务时CPU实际消耗的时间,也即CPU真正花费在某程序上的时间。
计算机系统的层次结构:计算机系统的层次结构由多级构成,一般分成5级,由低到高分别是:微程序设计级,机器语言级,操作系统级,汇编语言级,高级语言级。
基准测试程序:把应用程序中使用频度最高的那那些核心程序作为评价计算机性能的标准程序。
软/硬件功能的等价性:从逻辑功能的角度来看,硬件和软件在完成某项功能上是相同的,称为软/硬件功能是等价的,如浮点运算既可以由软件实现,也可以由专门的硬件实现。
固件:是一种软件的固化,其目的是为了加快软件的执行速度。
可靠性:可靠性是指系统或产品在规定的条件和规定的时间内,完成规定功能的能力。
产品可靠性定义的要素是三个“规定”:“规定条件”、“规定时间”和“规定功能”。
MTTF:平均无故障时间,指系统自使用以来到第一次出故障的时间间隔的期望值。
MTTR:系统的平均修复时间。
MTBF:平均故障间隔时间,指相邻两次故障之间的平均工作时间。
可用性:指系统在任意时刻可使用的概率,可根据MTTF、MTTR和MTBF等指标计算处系统的可用性。
并行程序设计课程简介同学们!今天咱来聊聊“并行程序设计”这门超酷的课程哈。
一、啥是并行程序设计呀。
并行程序设计呢,简单来说,就是让多个计算任务同时进行的一种程序设计方法。
就好比咱们吃饭的时候,一边嚼着饭菜,一边还能和同桌聊聊天,这两件事儿同时干,效率不就上来了嘛。
在计算机领域里,它能充分利用计算机的多核处理器等资源,让程序跑得更快,处理能力更强。
比如说,处理一个超级大的数据集,如果用传统的串行程序,那可能得等上好长时间。
但要是用并行程序设计,把这个大任务分成好多小任务,让多个处理器同时处理这些小任务,那速度可就蹭蹭往上涨啦。
二、这门课程学些啥内容。
1. 并行编程模型。
这里面有好多好玩的模型呢。
像共享内存模型,就像是住在宿舍里,大家共用一些东西一样,多个线程可以共享同一块内存区域,方便它们之间交换数据。
还有消息传递模型,就好比咱们发微信,线程之间通过发送消息来进行通信和协作。
了解这些模型,就好像掌握了不同的沟通方式,能让程序里的各个部分更好地配合工作。
2. 并行算法设计。
这可是个关键内容哈。
要学会怎么把一个大问题拆分成好多小问题,然后让它们并行解决。
比如说排序算法,传统的排序可能一个一个比较,慢悠悠的。
但并行排序算法就可以把数据分成好几块,每块分别排序,最后再合并起来,速度就快多啦。
还有像矩阵乘法、图形处理等很多领域,都有专门的并行算法等着咱们去探索。
3. 并行编程语言和工具。
要进行并行程序设计,得有趁手的工具呀。
像C语言、C++ 里就有一些库可以用来编写并行程序,比如OpenMP,它提供了一些简单的指令,让咱们轻松就能把串行程序改成并行的。
还有像MPI(Message Passing Interface),在分布式系统里特别好用,能让不同计算机上的进程相互通信和协作。
另外,一些高级编程语言像Python也有相关的并行库,让咱们编写并行程序变得更容易。
三、为啥要学并行程序设计。
1. 提高程序性能。