进程调度之并发控制(一)

并发原理

进程间通信
进程竞争或共享资源实现
多进程同步
时间分配

并发的一些困难:
全局资源共享很难(会造成脏数据)
资源分配管理上

临界资源,临界区,互斥

临界资源只能互斥使用,临界区一次只允许一个进程访问,比如打印机;
可能会产生死锁与饥饿。比如:
两个进程P1,P2,竞争两个资源A,B,假设:

占用:P1(A)andP2(B)
申请:P1(B)andP2(A)

结果两进程都在阻塞,等在对方唤醒自己,会造成两个进程永久等待(死锁)。

为了避免发生问题,临界区原则:
进入区(判断谁进去)
临界区
退出去
除了竞争,还有合作关系,比如;互斥写,或者互斥读,保证数据完整性,不是脏数据;

进程间通信也会造成死锁,所以会有tcp/ip协议产生,避免死锁;

互斥的要求

空闲让进
忙则等待
有限等待
让权等待

硬件方式实现互斥

互斥方法:
软件方法
硬件方法
信号量
管程
消息传递

软件方法:能解决两个进程互斥,在临界资源中设置一个全局变量,比如0,1;0代表空闲,1代表占用;
缺点:资源开销大;
硬件方法:
屏蔽中断:代价高,不适合多处理器系统
专用机器指令:指令周期内不会被中断
Test and Set指令
Exchange

回顾:
多进程会合作完成某项任务,那么就会有资源的竞争,资源有的是需要同步有的是互斥访问的,互斥是完成对临界资源的访问,同步就是为了进程间的合作,所以需要控制进程的同步与互斥,接下来介绍了互斥的机制,接下来介绍了控制互斥这些的方法

你可能感兴趣的:(进程调度之并发控制(一))