- 操作系统
1.不需要信号量就可以实现的功能是进程的并发执行
3.临界资源在一个进程访问时,不允许其他进程抢占
4.信号量的数据结构为一个值和一个指针。指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关:当信号量大于0时,代表剩余的资源数量;当信号量小于0时,代表等待资源分配到进程数量
5.RWRR会饿死而WRRR不会饿死:在前者情况中,一开始R抢到了资源,当W来了,因为读者优先,会让后面的R先进行读操作;对于后者,一开始W先抢到资源,因此他会先执行写操作再让读者进行读操作
6.当一个进程对互斥变量s调用V(signal)操作后唤醒了另一个进程,此时s的取值范围为小于等于0:因为操作后唤醒进程说明等待队列有进程,则s应小于等于0才说明有进程等待
7.多生产者多消费者多缓冲区问题的互斥访问缓冲空间的信号量初始值为1:应该把"生产者"和"消费者"两个群体看做互斥访问变量的对象,两个群体争夺互斥变量,然后再调用群体内部的"放"和"拿"信号量(P156)
8.互斥的条件:同时调用共享变量
死锁的概念:每个进程都无限等待改组进程中另一进程占用的资源,因而永远无法得到资源
产生死锁的四个必要条件:
- 互斥条件:一个资源只能由一个进程占有
- 非剥夺条件:在进程占用的资源没用完前,任何进程无法强行夺走其资源
- 请求和保持条件:进程已经占有资源的情况下,又提出了新的资源请求,但该资源已被其他进程占有,此时要求阻塞,但仍保留原有的资源
- 循环等待条件:进程资源有向循环图
处理死锁的基本方法:
- 预防(低效广用)
- 避免(高效少用)
- 检测(检测后清除)
- 解除(释放资源打破闭环)
PS:3和4是属于同一个方法的,是当死锁发生时的处理方法
安全状态 安全序列 银行家算法