信号量(Semaphores)机制是一种卓有成效的进程同步工具。信号量机制已被广泛应用于单处理机和多处理机系统以及计算机网络中。 

信号量机制的发展:

整型信号量 忙等,未遵循让权等待准则

记录型信号量——重点

AND型信号量、信号量集

记录型信号量


需要一个用于代表临界资源数目的整型变量value;还要一个在该资源上阻塞的队列(链表)指针L。故信号量应采用记录型(C语言中为结构型)的结构:

struct semaphore //记录型信号量的结构定义{int value ;PCB  *L ;};

信号量除初始化外,只能通过两个原子操作(称为原语)

wait(S)和signal(S)来访问。它们以前被称为P、V操作。

wait和signal操作可用C/C++语言描述如下:

void wait( semaphore S)
{S.value = S.value – 1 ;if  (S.value <0 ) block (S.L ) ;  /* 让权等待 */
}
void signal (semaphore S )
{S.value = S.value + 1 ;if  ( S.value > 0 )    wakeup ( S.L ) ;
/*唤醒第一个等待的进程 */
}

Win32中创建信号量对象API函数是CreateSemaphore( )

对应的wait操作是wait类函数;

例如WaitForSingleObject( )WaitForMultipleObjects( )等;

signal操作对应的API函数是 ReleaseSemaphore( )

waitsignal操作的物理意义:

对信号量S的每次wait操作,意味着进程请求一个该类临界资源,因此描述为S.value=S.value-1;当S.value<0时,表示该类资源已分配完,因此进程应调用block原语进行自我阻塞,放弃处理机,并插入到信号量链表S.L(阻塞队列)中。可见该机制遵循了“让权等待”准则。

进程同步——信号量机制(操作系统)相关推荐

  1. 【操作系统】进程管理(五)—— 信号量机制

    [操作系统]进程管理(五)-- 信号量机制 前言 一.信号量机制 信号量机制--整型信号量 信号量机制--记录型信号量 二.用信号量机制实现进程互斥.同步.前驱关系 信号量机制实现进程互斥 信号量机制 ...

  2. 操作系统(三)| 进程同步详解(主要任务、制约关系、临界资源、临界区、同步机制遵循规则、信号量机制、信号量的应用)

    文章目录 进程的同步基本概念 进程同步的主要任务 进程间的制约关系 临界资源 临界区 同步机制应遵循的规则 信号量机制 整型信号量 记录型信号量 ❤❤❤ AND型信号量 信号量的应用 实现进程互斥 实 ...

  3. 操作系统之进程管理:11、用信号量机制实现进程同步、互斥、前驱关系

    11.用信号量机制实现进程同步.互斥.前驱关系 思维导图 用信号量机制实现进程同步 用信号量机制实现进程互斥 用信号量机制实现进程的前驱关系 思维导图 用信号量机制实现进程同步 先来看一下什么是进程同 ...

  4. 卡住无法查看到所有进程_进程同步 进程互斥 软件和硬件实现方式 信号量机制 信号量机制实现进程同步,进程互斥,前驱关系...

    参考:https://www.bilibili.com/video/av31584226/?p=9 进程具有异步性的特征,异步性是指,各并发执行的进程以各自独立的,不可预知的速度向前推进. 回忆我们之 ...

  5. 操作系统(二十一)信号量机制

    2.3.4 信号量机制 在前两节中我们分别学习了用软件方式以及硬件方式实现互斥访问,但是他们或多或少的存在一些问题,1965年荷兰的一名学者迪杰斯特拉(是的,就是那个男人)提出了信号量机制,有效的解决 ...

  6. 王道操作系统考研笔记——2.3.4 信号量机制

    文章目录 2.3.4 信号量机制 2.3.4.1 引入 2.3.4.2 整型信号量 2.3.4.3 记录型信号量 2.3.4.4 小结 2.3.4 信号量机制 知识总览 在1965年,荷兰学着Dijk ...

  7. 二、操作系统——用信号量机制实现进程互斥、同步、前驱关系(详解)

    一.什么是进程同步? 二.什么是进程互斥? 临界资源:一个时间段内只允许一个进程使用的资源 为了实现对临界资源的互斥访问,同时保证系统整体性能,需要遵循以下原则: 空闲让进.临界区空闲时,可以允许一个 ...

  8. 8 操作系统第二章 进程管理 信号量 PV操作 用信号量机制实现 进程互斥、同 步、前驱关系

    文章目录 1 信号量机制 1.1 整形信号量 1.2 记录形信号量 1.3 信号量机制小结 2 用信号量机制实现进程互斥.同 步.前驱关系 2.1 信号量机制实现进程互斥 2.2 信号量机制实现进程同 ...

  9. 【操作系统·考研】信号量机制/PV操作

    在操作系统引入进程后,一方面,系统中的多道程序可以并发执行,不仅有效改善资源利用率,而且显著提高系统的吞吐量.另一方面,如果不对多个进程的运行进行妥善管理,必然会因为这些进程对系统资源的无序争夺给系统 ...

  10. 操作系统-信号量机制

    信号量机制 用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥.进程同步. 什么是信号量? 信号量其实就是一个变量(可以是一个整数,也可以是更复杂的记录型变量), ...

最新文章

  1. mac下查看tensorboard中的graph
  2. [蓝桥杯2017初赛]贪吃蛇长度-模拟(水题)
  3. Halcon学习笔记:读取多张图片
  4. js遍历list数据显示到h5页面_大数据应用 | 带你找个地方去避暑
  5. 被AI改变的风投模式:数据驱动使效率提高10倍
  6. Android电池管理系统系统分析
  7. LINUX编译OPENJDK:unsupported cpu xxx
  8. java常见轮询算法
  9. 毕业论文中计算机代码重复吗,知网查重程序代码算重复吗?
  10. PHP手机号截取前三位后四位
  11. 计算机课包括什么东西,计算机全课程包括什么?
  12. 基于AIX VIOS常用命令整理
  13. buu crypto 变异凯撒
  14. Cross-X Learning for Fine-Grained Visual Categorization
  15. EXCEL之隐形对象的清理办法
  16. 2020年前端学习的新路径
  17. php cpu占有率过高怎么办,system占用cpu过高怎么办
  18. 【PBL项目实战】户外智慧农场项目实战系列之4——Mind+Mixly双平台ESP32数据上云及云端可视化实时展示
  19. 网络安全威胁检测与威胁溯源_网络安全威胁2017 –如何保护您的网站
  20. 三菱PLC slmp(mc)协议

热门文章

  1. (附源码)计算机毕业设计SSM基于大数据的高校国有固定资产管理及绩效自动评价系统
  2. 深信服虚拟机服务器功率,深信服VDI基准测试:让服务器资源最大化使用
  3. 第一章 极限、连续与求极限的方法
  4. Photoshop CC(2018)安装教程
  5. 电机与拖动综合控制实验matlab,电机与拖动基础及MATLAB仿真
  6. Docker 清理数据卷 volumes
  7. wedo2.0恐龙系列图纸roboriseits乐高机器人暑假班(课程安排,psd海报,宣传素材,课堂实拍照片视频,课后反思等所有内容)
  8. 卡诺模型案例分析_卡诺模型及使用
  9. Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法
  10. 优秀IT技术文章集(最新)(高质量)