一、进程的概念
提出问题:什么是程序? 什么是进程? 程序和进程有什么关系?
程序是计算机存储系统中的文件数据 1、源代码程序:文本文件,描述程序的行为和功能 2、可执行程序:二进制文件,直接加载并执行
进程的概念 1、 广义概念:程序关于某个数据集合的一次运行活动 2、 狭义概念:程序被加载到内存中执行后得到进程
程序和进程的区别 1、 程序是硬盘中静态的文件:存储系统中的一段二进制表示 2、 进程是内存中动态的运行实体:数据段、代码段、PC指针等
程序和进程的联系(有进程一定有程序,但有程序不一定有进程) 1、 一个程序可能对应多个进程:一个程序多次运行,每次运行产生一个进程 2、 一个进程可能包含多个程序:一个程序依赖多个其它动态库
值得注意的地方 1、在当代操作系统中,资源分配的基本单位是进程 2、而CPU调度执行的基本单位是线程(相当于在CPU眼中根本没有进程)二、线程的概念
线程的概念 1、 进程中的一个执行单元(进程只是资源的集合,这些资源由线程来使用) 2、 操作系统中一个可调度的实体 3、 进程相对独立的一个控制流序体 4、 执行时的现场数据和其它调度所需要的信息
再论main函数(程序被执行后,从main函数开始运行)
深入理解进程和线程 1、进程是操作系统分配资源的基本单位,进程中可以存在多个线程共享进程资源 2、 线程是被调度的执行单元,而进程不是调度单元(进程想要使用CPU资源就必须借助线程) 3、 线程不能脱离进程独立存在,只能依赖于进程执行(因为资源是分配给进程的,进程是操作系统分配资源的基本单位) 4、 线程有生命期,有诞生和死亡 5、 任意线程都可以创建其它新的线程 6、进程中的多个线程并行执行,共享进程资源。
小结 1、 程序是物理存储空间中的数据文件 2、 进程是程序运行后得到的执行实体(一个程序可以运行多个进程) 3、 线程是进程内部的具体执行单元 4、 一个进程内部可以有多个线程存在 5、 进程是操作系统分配资源的基本单位 6、 线程是操作系统调度执行的基本单位