信号量与互斥量

作者: Laura McKinney
创建日期: 4 四月 2021
更新日期: 9 可能 2024
Anonim
[Linux]内核同步机制,信号量和互斥锁
视频: [Linux]内核同步机制,信号量和互斥锁

内容

信号量和互斥量之间的区别在于,信号量是一种信号传递机制,而互斥量是锁定机制。


操作系统是计算机科学中最重要的概念,在操作系统中,两个主要概念是信号量和互斥量。信号量和互斥量之间有很多区别。如果我们讨论主要区别,那么信号量和互斥量之间的主要区别是信号量是一种信号传递机制,而互斥量是锁定机制。

信号量和互斥量之间的区别在于过程。信号量执行wait()和signal()操作,此功能负责知道它们是否已获取或已释放资源。另一方面,如果我们谈论互斥锁,则互斥锁是锁定机制。

信号量是整数变量S;信号量是一种信号机制。在操作系统中,需要一种同步工具,并且该工具在操作系统中被称为信号量。信号量的两个主要功能是waiting()和signal()。信号量值通过waiting()和signal()两个函数进行更改。当进程正在使用资源时,信号量处于等待状态(),而当进程使用资源时,该资源已释放,则信号量将给出信号()。之所以使用这些函数是wait()和signal(),是因为只有一个进程可以一次使用资源。一种资源不能分配给两个进程。操作系统中有两种类型的信号量:二进制信号量和计数信号量。在计算信号量时,初始化值是可用资源的数量。当进程使用资源时,它面临wait()并且必须等待该资源。信号量计数值一一递减。当一个进程使用资源时,它释放该资源并释放signal(),因此它必须对另一个进程是空闲的。当资源计数为0时,表示没有资源可用于即将到来的进程。二进制信号量中有两个值,分别是0和1。当进程正在使用资源时,二进制信号量的值是从1到0,而当资源使用资源时,二进制信号量的值将是1到0。

互斥锁也称为互斥对象。我们知道,只有一个进程可以一次使用资源。这就是存在锁定系统的原因,该锁定系统称为互斥锁。当进程正在使用资源时,该进程将获得互斥锁。互斥对象具有唯一的名称和ID。在程序中,每当需要互斥锁时,都会通过其名称和ID来调用互斥锁。如果我们看到互斥锁的代码,我们将对互斥锁的实现和使用有清晰的了解。

内容:信号量和互斥量之间的区别

  • 比较表
  • 信号
  • 互斥体
  • 结论
  • 解释性视频

比较表

基础信号互斥体
含义信号量是一种信号传导机制互斥锁是一种锁定机制。
信号量是一个整数。互斥锁是一个对象。
操作方式信号量等待()和信号()的操作。互斥锁的操作是锁定和解锁
种类信号量有两种类型:计数信号量和二进制信号量。没有互斥锁的类型。

信号

信号量是整数变量S;信号量是一种信号机制。在操作系统中,需要一种同步工具,并且该工具在操作系统中被称为信号量。信号量的两个主要功能是waiting()和signal()。信号量值通过waiting()和signal()两个函数进行更改。当进程正在使用资源时,信号量处于等待状态(),而当进程使用资源时,该资源已释放,则信号量将给出信号()。之所以使用这些函数是wait()和signal(),是因为只有一个进程可以一次使用资源。


一种资源不能分配给两个进程。操作系统中有两种类型的信号量:二进制信号量和计数信号量。在计算信号量时,初始化值是可用资源的数量。当进程使用资源时,它面临wait()并且必须等待该资源。信号量计数值一一递减。当一个进程使用资源时,它释放该资源并释放signal(),因此它必须对另一个进程是空闲的。当资源计数为0时,表示没有资源可用于即将到来的进程。二进制信号量中有两个值,分别是0和1。当进程正在使用资源时,二进制信号量的值是从1到0,而当资源使用资源时,二进制信号量的值将是1到0。

互斥体

互斥锁也称为互斥对象。我们知道,只有一个进程可以一次使用资源。这就是存在锁定系统的原因,该锁定系统称为互斥锁。当进程正在使用资源时,该进程将获得互斥锁。互斥对象具有唯一的名称和ID。在程序中,每当需要互斥锁时,都会通过其名称和ID来调用互斥锁。如果我们看到互斥锁的代码,我们将对互斥锁的实现和使用有清晰的了解。

关键区别

  1. 信号量是一种信号机制,而互斥量是锁定
  2. 信号量是一个整数,而互斥量是一个对象。
  3. 信号量等待()和信号()的操作,而互斥锁的操作是锁定和解锁。
  4. 有两种类型的信号量:计数信号量和二进制信号量,而互斥量没有类型

结论

在上面的这篇文章中,我们看到了信号量和互斥量及其正确实现之间的明显区别。

解释性视频