程序执行

进程基本内容

进程的概念

进程是程序的一次执行过程

  • 程序是静态的,进程是动态的

进程的组成

  • PCB:进程控制块。进程存在的唯一标志。进程结束时会回收PCB

    • PID:进程ID,唯一的,不重复
  • 程序段

  • 数据段

进程控制

进程的状态与转换

image-20251030183614729

进程的状态转换必须一气呵成(利用“原语”实现)

相关原语

原语用关/开中断来实现,不可中断

image-20251030190104354阻塞和唤醒成对出现

image-20251030193814183

进程通信

1. 共享存储

image-20251030221507985

  • 基于存储区的共享(高级)
  • 基于数据结构的共享(低级)

2. 消息传递

进程间数据以格式化的消息为单位。

消息头(进程ID,长度等)+消息体(实际数据)

进程通过”发送/接受消息“两个原语进行数据交换。

  • 直接通信:直接指明要通信的进程ID

  • 间接通信:通过”信箱“

3. 管道通信

image-20251030225030406

  • 相比共享存储,要求数据读写先进先出

  • 管道数据一旦被读出就彻底消失

信号

​ 用于通知进程某个时间已经发生

线程

基本

线程是程序执行流的最小单位,是调度的基本单位(进程是资源分配的基本单位)

作用:每一个进程可以有多个线程,增加并发度

  • 切换进程开销大;同进程内切换线程开销小

实现方式

  1. 用户级线程(用户态)

    简单。操作系统不支持线程,并发态不高。

  2. 内核级线程(内核态)

    由操作系统完成,并发能力强。开销大

多线程模型

  • 一对一(内核级线程)
  • 多对一(用户级线程)
  • 多对多:n用户映射到m个内核级线程(n≥m)

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