目录
程序
- 一组计算机能识别和执行的指令(需要经过编译)
- 未经编译就可运行的程序,通常称之为脚本程序
进程
- 进程是具有独立功能的可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的独立单位。
- 进程是执行中的程序
- 进程的组成:程序、数据、进程控制块PCB(一个进程只能有唯一的进程控制块)
- 进程的三种状态:就绪,执行,阻塞
- 进程三种状态的转换:
- 就绪状态的进程,可进入就绪队列等待CPU执行
- CPU执行即进入执行状态,这会出现三种状况:
- 时间片用完,进程没有结束,再次变成就绪状态,进入就绪队列末端;
- 时间片没用完,此进程需要其他事件(例如I/O)才能完成,但是此事件正在被其他进程占用,因此变为阻塞状态,进入阻塞队列等待调用;
- 进程在一个时间片内执行结束,完成进程。
- 进程等待的事件完成,从阻塞状态变为就绪状态,再次进入就绪队列等待CPU调用
进程和程序的区别
- 进程是动态的,程序是静态的概念;
- 进程具有并行特性,程序没有;
- 进程具有结构
进程和程序的关联
多个进程为一个程序服务,一个进程也可以为多个程序服务(多出现在服务器)。所以是多对多的关系。
线程
- 线程是进程的一个实体,是被系统独立调度和分派的基本单位。
- 线程的特点:
- 可以与同属一个进程的其他线程共享进程所拥有的全部资源;
- 一个线程可以创建和撤销另一个线程;
- 同一进程中的多个线程之间可以并发执行。
- 线程的好处:
- 创建一个新线程花费时间少,系统开销少;
- 两个线程的切换花费时间少;
- 线程之间通信无需调用内核,信息传送速度更快;
- 线程能够独立执行,充分利用和发挥处理机与外围设备并行工作的能力。
线程和进程的关系
一个进程可以有多个线程,所以是一对多的关系。