[STUDY VLOG] 勉強風景 #12

  • 操作系统
    • 进程同步:某种时序关系,伙伴进程

      • 生产者/消费者问题(有界缓冲区问题):满加数据、空移数据
      • 避免忙等待:等待与睡眠
      • 例子:spooling系统
    • 信号量及PV操作

      • 一个特殊的变量,用于进程间传递信息的一个整数值。
      • semaphore s
      • 对信号量可以实施的操作:初始化、P和V(test 和 increment)
      • P对信号量值减1,判断是否小于0,若生产则为阻塞态 等待队列末尾 重新调度
      • V对信号量值加1,若小于等于0,则唤醒一个进程,改为就绪态
      • 用PV操作解决互斥
        • 划定临界区后,设置信号量mutex = 1,再临界区前P,在临界区后V
    • 用信号量解决生产者/消费者问题

      • 顺序和位置:P不可点掉,若颠倒会出现死锁;V可以颠倒不会出错,但是会多运行几步;所以不需要在临界区做的事尽量不要再临界区执行
    • 用信号量解决读者/写者问题

发布了42 篇原创文章 · 获赞 5 · 访问量 2692

猜你喜欢

转载自blog.csdn.net/weixin_44198992/article/details/105147870