65、通用信号量的类型

65、通用信号量的类型文章目录信号量的类型信号量的意义 s count 的取值范围结尾信号量的类型信号量分为 互斥信号量和资源信号量 互斥信号量用于申请或释放资源的使用权 常初始化为 1 资源信号量用于申请或归还资源 可以初始化为大于 1 的正整数

大家好,欢迎来到IT知识分享网。

信号量的类型

  • 信号量分为:互斥信号量资源信号量
  • 互斥信号量用于申请或释放资源的使用权,常初始化为1;
  • 资源信号量用于申请或归还资源,可以初始化为大于1的正整数,表示系统中某类资源的可用个数;
  • wait 操作用于申请资源(或使用权),进程执行wait原语时,可能会阻塞自己;
  • signal 操作用于释放资源(或归还资源使用权),进程执行signal原语时,有责任唤醒一个阻塞进程;

信号量的意义

  • 互斥信号量:申请/释放使用权,常初始化为1;
  • 资源信号量:申请/归还资源,资源信号量可以初始化为一个正整数(表示系统中某类资源的可用个数,如可用打印机个数);
  • s.count >= 0: 表示可执行wait(s)而不会阻塞的进程数(可用资源数);
  • s.count < 0: 表示 s.queue 队列中阻塞进程的个数(被阻塞进程数);

s.count的取值范围

  • 当仅有两个并发进程共享临界资源时,互斥信号量仅能取0,1,-1;
    s.count == 1,表示无进程进入临界区;
    s.count == 0, 表示已经有一个进程进入临界区;
    s.count == -1,表示有一个进程正在等待进入临界区;


  • 当用s来实现n个进程的互斥时,s.count的取值范围为1 ~ -(n-1);

结尾

  • 操作系统内核以系统调用形式提供wait和signal原语,应用程序通过该系统调用实现进程间的互斥;
  • 工程实践证明,利用信号量方法实现进程互斥时高效的,一直被广泛采用;

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120631.html

(0)
上一篇 2025-10-28 15:00
下一篇 2025-10-28 15:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信