操作系统之同步与互斥

目录

进程同步与进程互斥的概念

进程同步

进程互斥

互斥访问的实现

逻辑结构

遵循规则

实现方式

软件实现方法

硬件实现方法

同步机制

互斥锁(Mutex):

信号量机制:

管程(Monitor):

经典同步问题

生产者-消费者问题

读者-写者问题

哲学家进餐问题

吸烟者问题


进程同步与进程互斥的概念

进程同步

  • 概念: 在多进程或多线程环境中,进程同步是为了解决并发执行过程中可能出现的异步性问题,确保不同进程按特定顺序协同工作。某些进程需要等待其他进程完成特定操作后才能继续执行。
  • 特点:
    • 保证操作的顺序性,避免数据竞争。
    • 通常使用互斥锁、信号量、条件变量等机制。

进程互斥

  • 概念: 互斥是一种同步形式,确保在某一时刻只有一个进程可以访问临界资源。临界资源可以是共享数据、设备或其他系统资源。
  • 特点:
    • 防止数据的诡异更新和状态错误。
    • 主要依赖于互斥锁、信号量或其他同步机制进行实现。

互斥访问的实现

逻辑结构

  • 进入区: 代码段,控制进程只能在资源可用时进入临界区。
  • 临界区: 访问共享资源的代码段。
  • 退出区: 代码段,用于释放对临界资源的访问。
  • 剩余区: 代码段,不涉及对临界区和资源的访问。

遵循规则

  • 空闲让进: 如果没有其他进程在使用临界区,请求进程可直接进入。
  • 忙则等待: 如果另一个进程在使用临界区,请求进程必须等待。
  • 有限等待: 每个进程在寻求进入临界区时,总能在有限时间内成功进入。
  • 让权等待: 当进程被拒绝进入临界区时,可释放处理器给其他进程,以避免忙等待。

实现方式

软件实现方法

  • 单标志法:
    • 仅使用一个标志位,简单,但当多个进程同时访问时,不能保证安全性,易导致死锁。
  • 双标志先检查:
    • 双状态标志,但不能有效处理资源竞争的情况。
  • 双标志后检查:
    • 在检查进入的情况下可能导致饥饿。
  • Peterson算法:
    • 针对两个进程的互斥问题,利用标志位和 turn 来实现互斥,但是只适用于两个进程场景。

硬件实现方法

  • 中断屏蔽方法:
    • 通过控制中断来实现互斥,简单高效,但不适用于多处理器环境。
  • TestAndSet(TS指令/TSL指令):
    • 利用测试和设置指令实现互斥,简单且高效,但缺乏“让权等待”的特性。
  • Swap指令(XCHG指令):
    • 类似于TS指令,在某些情况下性能良好,但同样适用于单处理机。

同步机制

  • 互斥锁(Mutex):

    • 概念: 用于保护临界区域的简单机制,acquire 和 release 操作需为原子操作。
    • 特点: 多处理器系统性能较优,但需防止忙等现象。
  • 信号量机制:

    • 信号量是用来控制访问临界区的工具,通过 P(wait)和 V(signal)操作控制资源的获取和释放。
    • 分类:
      • 整形信号量: 用于表示可以访问的资源数量,通常不支持“让权等待”。
      • 记录形信号量: 除了包含可用资源数量外,还维护等待队列,能实现让权等待。
  • 管程(Monitor):

    • 概念: 用于解决共享资源访问的问题,包括共享数据结构和同步过程。
    • 基本特征:
      • 只有通过管程内部过程才能访问共享变量。
      • 保证同一时刻仅有一个进程执行管程内部过程。
    • 条件变量: 管程中用于等待某个条件发生——如果条件未满足,则进程阻塞在条件变量上,直到条件被满足。

经典同步问题

生产者-消费者问题

  • 问题描述: 生产者进程生成数据并放入缓冲区,消费者从缓冲区取出数据,二者需实现协调与时序。
  • 解决方案: 采用缓冲区的大小限制和信号量控制进程互斥与同步。

读者-写者问题

  • 问题描述: 多个读者和写者访问共享数据库的情况,要求实现读者可以并行读取,但写者在写入时需独占。
  • 解决方案: 使用读写锁机制,确保多个读者可以并行访问,但在写者执行时须确保没有读者和其他写者。

哲学家进餐问题

  • 问题描述: 数个哲学家坐在圆桌周围,想用筷子进餐,但每个哲学家需要两根筷子而筷子是共享资源。
  • 解决方案: 采用信号量或管程定义进餐规则,确保不发生死锁和资源饥饿。

吸烟者问题

  • 问题描述: 供应者供给原料,吸烟者需要不同的原料来抽烟,从而维护进程之间的协调和资源分配。
  • 解决方案: 通过信号量实现不同吸烟者对原料的互斥访问与同步消费。

猜你喜欢

转载自blog.csdn.net/song0789/article/details/142957236