进程

进程的概念

进程:是动态的,是程序的一次执行过程。区分于程序的概念。
程序:是静态的,就是一个存放在磁盘里的可执行文件,就是一系列的指令集合。

进程的组成

  • PCB(进程控制块)
  • 程序段
  • 数据段

PCB:是进程存在的唯一标志,操作系统为其创建PCB,当进程结束时,会回收PCB。
(进程描述信息、进程控制和管理信息、资源分配清单、处理机相关信息)

**程序段:**程序的代码
**数据段:**运行过程中产生的各种数据

要点:PCB是给操作系统用的。程序段是给进程自己用的。

进程的特征

操作系统——进程与线程
进程是能独立运行、独立获得资源、独立接受调度的基本单位

进程的组织

组织方式:链式方式和索引方式

  • 链式方式
    操作系统——进程与线程
  • 索引方式
    操作系统——进程与线程

进程的控制

用原语实现进程的控制。防止进程在各个状态过程切换过程中由于中断,让PCB的信息更换不完整。(运行在内核态
操作系统——进程与线程
操作系统——进程与线程

进程状态的切换

操作系统——进程与线程

  • 就绪状态 : 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。
  • 执行状态 :当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。
  • 阻塞状态 : 正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。

转换:
(1) 就绪→执行
处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。

(2) 执行→就绪
处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。(一旦再次分配到时间片就可以立即执行)

(3) 执行→阻塞
正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。

(4) 阻塞→就绪
处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。

进程的通信

  • 共享存储
  • 消息传递
  • 管道通信

共享存储

操作系统——进程与线程

管道存储

操作系统——进程与线程

消息传递

  • 直接通信方式
  • 间接通信方式
    操作系统——进程与线程

线程

一个进程需要并发实现多个功能。因此要引入线程。

区别:

  • 进程是资源分配的基本单位。从属于同一进程的各个线程共享进程的资源。
  • 线程是CPU调度的基本单位。

引入线程后的优点:

  1. 各线程也能并发,提升了并发度
  2. 同一进程间的线程切换(上下文切换),不需要频繁切换用户态和核心态,节省开销

线程的实现方式

操作系统——进程与线程
用户级线程由应用程序负责(包括线程切换),无需操作系统干预
操作系统——进程与线程
内核级线程的管理工作由操作系统内核完成线程调度。需要切换用户态和核心态。
操作系统——进程与线程
采用两者组合。

注意:操作系统只看得见内核线程,因此只有内核级线程才是处理机分配的单位

例如:如上图所示的模式,在4核处理机的计算机上运行,也最多只能被分配到两核,最多只能有两种用户线程并行执行

相关文章: