当前位置: 首页 > news >正文

进程互斥的硬件实现方式【操作系统学习笔记】

19.进程互斥的硬件实现方式

文章目录

  • 19.进程互斥的硬件实现方式
    • 🍅中断屏蔽方法
    • 🍅TestAndSet(TS指令/TSL指令)
    • 🍅Swap指令(XCHG指令)

🍅中断屏蔽方法

  • 使用“开/关中断”指令实现
    • 关中断:不允许当前进程被中断,自然也不会发生进程切换了
    • 直至访问完临界区后再开中断,才可使得别的进程上处理机并访问临界区
  • 优点:简单高效
  • 缺点:只适用于单处理机;只适用于操作系统内核进程,不适用于用户进程(因为开/关中断指令只能运行在内核态,不能让用户使用)

🍅TestAndSet(TS指令/TSL指令)

  • TSL指令是用硬件实现的,执行的过程不允许被中断,只能一气呵成

  • old记录是否已被上锁;再将lock设置为true;检查临界区是否已被上锁(若已上锁,则循环重复前几步)

  • 优点:实现简单;适用于多处理机环境;

    • 比软件方式好很多
  • 缺点:不满足“让权等待”,会导致“忙等”

🍅Swap指令(XCHG指令)

  • TSL指令是用硬件实现的,执行的过程不允许被中断,只能一气呵成

  • 逻辑上等同于TSL指令

  • 优点和缺点同TSL指令

相关文章:

  • JavaScript教程-原生的原型,Object.prototype,其他的内建原型,从原型当中借用,原型方法,_proto_
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • 基于微信小程序的数码商城程序设计与实现(后台PHP+Mysql)
  • FA_06.不用刷机情况下升级或者降级系统中的fridaserver
  • 【笔试题】【day3】
  • 微信小程序|基于小程序实现人脸识别对比
  • [附源码]Java计算机毕业设计SSMJava商场会员管系统
  • 多模态学习、迁移学习、元学习、联邦学习、表示学习、知识图谱、无监督学习、半监督学习、弱监督学习、自监督学习简介
  • 剑指offer 63. 和为S的两个数字
  • 【VUE基础】webpack
  • 机器人轨迹规划中经常用到的曲线特性小结:Cn连续与Gn连续、Frenet标架、曲率和挠率
  • 【深度学习】卷积神经网络CNN入门介绍
  • Android Studio 提示:更新 TKK 失败,请检查网络连接
  • 枚举类型详解
  • 机器学习笔记 - 在Vehicles数据集上训练 YOLOv5 目标检测器
  • 【RocksDB】TransactionDB源码分析
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • CentOS从零开始部署Nodejs项目
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java IO学习笔记一
  • Java-详解HashMap
  • Laravel 实践之路: 数据库迁移与数据填充
  • magento2项目上线注意事项
  • MySQL数据库运维之数据恢复
  • Python打包系统简单入门
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 坑!为什么View.startAnimation不起作用?
  • 那些被忽略的 JavaScript 数组方法细节
  • 提醒我喝水chrome插件开发指南
  • 王永庆:技术创新改变教育未来
  • 译米田引理
  • 白色的风信子
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 扩展资源服务器解决oauth2 性能瓶颈
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # Apache SeaTunnel 究竟是什么?
  • # centos7下FFmpeg环境部署记录
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (33)STM32——485实验笔记
  • (pojstep1.1.2)2654(直叙式模拟)
  • (ZT)薛涌:谈贫说富
  • (第61天)多租户架构(CDB/PDB)
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十六)一篇文章学会Java的常用API
  • (一)SpringBoot3---尚硅谷总结
  • (转)Linq学习笔记
  • (转载)虚函数剖析
  • *2 echo、printf、mkdir命令的应用
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息