第二章 进程管理

本章要点

基础: 进程描述及控制

策略: 进程调度

实现: 互斥与同步

避免: 死锁和饥饿

解决: 几个经典问题

关于: 进程通信

进程引入

程序顺序执行

  • 程序:源代码程序、目标程序和可执行程序;
  • 程序执行:编辑、编译、链接、执行
  • 程序的结构:顺序结构、分支结构和循环结构
  • 程序顺序执行的特征:顺序性、封闭性、可再现性
    file

    程序并发执行

  • 多道程序设计技术:多个程序并发执行
    file
  • 程序并发执行时的特征:间断性、非封闭性、不可再现性
  • 协调各程序的执行顺序
    例如,当输入的数据还没全部输入内存时,计算必须等待。
  • 多个执行程序共享资源,程序之间可能会影响,互相影响输出结果
  • 选择哪些、多少个程序进入内存执行
  • 内存中的执行程序水仙执行,
  • 内存如何有效分配

进程的概念

  • 定义:可并发执行的程序,在一个数据集合上的运行过程
  • 申请/拥有资源 - 调度(线程)
  • 程序:静态概念,是指令和数据的集合,可长期存储
  • 进程和程序对应的关系
    • 一个程序可以对应一个进程和多个进程
    • 一个进程可以对应一个程序,或者一段程序

进程的特征

  • 动态性
  • 并发性
  • 独立性
  • 异步性

引入进程带来的问题

  • 增加了空间开销:为进程简历数据结构
  • 额外的时间开销:管理和协调、跟踪、填写和更新有关的数据结构、切换进程、保护现场
  • 更难控制:
    • 协调多个进程竞争和共享资源如何预防
    • 解放多个进程因为竞争资源而出现的故障
  • 处理机的竞争尤为突出

进程的结构

  • 组成(进程映像):程序、数据集合、进程控制卡(PCB(process Control Block))
  • PCB是进程存在的唯一标志。创建进程时,创建PCB;进程结束时,系统将撤销其PCB。

PCB

  • 进程标识信息:进程的内部和外部标识符
  • 处理机状态信息:通用寄存器值、指令计数器值、程序状态字PSW值、用户栈指针值
  • 进程调度信息:进程状态、进程优先权、进程调度的其他信息
  • 其他信息:程序及数据地址、进程同步和通讯机制、资源清单、链接指针
本作品采用《CC 协议》,转载必须注明作者和本文链接
支付宝领个红包就是对我最大的赞赏了
shijf
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!