操作系统原理读书笔记之进程互斥
来源:互联网 发布:ios 高级编程 编辑:程序博客网 时间:2024/05/29 12:44
临界资源:表示该资源一次只允许一个进程使用,也叫互斥资源或共享变量
临界区(互斥区):各个进程对某个临界资源实施操作的程序片段
解决进程互斥的方法
软件方案:
1、加锁(对free加锁)
...//封装成原语lock()while(free);free = true;//lock end//临界区//解锁free = false;...
2、DEKKER算法
进程p1:
pturn = true;while(qturn) { if(turn == 2){ pturn = false; while(turn == 2); pturn = true; }}//临界区turn = 2;pturn = false;
进程p2:
qturn = true;while(pturn) { if(turn == 1){//turn==1表示让进程p1进入临界区 qturn = false; while(turn == 1); qturn = true; }}//临界区turn = 1;qturn = false;
缺点:浪费cpu资源,忙等待
3、PETERSON算法
...enter_region[i];//临界区leave_region[i];...
#define FALSE 0#define TRUE 1#define N 2 //只有两个进程int turn; //轮到哪个进程号int interested[N]; //表明进程是否有意愿进入临界区,初始值为{0, 0}void enter_region(int process){//process进程号表示0或1 int other;//另外一个进程的进程号 other = 1 - process; interested[process] = TRUE; turn = process; while(turn == process && interested[other] == TRUE);}void leave_region(int process) { interested[process] = FALSE;}
硬件解决方案
1、中断屏蔽
互斥这种问题实质是由于多个进程不断的中断、上时间片造成的,因此最直接的办法是:
在进入临界区之前关闭中断指令,出临界区后打开中断,目的在于进入临界区时不允许中断,从而避免多个进程同时进入一个临界区
优点:简单高效
缺点:限制并发能力;不适用于多处理器;由于这种操作属于特权指令,仅适用于操作系统本身,不适用于用户进程
2、“测试并加锁”指令
enter_region: TSL REGISTER,LOCK ;复制锁到寄存器、并将锁置1 CMP REGISTER,#0 ;判断寄存器的值是否为0 JNE enter_region ;若不是0,跳转到enter_region RET ;是0则返回,进入临界区leave_region: MOVE LOCK,#0 ;将锁置0 RET
可以看出,这也是一种忙等待
3、交换指令
原理与2相似
在单处理情况下,忙等待必然不是一个好方法,但是在多核处理器的环境下,可以让进程一直在某个cpu上运行而不中断切换,这时候忙等待的开销足以抵过进程上下文切换带来的开销,因此忙等待的思路又被重新提出且人们给他起了一个高大上的名字叫自旋锁(spin lock)
0 0
- 操作系统原理读书笔记之进程互斥
- 操作系统原理读书笔记之进程同步
- 操作系统原理读书笔记之进程间通信IPC
- 操作系统进程--互斥实验
- 操作系统互斥进程问题
- 操作系统互斥进程问题
- 操作系统实验五之进程互斥实验
- 操作系统之进程互斥的经典问题的分析
- 操作系统之进程互斥与同步和线程
- 操作系统原理读书笔记之文件系统
- 操作系统原理读书笔记之死锁
- 操作系统读书笔记-互斥和同步
- 操作系统之我见-互斥
- 【操作系统原理】进程的互斥以及上锁与解锁原语
- 操作系统 进程/线程 同步与互斥
- 操作系统--进程的互斥与同步
- 操作系统---进程的互斥和并发
- 操作系统课堂笔记(4)进程管理之进程同步与互斥
- amlogic平台android uboot中添加i2c设备实现i2c的读写
- LightOJ
- 水的问题之half类型
- CNN笔记:通俗理解卷积神经网络
- 5.2号学习日志
- 操作系统原理读书笔记之进程互斥
- 序列化二叉树。。。int*,char*
- html5有哪些新特性?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
- hdu1016-dfs回溯法
- poj3321 Apple Tree(树状数组+dfs)
- this对象的理解
- 系统恢复技术
- MergeSort and Quick Sort
- 超星电子书转PDF新思路