为了提高系统的并发性引入了进程和线程,线程的引入引起了资源的共享使用和竞争,利用同步解决了这个问题,同步机制具有锁
概念一次只能运行一个线程的临界区域代码
访问共享资源相关问题
排他、死锁、饥饿(用处理器调度算法解决) )。
临界区(为了解决同步问题,买面包的问题) )。
必须互斥运行才能在进程中访问共享资源的代码
干净短靴区别于临界区域,干净短靴中的线程可以暂时放弃干净短靴的独占访问,等待事件发生时恢复
确保数据一致性,确保合作进程有序运行的机制。
操作系统通过利用硬件原语构建锁,实现对临界区的访问
原子操作指令如下。
测试和设置命令
exchange命令
信号量
p ) )原子操作
v ) )原子操作
信号量的难点(例如生产者和消费者问题) )。
改变顺序会有影响。 发生死锁
平滑短靴允许在临界区域访问失败时,临时释放资源,让其他线程先执行。 它就像是作为线程内部操作系统的机制。
顺畅的短靴简化了应对同步问题的方法
在上图中锁的右侧添加条件变量,然后单击、
同步机制
进入区域
临界区
退出区
三种同步方法
1禁用硬件中断(消耗资源) )
2基于软件的同步方法(线程通过共享共享变量来同步操作) ) )。