操作系统互斥的实现方法
来源:互联网 发布:bi数据平台 编辑:程序博客网 时间:2024/06/18 07:00
互斥是由程序共享资源所引起的,某一个资源不允许同时多个程序访问,那么解决方法是要么访问其他空闲的同种资源,要么等待这一资源。等待这一资源就要在操作系统实现互斥:当一个进程正在使用资源的时候,其他希望使用该资源的程序必须等待,当该进程使用完并释放资源后,才允许其他进程去访问此资源,我们称这种进程之间的互相制约关系叫做互斥。
互斥的实现方法
软件方法
算法一:
int turn = 0;P0: { do { while(turn == 0) P0的临界区代码CS0; turn = 1; 进程的其他代码codesegment1; } while(ture); }P1: { do { while(turn == 1) P1的临界区代码CS1; turn = 0; 进程的其他代码codesegment2; } while(true); }
算法二:
//枚举类型enum boolean {true, false};boolean flag[2] = {false, false}; P0 { do { while flag[1]; flag[0] = true; CS0; flag[0] = false; codesegment1; } while(true); } P1: { do { while flag[0]; flag[1] = true; CS1; flag[1] = false; codesegment2; } while(true); }
算法三:
enum boolean{false, true};boolean flag[2] = {false, false}; P0 { do { flag[0] = true; while flag[1]; CS0; flag[0] = false; codesegment1; } while(true); } P1: { do { flag[1] = true; while flag[0]; CS1; flag[1] = false; codesegment2; } while(true); }
算法四:
enum boolean{false, true};boolean flag[2] = {false, false};int turn; P0 { do { flag[0] = true; turn = 1; while flag[1] && turn == 1; CS0; flag[0] = false; codesegment1; } while(true); } P1: { do { flag[1] = true; turn = 0; while flag[0] && turn == 0; CS1; flag[1] = false; codesegment2; } while(true); }
0 0
- 操作系统互斥的实现方法
- 操作系统实现互斥的几种常见的方法
- bash实现互斥、信号量的方法
- 操作系统的互斥与同步
- 闲谈操作系统的互斥机制
- 操作系统--进程的互斥与同步
- 操作系统---进程的互斥和并发
- 一种c#实现的函数互斥的方法
- synchronized 修饰的方法无法实现互斥的问题解决
- 操作系统——进程/线程同步互斥的控制方法
- VC++中数据访问互斥的简单实现方法
- 实现程序互斥运行的几种方法
- 实现程序互斥运行的几种方法
- 实现程序互斥运行的几种方法
- 实现程序互斥运行的几种方法 收藏
- 实现程序互斥运行的几种方法
- 浅谈两种方法实现进程互斥的原理
- 多线程同步和互斥的实现方法
- 结构体指针访问结构体数组
- Android - View绘图原理总结
- socket的半包,粘包与分包的问题
- 数据库链接池的使用
- HTML DOCTYPE 的重要性
- 操作系统互斥的实现方法
- 深入探讨在集群环境中使用 EhCache 缓存系统
- Android--多线程之Handler
- http://www.cnblogs.com
- 使用结构体实现学生信息管理系统
- 《linux 内核Makefile》之$(CURDIR)/Makefile Makefile: ;
- 中文URL处理
- 飞思卡尔智能车后感
- java第三弹--组合模式