三、进程管理

一、进程引入

  1. 必须顺序执行的程序段:
    可并行的程序段:
  2. 程序并发执行的特征
  • 间断性:存在等待
  • 失去封闭性、运行结果不可再现,出现与时间有关的错误
  1. 静态程序不能支持并发运行的实现
    程序本身只是一组静态代码,不能保存运行现场信息。
  2. 进程管理功能-4

二、进程概念

进程定义及特征
  1. 进程的定义及特征
  • 动态性:最基本的特征
  • 并发性
  • 独立性:进程是一个能独立运行的基本单位
  • 异步性
  1. 进程映像(实体组成)
    进程映像 = 程序段+数据集+PCB+栈(内核栈、用户栈)
  2. 进程与程序的区别和联系
  • 静态/动态
  • 顺序/并发、异步
  • 程序和进程并非一一对应
进程状态及转换
进程5种状态
  1. 五种基本状态
  • 创建状态
  • 就绪状态:只差CPU
  • 运行状态
  • 阻塞状态
  • 终止状态:等待父进程收集统计信息,结束后永久消失
  1. Linux的进程描述符task_struct
  • state字段
  • exit字段
进程控制块PCB
  1. 系统根据PCB来感知进程的存在,PCB是进程存在的唯一标志。
  2. 基本信息

(1) 标识信息

  • 进程标识符:PID、外部标识符
  • 用户标识符
  • 家族关系

(2)调度信息

  • 进程状态
  • 优先级
  • 事件:进程阻塞时需等待的事件

(3)现场信息--记录断点处的状态
(4)进程控制信息

三、进程控制

通常由操作系统内核的一组原语实现。

进程创建
  1. 进程图
  • 子进程可继承父进程的全部或部分资源,被撤销时归还给父进程
  • 撤销父进程时也应同时撤销其所有子进程
  1. 引起进程创建的典型事件
  2. 进程创建原语
  • 分配空白PCB
  • 分配资源
  • 初始化PCB
  • 设为就绪状态,插入就绪队列,等待CPU调度
进程撤销
  1. 引起进程撤销的典型事件
  • 正常结束
  • 异常终止
  • 外界干预
  1. 进程撤销原语
  • 根据PID找到PCB,使其处于终止状态
  • 撤销其子进程或指定新的父进程
  • 回收其拥有的系统资源给系统或者父进程
  • 从其所在队列移出,父进程或系统 收集信息后被释放
进程阻塞和唤醒
  1. 引起进程阻塞和唤醒的典型事件
  • 等待/解除等待
  1. 进程阻塞原语
  • 停止进程执行,保存现场信息到PCB,进程状态运行->阻塞
  • 插入阻塞队列
  • 重新调度,分配到就绪队列
  1. 进程唤醒原语
  • 移出阻塞队列
  • 改PCB状态信息
  • 移入就绪队列
Linux进程管理

TODO:内核代码理解,函数使用

  1. 进程描述符task_struct结构体
  2. 进程创建
  3. 进程终止
    进程终止不等于释放task_struct结构和内核栈
  4. 进程睡眠/阻塞
  5. 进程唤醒

四、进程同步

让多个进程在并发的基础上正确地运行。

基本概念
进程同步机制及应用
经典进程同步问题
管程机制
Linux同步机制

五、进程调度

六、进程通信

七、进程死锁

八、线程机制

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。