文章目录

  • 信号量机制
    • 信号量
    • 整形信号量
    • 记录型信号量
  • 信号量机制的应用
    • 信号量机制实现进程互斥
    • 信号量机制实现进程同步
    • 信号量机制实现进程的前驱关系

信号量机制

信号量

  • 用户可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步(原语执行只能一气呵成,不可被中断,又关中断/开中断指令实现)
  • 信号量其实就是一个变量(可以是一个整数,也可以是一个更复杂的记录性变量),可以用一个信号量来表示系统中某种资源的数量。(比如:系统中只有一台打印,就可以设置一个处置为1的信号量)
  • 一对原语:wait(S)原语和signal(S)原语(可以把原语理解为函数,函数名为wait和signal,括号里的信号量S其实就是函数调用时传入的参数)
  • wait、signal原语简称为P、V操作。因此常把wait(S)、signal(S)两个操作分别写为P(S)、V(S)

整形信号量

  • 用一个整整数型的变量作为信号量,用来表示系统中某种资源的数量(对信号量的操作只有三种:初始化、P操作、V操作 )
  • P操作:进去操作,资源数-1(对资源的申请)
  • V操作:退出操作,资源数+1(对资源的释放)
  • “检查”和“上锁”一气呵成,避免了并发、异步导致的问题
  • 存在的问题:不满足“让权等待”,会发生“忙等”(下一个进程会一直处于while()循环中)

记录型信号量

  • 解决了“忙等”的问题
  • P操作:资源数-1后判断是否还有资源,如果没有,使用block原语使该进程从运行态转换为阻塞态,并挂入到等待队列中
  • V操作:资源数+1后判断是否还有等待该进程的资源被堵塞,如果有,使用wakeup原语将唤醒等待队列中的一个进程,将阻塞态转换为运行态

  • S.value的初值表示系统某种资源的数目

信号量机制的应用

信号量机制实现进程互斥

  • 分析并发进程的关键活动,划分临界区
  • 设置互斥信号量mutex,初值为1
  • 在临界区之前执行P(mutex)
  • 在临界区之后执行V(mutex)
  • P、V操作必须成对出现。缺少P操作不能保证临界资源的互斥访问;缺少V操作会导致资源永不被释放,等待进程永远不会被唤醒

  • semaphor:信号量的英文单词,题目没特别说明,可命名此形式

信号量机制实现进程同步

  • 分析什么地方需要实现“同步关系”,即必须保证“一前一后”执行的两个操作(或代码)
  • 设置同步信号量S,初始为0
  • 在“前操作”之后执行“V操作”
  • 在“后操作”之前执行“P操作”

信号量机制实现进程的前驱关系

  • 每一对进程前驱关系都是一个进程同步问题
  • 每对进程前驱关系都各设置一个同步变量
  • 在“前操作”之后对相应的同步变量执行“V操作”
  • 在“后操作”之前对相应的同步变量设置“P操作”

前驱关系:进程中的多个代码,必须在上一个代码执行后才能执行下一个代码

操作系统-信号量机制;用信号量机制实现进程互斥、同步、前驱关系相关推荐

  1. 2.3.5 用信号量实现 进程互斥 同步 前驱关系

    目录 思维导图 实现进程互斥 实现进程同步 实现前驱关系 思维导图 实现进程互斥 实现进程同步 实现前驱关系

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

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

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

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

  4. 操作系统(十八)进程同步与进程互斥

    2.3.1 进程同步与进程互斥 目录 2.3.1 进程同步与进程互斥 2.3.1.1 进程同步 2.3.1.2 进程互斥 在之前我们提到过,进程有异步性的特征,所谓异步性就是并发执行的进程以各自独立的 ...

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

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

  6. linux 内核信号量与用户态信号量(system v,信号量在Linux多线程机制中的应用

    [摘 要]本文以信号量原理为基础,重点阐述信号量在Linux多线程同步机制中的实现特色. [关键词]信号量:Linux:多线程:同步 1 信号量 1965年E. W. Dijkstra首次提出信号量的 ...

  7. 【学习笔记】第二章——信号量机制 用信号量实现互斥、同步

    文章目录 一. 信号量机制 整型信号量 记录型信号量 例子: 总结 二. 用信号量实现互斥.同步 互斥 同步 前驱 总结 一. 信号量机制 信号量:一个用于表示系统中某种资源的数量的变量(整数 or ...

  8. 进程的同步、互斥以及PV原语

    在处理进程间的同步与互斥问题时,我们离不开信号量和PV原语,使用这两个工具的目的在于打造一段不可分割不可中断的程序.应当注意的是,信号量和PV原语是解决进程间同步与互斥问题的一种机制,但并不是唯一的机 ...

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

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

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

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

最新文章

  1. MySQL 安装 启动命令总结
  2. linux怎么还原bak文件,Linux restore命令:还原dump操作备份下的文件、目录或分区...
  3. 免扣(抠)PNG格式图片,让你告别抠图之痛!
  4. 伟大骡子的一生和性能测试
  5. 不拥抱算法的张小龙,还能带着微信继续避免失败?
  6. 郁闷,两个伤脑筋的power script 问题
  7. PCB Layout各层含义与分层原则
  8. 粒子滤波(Particle filter)算法简介及MATLAB实现
  9. 2021年社工必备查询网址汇总
  10. android:ems什么意思
  11. [功能改进]Ctrl+Enter直接提交评论
  12. 如何采集与分析RocketMQ客户端日志
  13. 聚焦存储即平台,浪潮存储迎来发展新机遇
  14. 201919102004张雪婷(第七次作业)
  15. 护网必备技能:Spring Boot 接口数据加解密 功能实现
  16. MySQL表sql语句增删查改_学会这些操作你就不会栓Q(狗头)
  17. 中控考勤机日期混乱,解决日期显示问题
  18. APP软件开发定制返利网分销商城APP
  19. 什么是Q-Learning算法?
  20. 使用FullCalendar做一个自己的日程管理(二)- 事件篇

热门文章

  1. 如何制作扫描连接WIFI二维码,手机扫码即可一键连接无线WIFI网络
  2. 激光雷达类型分类,知名激光雷达公司介绍,三角测距激光雷达与TOF激光雷达原理
  3. 【专题】拉格朗日中值定理求极限
  4. Smail语法(2)指令解析
  5. 小米真蓝牙耳机说明书_【小米真无线蓝牙耳机Air 2评测使用说明书介绍】快充|降噪|蓝牙5.0|开盖即连|快捷操作_摘要频道_什么值得买...
  6. 计算机考研 外部排序,2021考研408数据结构基础知识点:外部排序
  7. 一文读懂“语言模型”
  8. games101 材质与外观
  9. 一键安装包php.ini,laravel 在windows中使用一键安装包步骤
  10. python多叉树_python中高效的四叉树实现