2.3.3进程互斥的硬件实现方法

目录

2.3.3进程互斥的硬件实现方法

2.3.3.1 中断屏蔽

2.3.3.2 TestAndSet指令(TSL指令)

2.3.3.3 SWAP指令


2.3.3.1 中断屏蔽

在本系列的第五节曾经提到过中断的概念,并说中断是操作系统夺回CPU的唯一方式,在这里中断屏蔽的想法与原语原子性保证的想法是一致的,即将临界区放在开中断与关中断之间,这样在临界区执行的过程中就无法发生中断,操作系统也就不会再夺回CPU访问临界资源了。这种方法虽然很简单但是如果用户进程随意使用中断这种内核态指令的话就会带来很大的危险。

2.3.3.2 TestAndSet指令(TSL指令)

  
我们来执行一下上面的代码,若刚开始 lock 是 false,则 TSL 返回的 old 值为 false,while 循环条件不满足,直接跳过循环,进入临界区。若刚开始 lock 是 true,则执行 TLS 后 old 返回的值为 true,while 循环条件满足,会一直循环,直到当前访问临界区的进程在退出区进行“解锁”。但是这个方法还是没完成让权等待的原则。

2.3.3.3 SWAP指令

  逻辑上来看 Swap 和 TSL 并无太大区别,都是先记录下此时临界区是否已经被上锁(记录在 old 变量上),再将上锁标记 lock 设置为 true,最后检查 old,如果 old 为 false 则说明之前没有别的进程对临界区上锁,则可跳出循环,进入临界区。

操作系统(二十)进程互斥的硬件实现方法相关推荐

  1. 王道操作系统考研笔记——2.3.3 进程互斥的硬件实现方法

    文章目录 2.3.3 进程互斥的硬件实现方法 2.3.3.1 中断屏蔽方法 2.3.3.2 TestAndSet指令 2.3.3.3 Swap指令 2.3.3.4 小结 2.3.3 进程互斥的硬件实现 ...

  2. 操作系统之进程管理:9、进程互斥的硬件实现方法

    9.进程互斥的硬件实现方法 思维导图 1.中断屏蔽方法 2.TestAndSet指令(TS指令.TSL指令) 3.Swap指令(XCHG指令) 思维导图 1.中断屏蔽方法 2.TestAndSet指令 ...

  3. 操作系统学习笔记02【进程控制——进程互斥的硬件实现方法】【自用】

    1.进程控制 什么是进程控制? 如何实现进程控制: 为了避免把某一进程pbc从一个队列转移到另一个队列,但是并没有把pbc内的状态标志改为新的对应状态,从而导致pcb的状态标志与实际所处队列不一样这一 ...

  4. 2.12进程互斥的硬件实现方法

    一.中断屏蔽法 利用开/关中断指令实现硬件的进程互斥 在指令执行前,先执行一个关中断指令(不允许当前指令中断),直到当前进程访问完临界区执行开中断后,别的进程才能进入临界区 优点:简单.高笑 缺点:不 ...

  5. 十四、进程互斥的硬件实现方法

    一.知识总览 二.中断屏蔽方法 1.利用"开/关中断指令"实现(与原语的实现思想相同,即在某进程开始访问临界区到结束访问为止都不允许被中断,也就不能发生进程切换,因此也不可能发生两 ...

  6. 2.3.3 操作系统之实现临界区进程互斥的硬件实现方法

    文章目录 0.思维导图 1.中断隐藏方法 2.TestAndSet指令 3.Swap指令 0.思维导图 1.中断隐藏方法 2.TestAndSet指令 执行TSL指令时,它的内部运转逻辑: 假设loc ...

  7. 2.3.3 进程互斥的硬件实现方法

    目录 思维导图 中断屏蔽方法 TestAndSet(TS/TSL) Swap指令(XCHG) 思维导图 中断屏蔽方法 TestAndSet(TS/TSL) Swap指令(XCHG)

  8. 进程互斥的硬件实现方法

    中断屏蔽方法 TestAndSet指令 Swap指令

  9. 【学习笔记】第二章——进程同步、进程互斥、进程互斥的硬件/软件实现方法

    文章目录 一. 进程同步 && 进程互斥 四个区域 四个原则 总结: 二. 进程互斥的软件实现方法 1)单标志法 2)双标志先检查法 3)双标志后检查法 4)Peterson 算法 总 ...

最新文章

  1. 基于Boost::beast模块的同步WebSocket服务器
  2. 异数OS 2017 DPDK 峰会观后感
  3. 【复杂系统迁移 .NET Core平台系列】之迁移项目工程
  4. React事件绑定几种方法测试
  5. 【Maven学习】Maven打包生成包含所有依赖的jar包
  6. java垃圾回收 分代_Java分代垃圾回收策略原理详解
  7. android 照片特效,android触摸时扭曲变形图片照片,图片特效
  8. 赞!支付宝推出澳门币服务 澳门67万盆友又方便了不少
  9. GCC全过程详解+剖析生成的.o文件[转]
  10. 10.深入分布式缓存:从原理到实践 --- EVCache探秘
  11. struts2的ActionSupport
  12. 校友全剧透CMU :ME + 转CS + 其他主要项
  13. 天津大学计算机学院李晨曦,李晨曦-天津大学-生物医学光子成像实验室
  14. 大陆资金港股打新股亲身体验全流程
  15. 基于STM32单片机的步数测量系统(免费开源)
  16. JavaFX 边框背景
  17. 用库卡机器人编程写字_KUKA机器人的操作与基本运动编程(学员必备)
  18. APIO2018 新家
  19. VSCode添加MSBuild
  20. 新型的P2P下载技术工作原理(PPEASY)

热门文章

  1. WPF编程,TextBlock中的文字修饰线(上划线,中划线,基线与下划线)的使用方法。...
  2. Android-PopupWindow
  3. XML学习笔记(二)-- DTD格式规范
  4. Django里自定义用户登陆及登陆后跳转到登陆前页面的实现
  5. Unity3d webplayer发布的问题和100%自适应浏览器
  6. Python学习笔记:I/O编程
  7. Matlab练习:timer(定时器3)
  8. Qt中ui文件的使用
  9. 写python的c扩展简介
  10. 二十万字C/C++、嵌入式软开面试题全集宝典八