首页 > 系统相关 >进程同步

进程同步

时间:2023-01-12 16:45:05浏览次数:33  
标签:进程同步 信号量 修改 临界 线程 缓冲区

信号量

进程同步:让进程走走停停实现合理有序,通过信号量实现合理有序。

以生产者,消费者实例,多个线程负责生产,多个线程负责消费,生产者消费者共用一个缓冲区,线程之间需要同步。

用信号进行同步。缓冲区满了,该线程睡眠,缓冲区有空余,将唤醒一个线程。

用信号进行同步,不能解决全部问题。引出信号量,信号量会多保存一些信息。

等于1的信号量就是锁。

 

临界区:只允许一段代码进行修改 ,满足互斥性。

多个进程如果通过信号量实现进程同步,那么就会共享数据,共享信号量,多个进程亦或线程在对共享数据进行修改的时候会出现问题。(原子操作)

读写信号量的代码一定是临界区。(对信号量进行保护)

 

临界区的实现:

实质上是实现修改共享数据的同步。

 

一,用软件实现临界区。

  1.轮换法

  2.标记法

  3.轮换+标记法

 

以面包店算法为例

 

二,cli() sti()。

进程只有被调度之后才可能进入另一个执行序列,临界区直接关中断,阻止调度。

(多核CPU不好使)

 

三,硬件原子指令法

核心:硬件

将修改锁的指令做成原子指令。

锁的概念类似信号量,硬件保证修改锁的时候的原子性,将修改锁操作做成一条指令。

标签:进程同步,信号量,修改,临界,线程,缓冲区
From: https://www.cnblogs.com/wuyun--wy/p/17022139.html

相关文章

  • 进程同步机制四大基本准则
    实现进程同步的代码需要满足一下四个基本准则空闲让进当无进程处于临界区,可允许一个请求进入临界区的进程立即进入自己的临界区忙则等待当已有进程进入自己的临界区,所有企图......
  • 进程同步
    多道程序下进程是并发执行的,因此就产生了同步的问题。解释几个概念:临界资源:一次只能被一个所使用的资源临界区:访问临界资源的那部分代码同步:直接制约关系,必须要进程A先执......
  • 进程同步
    临界区对临界资源进行访问的那段代码称为临界区。为了互斥访问临界资源,每个进程在进入临界区之前,需要先进行检查。//entrysection//criticalsection;//exitse......