进程
进程的概念
进程:是动态的,是程序的一次执行过程。区分于程序的概念。
程序:是静态的,就是一个存放在磁盘里的可执行文件,就是一系列的指令集合。
进程的组成
- PCB(进程控制块)
- 程序段
- 数据段
PCB:是进程存在的唯一标志,操作系统为其创建PCB,当进程结束时,会回收PCB。
(进程描述信息、进程控制和管理信息、资源分配清单、处理机相关信息)
**程序段:**程序的代码
**数据段:**运行过程中产生的各种数据
要点:PCB是给操作系统用的。程序段是给进程自己用的。
进程的特征
进程是能独立运行、独立获得资源、独立接受调度的基本单位
进程的组织
组织方式:链式方式和索引方式
- 链式方式
- 索引方式
进程的控制
用原语实现进程的控制。防止进程在各个状态过程切换过程中由于中断,让PCB的信息更换不完整。(运行在内核态)
进程状态的切换
- 就绪状态 : 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。
- 执行状态 :当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。
- 阻塞状态 : 正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。
转换:
(1) 就绪→执行
处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。
(2) 执行→就绪
处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。(一旦再次分配到时间片就可以立即执行)
(3) 执行→阻塞
正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
(4) 阻塞→就绪
处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。
进程的通信
- 共享存储
- 消息传递
- 管道通信
共享存储
管道存储
消息传递
- 直接通信方式
- 间接通信方式
线程
一个进程需要并发实现多个功能。因此要引入线程。
区别:
- 进程是资源分配的基本单位。从属于同一进程的各个线程共享进程的资源。
- 线程是CPU调度的基本单位。
引入线程后的优点:
- 各线程也能并发,提升了并发度
- 同一进程间的线程切换(上下文切换),不需要频繁切换用户态和核心态,节省开销
线程的实现方式
用户级线程由应用程序负责(包括线程切换),无需操作系统干预
内核级线程的管理工作由操作系统内核完成线程调度。需要切换用户态和核心态。
采用两者组合。
注意:操作系统只看得见内核线程,因此只有内核级线程才是处理机分配的单位
例如:如上图所示的模式,在4核处理机的计算机上运行,也最多只能被分配到两核,最多只能有两种用户线程并行执行。