1 第22章 进程、线程与并行计算 进程是正在运行的程序,线程是轻量级的进程
多任务的并发执行会用到多线程(mu ltithreading),而CPU 的多核(mu lt-core)化又将原来只在巨型机和计算机集群中才使用的并行计算带入普通PC 应用的多核程序设计中
本章先介绍进程与线程的概念和编程,再给出并行计算的基本概念和内容
下一章讨论基于多核CPU 的并行计算的若干具体编程接口和方法
1 进程与线程 进程(process)是执行中的程序,线程(thread)是一种轻量级的进程
1 进程与多任务 现代的操作系统都是多任务(mu ltitask)的,即可同时运行多个程序
进程(process)是位于内存中正被CPU 运行的可执行程序实例,参见图22-1
图22-1 程序与进程 目前的主流计算机采用的都是冯·诺依曼(John v on Neu mann)体系结构——存储程序计算模型
程序(program)是在内存中顺序存储并以线性模式在CPU 中串行执行的指令序列
对于传统的单核CPU 计算机,多任务操作系统的实现是通过 CPU 分时(time-sharing)和程序并发(concu rrency )完成的
即在一个时间段内,操作系统将CPU 分配给不同的程序,虽然每一时刻只有一个程序在CPU 中运行,但是由于CPU 的速度非常快,在很短的时间段中可在多个进程间进行多次切换,所以用户的感觉就像多个程序在同时执行,我们称之为多任务的并发
2 进程与线程 程序一般包括代码段、数据段和堆栈,对具有 GUI(Graphical User Interfaces,图形用户界面)的程序还包含资源段
进程(process)是应用程序的执行实例,即正在被执行的程程序 = 进程(内存中) 可执行文件(盘上) 运行 2 序
每个进程都有自己的虚拟地址空间,并