目录
1.信号量理论
信号量是进程之间通信的一种。
信号量可以在多执行流下对,共享资源进行保护(例:共享内存本身是是一种共享资源,但是本身是不带协同机制的,这样就会出现数据不一致的问题,写端想写"hello world",但是在写端写到hello时,读端就把数据读走了,造成了数据不一致)。
互斥:在访问公共资源时,只能有一个进程访问。
同步:在访问资源安全的前提下,各进程按一定顺序,并发访问资源。
临界区:访问临界资源的那些代码,就是临界区,保护临界资源本质就是保护临界区。
原子性:执行一个动作只有两种状态,一种是成功,一种是未开始,也就是说这个动作是不能在被切分的。
2.信号量原理
信号量是一种资源预定机制,只要预定了,资源在未来一定是该进程的。
这是一块共享内存,这个内存被分成了12个区域,每个进程只会访问一小块区域。
每个小区域都有自己的编号,当一个执行流想使用小块资源时必须,申请对应的编号,然后才能让问对应的小区域,使用完之后还要将编号还回去,这样保证每一块的小资源都是互斥访问的,大块的资源就是多个进程同步访问的。