电子科技大学软件技术基础课件 os进程同步.pptVIP

  • 1
  • 0
  • 约8.69千字
  • 约 73页
  • 2019-05-06 发布于广东
  • 举报

电子科技大学软件技术基础课件 os进程同步.ppt

进程的同步 进程同步问题的提出 进程异步推进可能造成混乱 混乱可能导致不可再现 进程同步目标 进程的同步关系 3.1进程同步的基本概念 进程间的两种主要关系 临界资源与临界区 进程同步必须遵循的原则 3.1.1进程间的两种主要关系 进程间的关系与进程间的独立性 进程间的关系是在进程间相对独立的前提下发展的 独立获得资源 独立调度 进程间的同步关系(一) 进程间的同步关系(二) 进程间的同步关系(三) 进程间的同步关系 同步实现初探(二) 同步实现初探(三) 进程间的同步关系 进程同步时面临的两种主要关系 临界资源 3.1.2 临界资源与临界区 (1)临界资源 一次只允许一个进程访问的资源 资源状态为临界:0 或 1 (2)临界区 每个进程用于访问临界资源的那段程序 同类临界区:同类资源的临界区 进入区 退出区 临界区 同步四原则 3.1.3同步机制应遵循的原则 同步原则 进程同步应遵循的原则 空闲让进 当资源空闲时,应当允许访问资源的进程进入临界区 忙则等待 当资源被占用时,应使申请访问该资源的进程等待,等待使用者归还资源 同步原则 进程同步应遵循的原则 让权等待 在进程等待资源时,从执行态转为阻塞态,应当让出CPU的使用权。系统将把CPU分配给其它进程使用,以提高系统效率 有限等待 系统应保证等待的进程能在有限的时间内获得资源,继续执行,以防止无限等待浪费该进程已占用的资源 锁机制 3.1.4 临界资源锁机制 例:商场的试衣间 是互斥资源 是临界资源 是共享资源 每个顾客必须遵循以下过程使用试衣间: 锁机制 临界资源锁机制 锁机制实现 一种简单的锁操作实现 锁机制实现 锁操作模型 锁操作的一般模型 出了问题的锁 锁机制实现 关锁操作不可被打断 用原语实现关锁操作 关锁操作在一个指令周期内完成 (1)引入TS的操作 (2)采用“exchange”(swap)指令 利用特殊硬件机制和指令,使关锁操作在一个指令周期内完成 (3)与中断控制相结合实现锁操作 在执行原语过程中关闭中断 TS锁 TS寄存器,各进程一个 锁与中断 通过开、关中断,保证关锁操作不被打断 锁操作特点 锁操作的特点: 实现了进程互斥访问临界资源。 不遵循让权等待原则。——忙等 信号量机制 3.2 进程同步的信号量机制(semaphore) 经典信号量、记录型信号量、信号量集 3.2.1 信号量机制的基本概念 (1)信号量 信号量是对具体物理资源的抽象 不同类的资源用不同名称的信号量代表 同类资源的个数用 0的信号量值表示 信号量值为 0 或 1 的信号量表示临界资源 经典信号量 (2)经典信号量的P,V操作 资源的申请与释放--原语 信号量机制类型 3.2.2三种信号量机制 (1)经典信号量 (2)记录型信号量 (3)信号量集 (4)一般信号量集机制 记录型信号量 (2)记录型信号量 引入进程阻塞机制 在信号量里增加对阻塞进程的纪录 纪录型信号量的P,V操作 记录型信号量特点 纪录型信号量机制特点: s.value的含义 大于0 等于0 小于0 是否遵循让权等待? 阻塞队列,阻塞机制 记录型信号量特点 纪录型信号量机制特点: 进程对资源访问的过程: 原语保证 p(),v()操作都是原语 保证不出现“锁不住”资源的现象 记录型信号量特点 纪录型信号量机制特点: 主动阻塞与被动唤醒 信号量集 (3)信号量集 引入原因 基本思想 流程 信号量集引入原因 信号量集基本思想 基本思想 将多次对多个信号量的申请改为一次,用一个原子操作完成 进程要么一次获得所有的资源,要么一个也申请不到 不会存在互相等待的局面 信号量集流程 信号量集流程 信号量集流程 信号量集流程 信号量集流程 一般信号量集 (4)一般信号量集 引入原因 更灵活 基本思想 si:各信号量 ti:申请下限 ti 0时,可进行资源预留 di:申请个数 一次可申请一种资源的多个 资源竞争 3.3经典进程同步问题 资源竞争时的进程同步 对竞争资源的互斥访问 相互合作 相互合作时的进程同步 保证进程间的前驱、后继关系 公用与私用信号量 经典进程同步问题 经典进程同步问题 生产者——消费者问题 读者——写者问题 哲学家进餐问题 生产者消费者问题 3.3.1生产者——消费者问题 问题描述: 有多个生产者在生产消息 有多个消费者在消费消息 消费者消费的是生产者生产的消息 生产者消费者问题 消息缓冲池 生产者产生的消息放入缓冲池内; 消费者从缓冲池内取走消息消费; 消费者消费后的空白消息块放进空白缓冲池内供生产者使用。 生产者消费者算法分析 算法分析 两类进程:生产者进程和消费者进程 (1)进程间的关系 生产者生产消息后消费者消费 消费者消费后的空白缓冲块由生产者生产消息

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档