互斥 :当一个进程在临界区访问共享资源的时候,其他的进程就不能进入该临界区访问任何资源。
原子操作:一个或者多个指令序列,不可中断,对外不可分。
临界区:同一时间只能有一个进程在这段区域中运行。
死锁:两个或者多个进程都在等待对方做完某件事而不能继续执行,也就是相互等待对方。
活锁:两个或者多个进程为了响应其他进程的变化而持续改变自己的状态,但不做有用的工作。
竞争条件:多个进程或者线程在读写一个共享数据的时候,结果依赖于他们执行的相对时间。
饥饿:一个可运行的程序想尽可能的执行但是被调度器无限期的忽视。
信号量:进程之间传递信号的一个整数值,信号量上只有三种操作,初始化,递减,增加。都是原子操作。
互斥量:类似二元信号,为其加锁和解锁的进程必须为同一进程。
管程:一种编程语言结构,在一个抽象数据类型中封装了变量,访问过程,初始化代码。
生产者消费者的问题:
描述如下:有一个或者多个生产者产生某种数据放置在缓冲区,有一个消费者从缓冲区取数据。要避免重复操作。