操作系统复习笔记3

1、条件变量和互斥锁

条件变量一般和互斥锁一起使用,来弥补互斥锁的不足。总得来说,互斥锁用来规范线程对共享数据的竞争使用,条件变量用来协调各个线程合作完成任务。

2、enum枚举类型

enum typeName { valueName1, valueName2, valueName3, ...... };

typeName是枚举类型的名字,花括号里面的元素(枚举成员)是常量而不是变量,这个一定要搞清楚,因为枚举成员的是常量,所以不能对它们赋值,只能将它们的值赋给其他的变量。

python和C++都有枚举类型,但是不太一样,不要搞混了

3、互斥的实现方法

有软件也有硬件,现在一般是结合在一起

软件的主要思想就是解决那四个准则:空闲让进、忙则等待、有限等待、让权等待。缺点:存在忙等现象。

硬件的主要思想是:用一条指令完成标志的检查和修改这两个操作,或者通过中断屏蔽保证检查和修改作为一个整体。缺点:不能实现让权等待。

4、信号量

信号量是一个二元组{s,p},s表示资源数量,p是一个队列,用来放正在排队想要使用这一资源的进程,即

操作系统复习笔记3_第1张图片

信号量的值只能由P(wait,调用资源),V(signal归还资源)改变

你可能感兴趣的:(考研复习,笔记,操作系统)