【深入浅出-系统架构师】(13):操作系统基础知识——同步和互斥

栏目: 后端 · 发布时间: 5年前

内容简介:PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用。在PV原语执行期间不允许有中断的发生,根本原理是机器指令。semaphore[英][ˈseməfɔ:(r)] 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。进程之间的切换是通过CPU的中断完成,人为控制CPU的中断就可以保证当前进程顺利执行完,具体是:屏蔽中断->执行临界区->开中断,但是这样限制了CPU的交替执行任务的能力,并且将主动权交给用户,不灵活,不安全。
  • P原语 Passeren(占有),阻塞原语,负责把当前进程由运行状态转换为阻塞状态,操作为:申请一个空闲资源(把信号量减1),若成功,则退出;若失败,则该进程被阻塞;

  • V原语 V是荷兰语Vrijgeven(释放)的首字母。为唤醒原语,负责把一个被阻塞的进程唤醒,它有一个参数表,存放着等待被唤醒的进程信息。操作为:释放一个被占用的资源(把信号量加1),如果发现有被阻塞的进程,则选择一个唤醒之。

PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用。在PV原语执行期间不允许有中断的发生,根本原理是机器指令。

信号量

semaphore[英][ˈseməfɔ:(r)] 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。

互斥和同步

  • 同步是各个进程按照一定的顺序和速度执行,一种更加复杂的互斥,互斥是一种特殊的同步。互斥是两个任务之间不可以同时运行,同步也是不能同时运行,但他是必须要安照某种次序来运行相应的线程(也是一种互斥)

  • 互斥是一组并发进程中的一个或多个程序段,因共享某一个共有资源,为了保证临界资源在某一时刻只能被一个进程访问,从而不允许交叉的顺序执行。

互斥原则

  • 有空让进
  • 忙则等待
  • 多种选一
  • 有限等待
  • 让权等待

临界区的访问过程

  • 进入区:查看临界区是否可访问,如果可以访问,则转到步骤二,否则进程会被阻塞
  • 临界区:在临界区做操作
  • 退出区:清除临界区被占用的标志
  • 剩余区:进程与临界区不相关部分的代码

实现互斥的方法

  • 硬件实现方法

进程之间的切换是通过CPU的中断完成,人为控制CPU的中断就可以保证当前进程顺利执行完,具体是:屏蔽中断->执行临界区->开中断,但是这样限制了CPU的交替执行任务的能力,并且将主动权交给用户,不灵活,不安全。

  • 信号量实现方法

P和V操作分别来自荷兰语Passeren和Vrijgeven,分别表示占有和释放,

信号量S的意义:S>=0 表示某资源的可用数,S<0 其绝对值表示阻塞队列中等待该资源的进程数。="" p操作的定义:s:="S-1" 若="" s="">=0 ,则P操作的进程继续执行,若S<0,则置该进程为阻塞状态(无可用资源),并将其插入阻塞队列。

Procedure P (Var S:Semaphore);
    Begin
      S:=S-1;
      If S<0 then W(S) ##执行P操作的进程插入到等待队列
    End;

V操作定义:S:=S+1,若S>0,则执行V操作的进程继续执行;否则若S<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续执行。

Procedure V(Var S:Semaphore);
    Begin
       S:=S+1;
       If S<= then R(S) ##从阻塞队列中唤醒一个进程
    End;

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据结构、算法与应用(原书第2版)

数据结构、算法与应用(原书第2版)

Sartaj Sahni / 王立柱、刘志红 / 机械工业出版社 / 2015-4 / 79.00元

《数据结构、算法与应用——C++语言描述》是享有盛誉的数据结构教科书的第2版。它完整地包含了基本数据结构的内容,是CS2课程的理想用书。作者Sartaj Sahni通过循循善诱的讲解、直观具体的讨论和基于现实的应用,让读者轻松、愉快地学习。新版书着重利用标准模板库(STL),把书中开发的数据结构和算法与相应的STL实现方法相互关联。本书还增加了很多新的实例和练习题。 书中的应用实例是它的特色......一起来看看 《数据结构、算法与应用(原书第2版)》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具