进程的描述

进程:
  • 一个独立功能的程序在一个数据集合的动态执行过程

    进程的组成
  • 程序是进程的基础

  • 程序的每次运行构成不同的进程
  • 进程是程序功能的体现
  • 通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包含多个程序

进程与程序的区别

  • 进程是动态的,程序是静态的;程序是有序代码的集合;进程是程序的执行,且具有核心态以及用户态
  • 进程是暂时的,程序是永久的
  • 进程与程序的组成不同:进程组成包含程序、数据和进程控制块

进程的特点

  • 动态性
  • 并发性
  • 独立性
  • 制约性

进程控制块

  • 进程的数据结构(PCB),描述进程的基本情况以及运行变化过程,是进程存在的唯一标识
  • PCB含以下三类信息
    • 进程标识信息: 本进程的标识(PID),父进程标识(FPID),用户标识(UPID)
    • 处理及状态信息,保存进程运行现场信息:
      • 用户可见寄存器,用户可以使用的数据,地址等寄存器
      • 控制和状态寄存器,如程序技术器(PC),程序状态字(PSW)
      • 栈指针,过程调用/系统调用/中断处理和返回时需要用到
    • 调度和状态信息,用于操作系统调度进程并占用处理机状态
    • 进程间的通信信息
    • 存储管理信息,指向本进程映像存储空间的数据结构
    • 进程所用资源,由本进程打开、使用的系统资源
    • 有关数据结构连接信息,进程可以连接到一个进程队列,连接到其他相关进程的PCB
  • PCB的组织方式
    • 链表
    • 索引表

      进程的生命周期管理

进程的状态
  • 进程的生命期管理

    • 创建
      • 系统初始化
      • 用户请求创建
      • 正在运行的进程执行率创建进程的系统调用
    • 运行
      • 选择就绪状态的进程运行
    • 等待
      • 请求并等待系统服务,无法马上完成
      • 启动某种操作,无法马上完成
      • 需要的数据没有到达
    • 唤醒
      • 被阻塞进程需要的资源可被满足
      • 被阻塞进程等待的事件到达
      • 将该进程的PCB插入到就绪队列
      • 被其他进程,或操作系统唤醒
    • 结束
      • 进程退出
      • 错误退出
      • 致命退出
      • 被其他进程所杀
  • 进程状态变化模型

    • 就绪状态
    • 阻塞状态
    • 运行状态
    • 创建状态
    • 结束状态

进程挂起

为了合理利用系统资源,进程不在内存空间

挂起状态
  • 阻塞挂起状态:进程在外存中并等待事件出现
  • 就绪挂起状态:进程在外存,只要在内存,便可执行

    挂起:把一个进程从内存转到外存
  • 阻塞到阻塞挂起

  • 就绪到就绪挂起
  • 运行到就绪挂起:抢占式分时系统
  • 在外存时的状态转换

    • 由阻塞挂起到就绪挂起
      解挂/激活:把一个进程从外存转入内存
  • 就绪挂起到就绪

  • 阻塞挂起到阻塞

状态队列

由操作系统维护不同状态的状态队列,用来标识当前所有进程的状态