文章目录
同步 互斥
进程同步 进程互斥
进程互斥的软件实现方法
单标志法
双标志先检查法
双标志后检查法
Peterson算法
可以将等待区的步骤进行穿插,试试会不会有问题。
总计
进程互斥的硬件实现方法
中断屏蔽算法
TestAndSet指令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-drSebrr7-1666279528056)(C:\Users\86150\AppData\Roaming\Typora\typora-user-images\image-20220903104043257.png)]
Swap指令
总结
信号量机制
信号量实现互斥 同步 同步前驱
互斥
同步
前驱
总结
经典同步问题
生产者消费者模型
读者写者问题
哲学家进餐
睡眠理发师
管程
习题
多个进程可以共享系统中的资源,一次仅允许一个进程使用的资源称为临界资源。访问临界资源的那段代码称为临界区。
临界区,并不是指临界资源,如共享的数据、代码或硬件设备等,而是指访问临界资源的那段代码程序
在操作系统中,要对并发进程进行同步的原因是 并发进程具有异步性
P、V操作是一种低级的进程通信原语,它是不能被中断的
若代码可被多个进程在任意时刻共享,则要求任一个进程在调用此段代码时都以同样的方式运行;而且进程在运行过程中被中断后再继续执行,其执行结果不受影响。这必然要求代码不能被任何进程修改,否则无法满足共享的要求。这样的代码就是可重入代码,也称纯代码,即允许多个进程同时访问的代码
管程的signal操作与信号量机制中的V操作不同,信号量机制中的V操作一定会改变信号量的值S = S+1。而管程中的signal操作是针对某个条件变量的,若不存在因该条件而阻塞的进程,则signal不会产生任何影响
执行结果不同的两个并发进程,则两个并发进程不能正确运行