操作系统复习笔记3

文章介绍了条件变量和互斥锁在多线程编程中的协同作用,用于资源的同步和管理。枚举类型作为常量集合在不同编程语言中的应用也进行了说明。此外,讨论了互斥锁的软件和硬件实现方式及其优缺点,以及信号量作为资源管理工具的角色,包括P和V操作的概念。
摘要由CSDN通过智能技术生成

1、条件变量和互斥锁

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

2、enum枚举类型

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

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

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

3、互斥的实现方法

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

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

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

4、信号量

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值