进程描述

  • 定义
    • 程序运行的过程,一个具有一定功能的程序在一个数据集合上的一次动态执行过程
  • 组成
    • 代码
    • 数据
    • 计数器值,指示下一条运行的指令
    • 一组通用寄存器的当前值,堆、栈
    • 一组系统资源
  • 特点
    • 动态创建、结束进程
    • 并发性:进程可以被独立调度并占用处理机运行;并发、并行
    • 独立性:不同进程的工作不相互影响(不同进程分配不同的页面,有不同的地址空间)
    • 制约性:因访问共享数据/资源或进程间同步而产生制约
  • 控制结构

    • 进程控制块(Process Control Block, PCB)

      • 操作系统管理控制进程运行所用的信息集合。操作系统用PCB来描述进程的基本情况以及运行变化的过程,PCB是进程存在的唯一标志。

        操作系统为每个进程都维护了一个PCB,用来保存与该进程有关的各种状态信息

    • PCB组成

      • 进程标识信息
      • 处理机状态信息保存区
        • 用户可见寄存器
        • 控制和状态寄存器
        • 栈指针
      • 进程控制信息
        • 调度和状态信息
        • 进程间通信信息
        • 存储管理信息(内存、存储空间的数据结构)
        • 进程所用资源
        • 有关数据结构连接信息
    • PCB的组织方式

      • 链表:同一状态的进程其PCB成一链表,多个状态对应多个不同的链表

        各状态的进程形成不同的链表:就绪链表、阻塞链表

      • 索引表:同一状态的进程归入一个index表(由index指向PCB),多个状态对应多个不同的index表

        各状态的进行形成不同的索引表:就绪索引表、阻塞索引表

进程状态

进程三种基本状态

  • 运行
  • 就绪
  • 阻塞

image.png

集成其它基本状态

  • 创建状态
  • 结束状态
  • image.png

    上下文切换

    停止当前运行进程(从运行状态改变成其他状态)并且调度其它进程(转变成运行状态)

  • 必须存储上下文(寄存器【PC, SP, …】,CPU状态,…)

  • 必须能被快速恢复

    进程队列

    操作系统为活跃进程准备了进程控制块(PCB),并将进程控制块放置在合适的队列中

  • 就绪队列

  • 等待I/O队列
  • 僵尸队列

    进程控制

  • fork()

  • vfork()
    • Copy on Write(COW)

      线程

进程间通信

进程互斥与同步

死锁