进程


进程

目的:更好地描述和控制程序并发执行
主要部分

  • 程序段:进程完成的功能。类似于工人
  • 数据:程序在执行时所需要的数据。类似于原材料
  • PCB:包含进程的描述信息和控制信息。是进程存在的唯一标志。类似于管理员
  • 进程是系统进行资源分配和调度的一个独立单位。这里的系统资源是指处理机、存储器和其他设备服务于进程的“时间”。
    进程是一个动态的、过程性的概念

特征:

  1. 动态性
  2. 并发性
  3. 独立性
  4. 异步性

进程的状态

  1. 运行态
  2. 就绪态
  3. 阻塞态
  4. 创建态
  5. 结束态

进程状态之间的转换
进程状态转换

进程的控制

父进程与子进程

  • 子进程被撤销时,资源归还给父进程
  • 父进程被撤销时,必须同时撤销所有子进程

    进程的创建

    PCB是进程实体的一部分,是进程唯一存在的唯一个标志。
    过程
  1. 为新进程分配一个唯一的进程标识号(PID),并申请空白的PCB
  2. 为进程分配资源,分配程序和数据以及用户栈分配必要的内存空间
  3. 初始化PCB,包括初始化标志信息、处理机状态信息和控制信息。设置进程优先级
  4. 如果就绪队列能接纳新进程,就插入到就绪队列中

进程的终止

  1. 根据终止进程的标识号,检索PCB,读出改进程的状态
  2. 若进程处理执行状态,立即终止该进程的执行,将处理机分配给其他进程
  3. 若还有子进程,则应该将所有子进程终止
  4. 将所有资源归还给父进程或者是操作系统
  5. 将PCB从所在队列里删除

阻塞

  1. 找到被阻塞进程的标记号对应的PCV
  2. 若进程处于运行状态,则保留现场,将其转态转为阻塞状态。
  3. 将PCB插入响应时间的等待等待队列中

唤醒

  1. 在等待队列中找到相应进程的PCB
  2. 将其在等待队列一出去,并置为就绪状态
  3. 将该PCB插入就绪序列中。

    进程的切换

  4. 保存现场
  5. 更新PCB信息
  6. 将PCB移入相应队列
  7. 选择另外一个进程,更新PCB
  8. 更新内存管理的数据结构
  9. 恢复现场

进程通信(IPC,InterProcess Communication)

方式

  1. 共享存储:允许两个或多个进程共享一个给定的存储区
  2. 信号量:它是一个计数器,用于为多个进程提供共享数据对象的访问
  3. 消息队列
  4. 管道
    通信道使用的是半双工机制,管道通信必须提供的能力: 互斥、同步和确定对方的存在。
    1. 无名管道
      管同时管道只能在具有公共祖先的两个进程之间使用。
    2. 命名管道(FIFO)
      客户进程-服务器进程应用程序中,FIFO用作汇聚点,在客户进程和服务器进程二者之间传递数据。
  5. Socket

文章作者: 彭峰
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 彭峰 !
  目录