操作系统学习--并发和互斥

一、并发基础

并发并不是真的并行执行,但是其表现为并行执行,可以提高效率

并发的基本要求是互斥。

并发出现的情况:①多道程序执行

                             ②多处理器技术

                             ③分布式系统

二、并发原理

 单处理器为替换,多处理器为重叠执行和替换


三、并发要考虑的问题

  (1)进程资源竞争

例如,多个进程要同时访问同一个I/O时,发生竞争,操作系统作为管理者要进行协调。要考虑的问题

①互斥。保证在一个时间只有一个进程访问临界资源

②死锁。进程A和B同时需要资源1和2,而A拥有1,B拥有2,A和B永远相互等待,不释放各自的资源。发生死锁。

③饿死。进程A,B,C同时需要资源1,而资源1的控制权在A和B间传递,C无法获得控制权,饿死。

  (2)进程资源共享

因为有资源的访问也会发生死锁和饿死的情况,但主要是保证数据的一致性和完整性。只有写过程需要保证互斥。

  (3)进程间的通信

发送消息和接受消息,也会发生死锁和饿死

死锁:进程A和B在互相等待对方的消息,发生死锁

饿死:进程A和B始终处于活跃状态,要求和A通信的C被饿死。


四、互斥机制要解决的问题

①必须强制进行互斥。访问临界区的进程一次只能有一个

②一个处于非临界区的进程停止不影响其他进程

③不允许一个访问临界区的进程被无限的拒绝

④没有进程在临界区时,任何想要进入的进程都能进入

⑤对相关进程的数目和处理器的速度没有要求

⑥一个进程留驻在临界区的时间是有限的


五、解决方法

(1)软件方法

(2)硬件方法

专门的指令

(3)信号量

(4)管程


六、利用信号量解决具体相关问题

(1)生产者和消费者的问题


(2)进程间通信的问题

进程交互的两个基本要求:同步和通信,为了互斥,需要同步;为了合作,需要通信。

发送原语:send(destination,message);

接受原语:receive(source,message);


①同步:发送方和接收方均有两种方式:阻塞和不阻塞。因此有四种组合

②寻址:            直接寻址:发送原语的目的为进程标识,而接收方有两种处理方式,一是显式的指定发送方即事先知道希望得到哪个进程的消息,二是隐式,如打印进程

                         间接寻址:信箱(队列)和相应的进程关联,可以静态关联也可以动态关联。

③消息格式:和具体的消息机制和操作系统有关

④排队原则:通常是先进先出队列和紧急事件的优先级相结合。

(3)读/写问题

要求:①任意多的读进程可以同时执行。
          ②一次只有一个写进程执行。
          ③有一个写进程执行时,禁止任何读进程。
两种处理策略:
 ①读进程具有优先权
 ②写进程具有优先权

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值