文章目录

  • 0.思维导图
  • 1.中断隐藏方法
  • 2.TestAndSet指令
  • 3.Swap指令

0.思维导图

1.中断隐藏方法

2.TestAndSet指令

  • 执行TSL指令时,它的内部运转逻辑:
  • 假设lock现在为false,代表临界资源A空闲,那么我就可以访问这个资源,同时将lock=true,提醒别的进程,这个临界资源A我正在使用,让他们等等
  • 假设lock为true,代表临界资源正在有人使用,所以我必须等待,并且将lock=true,并不影响什么,所以没关系,只是为了让lock为false时可以上锁,将上锁与检查在一个TSL指令完成。

3.Swap指令

  • old是每个进程都要进行的一步,都必须将old=true
  • 分析一下这样做的原因:
  • 因为lock是某一特定临界资源的共享变量,当每一个进程准备访问这个特定的临界资源时,初始化old=true,然后进入while循环进行交换,如果当前lock是false,则交换后old=false,则当前进程可以跳出循环进入临界区代码段,同时因为交换,lock=old=true上锁,不让别的进程来打扰,别的进程会因为lock变为true,一直在while循环等待,当我使用完临界资源,则将lock=false,此时别的进程再交换old和lock就能判断old=false,可以跳出循环,使用临界资源。

    参考:https://www.bilibili.com/video/av70156862?p=19

2.3.3 操作系统之实现临界区进程互斥的硬件实现方法相关推荐

  1. 2.3.2 操作系统之实现临界区进程互斥的软件实现方法

    文章目录 0.思维导图 1.单标志法 2.双标志先检查法 3,双标志后检查法 4.Peterson算法 0.思维导图 软件实现方法的思想:在进入区设置并检查一些标志 来标明是否有进程在临界区中,若已有 ...

  2. 操作系统(二十)进程互斥的硬件实现方法

    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 ...

  3. 王道操作系统考研笔记——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 进程互斥的硬件实现 ...

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. SQL SERVER性能优化综述
  2. acegis连接使用方法_正确打开效果器 连接方法和使用技巧必须要知道
  3. WebDriver API元素的定位
  4. 1495: 蛇行矩阵
  5. Java 简单五子棋程序的实现
  6. 几个常见的 Socket 连接错误及原因
  7. 华为ENSP模拟器的安装
  8. 16进制颜色代码转RGB代码
  9. 记一次3dmax操作入门(二)模型导入,选择和显示
  10. 医学软件项目开发(二):医学图像的显示及相关操作
  11. 关于组长、队长和团长
  12. lmp+heartbeat+drbd
  13. SQL on log : 同比分析各种指标
  14. Ubuntu 和 CentOS 根据命令查找软件包
  15. Pytorch ModuleNotFoundError: No module named ‘models‘
  16. Launcher 快捷方式、文件夹等的默认设置
  17. Til the Cows Come Home(dijkstra)
  18. Picasso框架源码解析(一)。
  19. apt、yum、dnf 和 pkg比较
  20. 【分享 10 个日常使用的脚本】

热门文章

  1. 分享让人折服的优秀代码基因
  2. matplotlib,numpy自己动手安装
  3. JavaScript:Object.prototype.toString方法的原理
  4. 四大微博OAuth认证
  5. DICOM文件格式与编程(转)
  6. 【opencv系列02】OpenCV4.X图像读取与显示
  7. 致命问题多数据源引发SpringBatch多事物
  8. go使用反射reflect获取变量类型
  9. 【收藏】解决关闭Hadoop时no namenode to stop异常
  10. shell如果文件夹不存在则创建