
进程同步
oqqYuJi12345678
这个作者很懒,什么都没留下…
展开
-
Linux内核同步机制之(二):spin lock
一、前言在linux kernel的实现中,经常会遇到这样的场景:共享数据被中断上下文和进程上下文访问,该如何保护呢?如果只有进程上下文的访问,那么可以考虑使用semaphore或者mutex的锁机制,但是现在中断上下文也参和进来,那些可以导致睡眠的lock就不能使用了,这时候,可以考虑使用spin lock。本文主要介绍了linux kernel中的spin lock的原理以及代码实现。由于...转载 2019-12-03 11:41:56 · 334 阅读 · 0 评论 -
Linux内核同步机制之(一):原子操作
一、源由我们的程序逻辑经常遇到这样的操作序列:1、读一个位于memory中的变量的值到寄存器中2、修改该变量的值(也就是修改寄存器中的值)3、将寄存器中的数值写回memory中的变量值如果这个操作序列是串行化的操作(在一个thread中串行执行),那么一切OK,然而,世界总是不能如你所愿。在多CPU体系结构中,运行在两个CPU上的两个内核控制路径同时并行执行上面操作序列,有可能...转载 2019-11-25 20:10:33 · 367 阅读 · 0 评论 -
linux 同步机制之complete
在Linux内核中,completion是一种简单的同步机制,标志"things may proceed"。要使用completion,必须在文件中包含<linux/completion.h>,同时创建一个类型为struct completion的变量。1 结构与初始化Completion在内核中的实现基于等待队列,completion结构很简单:struct com...原创 2019-10-31 23:11:05 · 820 阅读 · 0 评论