1、程序与进程的概念
程序是计算机存储系统中的数据文件
- 源代码程序
★ 文本文件,描述程序行为和功能
-可执行程序
★ 二进制文件,直接加载并执行
进程的概念
-广义概念
★ 程序关于某个数据集合的一次运行活动
-狭义概念
★ 程序被加载到内存中执行后得到进程
程序和进程的区别
-程序是硬盘中静态的文件
★ 存储系统中的一段二进制表示
-进程是内存中动态的运行实体
★ 数据段,代码段,PC指针,等
程序和进程的联系
-一个程序可能对应多个进程
★ 一个程序多次运行,每次运行产生一个进程
-一个进程可能包含多个程序
★ 一个程序依赖多个其它动态库
值得注意的地方
在当代操作系统中,资源分配的基本单位是进程;
而 CPU调度执行的基本单位是线程!
面试中的小问题
包含脚本代码的文本文件是—种类型的可执行程
序吗?如果是,对应什么样的进程呢?
2、线程的概念
线程的概念
-进程内的一个执行单元
-操作系统中一个可调度的实体
-进程中相对独立的一个控制流序列
-执行时的现场数据和其他调度所需的信息
再论main函数
C/C++程序被执行后从main函数开始
运行,那么这中间经历了什么样的过程?
线程是进程使用CPU资源的基本单位!
深入理解进程和线程
-进程中可以存在多个线程共享进程资源
-线程是被调度的执行单元,而进程不是调度单元
-线程不能脱离进程单独存在,只能依赖于进程运行
-线程有生命期,有诞生和死亡,
-任意线程都可以创建其它新的线程
进程中的多个线程并行执行,共享进程资源!
例如:
百度网盘同时下载多个文件,并行下载,进程内部
创建多个线程,每个线程负责下载一个文件
3、小结
程序是物理存储空间中的数据文件
进程是程序运行后得到的执行实体
线程是进程内部的具体执行单元
一个进程内部可以有多个线程存在
进程是操作系统资源分配的基本单位
线程是操作系统调度执行的基本单位