Week5-同步机制-Coursera北大操作系统课程-个人笔记

Week5 同步机制

  • 1. 进程的并发执行
  • 2.进程互斥
    • 2.1 基本概念
    • 2.2 进程互斥的软件解决办法
    • 2.3 进程互斥的硬件解决方案
  • 3.进程同步
  • 4.信 量及P、V操作
    • 4.1 信 量
    • 4.2 PV操作
    • 4.3 PV操作解决进程间互斥问题
  • 5. 案例分析
    • 5.1 生产者/消费者问题
    • 5.2 第一类读者/写者问题——读者优先
  • 6.本章重点

1. 进程的并发执行

并发的特点:进程的执行是间断性的;进程的相对执行速度是不可预测的;在并发执行的情况下,共享资源的使用会带来一些制约。
举例来说,有两台ATM机,两个人分别用同一个账 进行取款,相当于两个进程。该账户余额为5000元,那么在取款前ATM机就会几乎同时读取系统内的余额数字,即两台ATM机都读入了5000元并显示给用户看。然后1 ATM取钱1000,2 ATM取钱2000,可是由于两台ATM之前读取的余额是5000,所以操作完成后,存入数据库的余额数值就会是4000(如果ATM1先完成操作)或3000(如果ATM2先完成操作。无论是哪种情况,这明显与事实不符合,这就是并发进程会产生的问题之一。
从上述案例可知,有些进程之间,其实是有先后顺序要求的,再比如提取数据、复制数据、显示数据、写入数据四个进程,由于进程的并发性,如果显示数据先执行,则可能会显示一个错误的数据(提取数据还未执行完毕)。通常来说,提取数据是一定要先执行完毕才可以执行后续步骤,而复制数据和显示数据其实可以同时执行。同一轮的复制数据和显示数据执行完毕后,才可以执行写入数据。因此进程之间的制约关系就很明显了。

2.进程互斥

2.1 基本概念

竞争条件
两个或多个进程读写某些共享数据区域时,而最后的操作结果取决于进程运行的精确时序,也就是谁先谁后会导致不同的结果。这种情况就叫做竞争条件。
进程互斥(Mutual Exclusive)
由于各进程要求使用共享资源(变量、文件等),而这些资源需要排他性使用(非我莫属),各进程之间竞争使用这些资源的情况,就叫做进程互斥。
临界资源(critical resource)
系统中某些资源一次只允许一个进程使用,这样的资源称为临界资源或共享变量或互斥资源
临界区或互斥区(critical section)
各个进程中对某个临界资源(共享变量)实施操作的程序片段
临界区(互斥区)的使用原则

  • 没有进程在临界区时,想进入临界区的进程可进入;
  • 不允许两个进程同时处于其临界区中;
  • 在临界区外运行的进程不得阻塞其他进程进入临界区;
  • 不得使进程无限期等待进入临界区;

2.2 进程互斥的软件解决办法

软件方案:Dekker解法、Peterson解法
1).用一个free标志,标识临界区是否为空闲,true标识有,false标识没有。初值为false。但是这种简单的思路仍会有以下问题:即P进程执行到while判断后还没改变free标识就退出cpu了(因为一条看似简单的语句其实在机器语言里是分很多步执行的),而此时Q进程进来执行到临界区。这样临界区就有两个进程在执行了。所以,要将while(free)和free=true合并为一句原语。

问题描述:

  • 一个或多个生产者生产某种类型的数据放置在缓冲区中;
  • 有消费者从缓冲区中取数据,每次取一项;
  • 只能有一个生产者或消费者对缓冲区进行操作;
    要解决的问题:
  • 当缓冲区已满时,生产者不会继续向其中添加数据;
  • 当缓冲区为空时,消费者不会从中取走数据

避免忙等待:睡眠与唤醒操作(原语),下图的代码可有助于理解上述问题

4.信 量及P、V操作

这是一种特殊的同步机制,既能解决同步问题,又能解决互斥问题(可以看作一种特殊的同步)。

4.1 信 量

信 量是一个特殊的变量,用于进程间传递信息的一个整数值。对信 量只能实施三种操作:初始化,P和V

4.3 PV操作解决进程间互斥问题

  • 分析并发进程的关键活动,划定临界区
  • 设置信 量mutex(mutual exclusive),初值为1
  • 在临界区前实施P(mutex)操作
  • 在临界区之后实施V(mutex)操作

5. 案例分析

5.1 生产者/消费者问题

6.本章重点

  • 基本概念
    • 竞争条件、临界区
    • 进程同步、进程互斥
    • 自旋锁、忙等待
  • 信 量、PV操作
  • 经典问题模型及解决方案
    • 生产者-消费者问题
    • 读写者问题
  • 重要名词:竞争条件、忙等待、临界资源、临界区、进程互斥、进程同步、信 量、PV操作、锁、自旋锁、生产者消费者问题、读写者问题

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年9月8日
下一篇 2019年9月8日

相关推荐