操作系统学习第三天

1.原子操作。

2.critical section(临界区),互斥,死锁和饥饿。忙等待。lock.Acquire()和lock.Release()。

3.临界区特点。互斥,前进,等待时间有限。

4.基于硬件中断。进入临界区:禁用中断,离开临界区:开启中断。

5.给予软件的解决方法:使用两个共享数据项。

6.TestAndSet和Exchange操作是不可以被中断的。 结合lock.Acquire()和lock.Release()可以实现多个进程对临界区的访问。可以从忙等待到无忙等待。 

7.给予原子操作的指令实现临界区访问是最简单和应用广泛的。

8.信号量,P和V操作。信号量可以用在互斥和条件同步两方面。二进制信号量可以实现互斥。二进制信号量实现调度约束(一个线程等待另一个线程处理事情)。有界缓冲区的生产者-消费者问题。V的顺序可以颠倒,P不可以。

9.信号量的实现。

10.管程。目的:分离互斥和条件同步的关注。一个锁,0个和多个条件变量。同样生产者-消费者问题用管程解决。Hansen-style和Hoare-style的唤醒机制。

11.读者-写者问题。读者优先,写者优先。

12.哲学家问题。

13.死锁问题。资源分配图(P,R)。若果图中无循环,没有死锁;有循环,若每个资源只有一个实例,死锁,每个资源有几个实例,不死锁。

14.死锁的特征:互斥,持有并等待,无抢占,循环等待。这时死锁的必要条件,不是充分。

15.死锁的处理办法:鸵鸟算法,假装不会发生。

16.打破死锁的四个必要条件;死锁避免;安全序列;银行家算法(死锁避免)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值