六、信号量机制

1、信号量机制

OS学习(六) 信号量机制

2、同步、互斥及实现前驱关系

OS学习(六) 信号量机制

3、生产者-消费者问题

PV操作题目的解题思路:
  1. 关系分析。找出题目中描述的各个进程,分析它们之间的同步、互斥关系。
  2. 整理思路。根据各进程的操作流程确定P、V操作的大致顺序。
  3. 设置信号量。设置需要的信号量,并根据题目条件确定信号量初值。(互斥信号量初值一般为1,同步信号量的初始值要看对应资源的初始值是多少)
  • 生产者消费者问题是一个互斥、同步的综合问题。有时候是消费者需要等待生产者生产,有时候是生产者要等待消费者消费,这是两个不同的“一前一后问题”,因此也需要设置两个同步信号量。

4、读者-写者问题

读者-写者问题为我们解决复杂的互斥问题提供了一个参考思路。

其核心思想在于设置了一个计数器count用来记录当前正在访问共享文件的读进程数。我们可以用count的值来判断当前进入的进程是否是第一个/最后一个读进程,从而作出不同的处理。

另外,对count变量的检查和赋值不能一气呵成导致了一些错误,如果需要实现“一气呵成”,自然应该想到用互斥信号量。

5、哲学家进餐问题

哲学家进餐问题的关键在于解决进程死锁。

这些进程之间只存在互斥关系,但是与之前接触到的互斥关系不同的是,每个进程都需要同时持有两个临界资源,因此就有“死锁”问题的隐患。

如果遇到了一个进程需要同时持有多个临界资源的情况,应该参考哲学家问题的思想,分析题中给出的进程之间是否会发生循环等待,是否会发生死锁。

6、管程

OS学习(六) 信号量机制

相关文章:

  • 2021-08-27
  • 2022-01-07
  • 2022-12-23
  • 2022-03-01
  • 2022-12-23
  • 2022-12-23
  • 2021-08-29
  • 2021-06-15
猜你喜欢
  • 2022-01-16
  • 2021-07-07
相关资源
相似解决方案