操作系统第二章进程的描述与控制

第二章进程的描述与控制

前驱图和程序执行

程序并发执行

程序的并发执行

程序并发执行时的特征

  • 间断性
  • 失去封闭性
  • 不可再现性

进程的描述

进程的定义

  • 进程是程序的一次执行
  • 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
  • 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位

进程的特征

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

从操作系统角度分类

  • 系统进程
  • 用户进程

进程和程序的区别

  • 进程是动态概念,而程序则是静态概念
  • 程序是指令的有序集合,永远存在;进程强调是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
  • 进程具有并发性,而程序没有
  • 进程可创建其他进程,而程序并不能形成新的程序
  • 进程是竞争计算机资源的基本单位,程序不是

进程和程序的联系

  • 进程是程序在数据集上的一次执行
  • 程序是构成进程的组成部分,一个程序可对应多个进程,一个进程可包括多个程序
  • 进程的运行目标是执行所对应的程序
  • 从静态看,进程由程序、数据和进程控制块(PCB)组成

进程的基本状态及转换

  • 进程的三种基本状态
    • 就绪状态ready
    • 执行状态running
    • 阻塞状态block
  • 三种基本状态的转换
  • 创建状态和终止状态
    • 五状态进程模型
  • 注意
    • 阻塞态->运行态和就绪态->阻塞态这二种状态转换不可能发生

挂起操作和进程状态的转换

  • 挂起和阻塞的区别
  • 挂起操作的目的
    • 终端用户的需要: 修改、检查进程
    • 父进程的需要:修改、协调子进程
    • 对换的需要:缓和内存
    • 负荷调节的需要:保证实时任务的执行
  • 关键图

进程管理中的数据结构

  • 进程控制块PCB的作用
    • 作为独立运行基本单位的标志
    • 能实现间断性运行方式
    • 提供进程管理所需要的信息
    • 提供进程调度所需要的信息
    • 实现与其他进程的同步与通信
  • 进程控制块的信息
    • 进程标识符
      • 外部标识符PID
      • 内部标识符(端口)
    • 处理机状态
      • 通用寄存器
      • 指令计数器
      • 程序状态字PSW
      • 用户栈指针
    • 进程调度信息
      • 进程状态
      • 进程优先级
      • 进程调度所需的其他信息
      • 事件
    • 进程控制信息
      • 程序和数据的地址
      • 进程同步和通信机制
      • 资源清单
      • 链接指针
    • 进程控制块的组织方式
      • 线性方式
      • 链接方式
      • 索引方式

进程控制

操作系统内核

  • 两大功能
    • 支撑功能
      • 中断管理
      • 时钟管理
      • 原语操作
        • 进程的管理,由若干原语(primitive)来执行
    • 资源管理功能
      • 进程管理
      • 存储器管理
      • 设备管理
  • 状态
    • 系统态,管态,内核态
    • 用户态,目态

进程的创建

  • 进程的层次结构
    • 父进程
    • 子进程
  • 引起创建进程的事件
    • 用户登录
    • 作业调度
    • 提供服务
    • 应用请求
  • 进程的创建过程
    • 1.申请空白PCB
    • 2.为新进程分配其运行所需的资源
    • 3.初始化进程块PCB
    • 4.如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列
  • 进程的终止
    • 引起进程终止的事件
      • 1.正常结束
      • 2.异常结束
      • 3.外界干预
    • 进程的终止过程
      • 1.根据被终止进程的标识符
  • 进程的阻塞与唤醒
    • 引起进程阻塞和唤醒的事件
      • 请求系统服务而未满足
      • 启动某种操作而阻塞当前进程
      • 新数据尚未到达
      • 无新工作可做:系统进程
    • 进程阻塞过程(自己阻塞自己)
    • 进程唤醒过程(系统或其他进程唤醒自己)
  • 进程的挂起与激活
    • suspend
    • active

进程同步

  • 基本概念
    • 两种形式的制约关系
      • 间接相互制约关系
        • 互斥——竞争
      • 直接相互制约关系
        • 同步——协作
    • 临界资源
    • 分区
      • 进入区enter section
      • 临界区critical section
      • 退出区exit section
      • 剩余区remainder section
    • 同步机制应遵循的规则
      • 1.空闲让进
      • 2.忙则等待
      • 3.有限等待
      • 4.让权等待
  • 进程同步机制
    • 软件同步机制:都没有解决让权等待,而且部分方法还会产生死锁的情况
    • 硬件同步机制
      • 关中断
      • 利用Test-and-Set指令实现互斥
      • 利用swap指令实现进程互斥
    • 信号量机制
      • 整型信号量
      • 记录型信号量
        • 由于整型信号量没有遵循让权等待原则,记录型允许负数,即阻塞链表
      • AND型信号量
      • 信号量集
        • 理解:AND型号量的wait和signal仅能对信号施以加1或减1操作,意味着每次只能对某类临界资源进行一个单位的申请或释放。当一次需要N个单位时,便要进行N次wait操作,这显然是低效的,甚至会增加死锁的概率。此外,在有些情况下,为确保系统的安全性,当所申请的资源数量低于某一下限值时,还必须进行管制,不予以分配。因此,当进程申请某类临界资源时,在每次分配前,都必须测试资源数量,判断是否大于可分配的下限值,决定是否予以分配
        • 操作
          • Swait(S1,t1,d1…Sn,tn,dn)
          • Ssignal(S1,d1…Sn,dn)
        • 特殊情况
  • 经典进程的同步问题
    • 生产者–消费者问题
    • 哲学家进餐问题
    • 读者–写者问题

进程通信

进程通信是指进程之间的信息交换,又称低级进程通信

进程通信的类型

  • 共享存储器系统
    • 基于共享数据结构的通信方式
      • 生产者和消费者
    • 基于共享存储区的通信方式
      • 高级通信
  • 管道通信系统(pipe)
    • 高级通信
  • 消息传递系统
    • 高级通信
    • 方式分类
      • 直接通信
      • 间接通信
  • 客服机–服务器系统

消息传递通信的实现方式

  • 直接消息传递系统
  • 信箱通信

线程的基本概念

线程的引入

  • 线程的引入正是为了简化线程间的通信,以小的开销来提高进程内的并发程度
  • 多线程并发的不足
    • 进程的两个基本属性
      • 一个拥有资源的独立单位,可独立分配系统资源
      • 一个可独立调度和分派的基本单位,PCB
    • 程序并发执行所需付出的时空开销
      • 创建进程
      • 撤销进程
      • 进程切换
    • 进程间通信效率低
    • 将分配资源和调度两个属性分开
  • 线程——作为调度和分派的基本单位
    • 进程是系统资源分配的单位,线程是处理器调度的单位
    • 线程表示进程的一个控制点,可以执行一系列的指令。通常,和应用程序的一个函数相对应
    • 进程分解为线程还可以有效利用多处理器和多核计算机

线程与进程的比较

  • 不同点
    • 调度的基本单位
    • 并发性
  • 相似点
    • 状态:运行、阻塞、就绪
    • 线程具有一定的生命期
    • 进程可创建线程,一个线程可创建另一个子线程
    • 多个线程并发执行时仍然存在互斥与同步

线程的实现

  • 线程的实现方式
    • 内核支持线程KST
    • 用户级线程ULT
    • 组合方式
  • 多线程OS中的进程属性
    • 进程是一个可拥有资源的基本单位
    • 多个线程可并发执行
    • 进程已不是可执行的实体
  • 线程的状态和线程控制块
    • 线程运行的三个状态
      • 执行状态
      • 就绪状态
      • 阻塞状态
    • 线程控制块TCB

思维导图下载地址

github:希望大家可以给一个star,谢谢支持

码云:希望大家可以给一个star,谢谢支持

你可能感兴趣的:(操作系统)