1. 内核同步

主要是防止多核处理器同时访问修改某段代码,或者在对设备驱动程序进行临界区的保护。

  1. 1 .互斥量
  2. 头文件 #include<linux/mutex.h>
  3. 初始化方法:
    1. 静态初始化 DEFINE_MUTEX(name), 动态初始化void mutex_init(struct mutex *lock);
  4. 使用方法:
  5. void mutex_lock(struct mutex *lock)   //尝试着得到互斥量,得不到则进入睡眠,睡眠期间,不能被中断
  6. 2. 信号量

3。  自旋锁

2. 进程/线程间同步机制

常用的同步方式有:原子操作、互斥锁、条件变量、读写锁、文件锁、信号灯。

1. 互斥锁

1. Share Memory共享内存

头文件以及相关函数

#inlcude <sys/shm.h>

void *shmat(int shm_id, const void *shm_addr, int shmflg); 

int shmctl(int shm_id, int cmd, struct shmid_ds *buf); 

int shmdt(const void *shm_addr); 

int shmget(key_t key, size_t size, int shmflg);

3. Message Queues消息队列

头文件以及相关函数

#Include<sys/msg.h>

int msgctl(int msqid, int cmd, struct msqid_ds *buf); 

int msgget(key_t key, int msgflg); 

int msgrcv(int msqid, void *msg_ptr, size_t msg_sz, long int msgtype, int msgflg); 

int msgsnd(int msqid, const void *msg_ptr, size_t msg_sz, int msgflg)

3.线程同步

互斥锁+条件变量

读写锁(区分读写请求)--->文件锁(进一步细分被锁对象的粒度)

linux同步的更多相关文章

  1. Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式

    Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cut ...

  2. Windows 下目录及文件向Linux同步

    本文解决的是Windows 下目录及文件向Linux同步的问题,Windows向 Windows同步的请参考:http://www.idcfree.com/article-852-1.html 环境介 ...

  3. linux 同步备份 rsyncd 相关设置

    17:25 2013/10/18------------------ rsync linux 同步备份服务器 配置vi /etc/rsyncd.conf 配置文件 /usr/bin/rsync --d ...

  4. linux同步windows的时间

    找了很多的资料,都没有windows做时间服务,linux同步windows的时间的,最后自己找了一些软件,终于搞定了,写出来给大家共享,以免大家多走弯路 首先在http://www.meinberg ...

  5. linux 同步IO: sync、fsync与fdatasync

    [linux 同步IO: sync.fsync与fdatasync] 传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行.当将数据写入文件时,内核通常先将该数据 ...

  6. linux同步软件

    linux同步软件:scp,rsync,inotify,sersync 1.scp: scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式 ...

  7. 【linux配置】Linux同步网络时间

    Linux同步网络时间 1.date '+%Y%M%D' 按照格式显示当前日期,结果如下: [root@LAMP ~]# date "+%Y-%m-%d %H:%M:%S" -- ...

  8. 【av68676164(p31-p32)】Windows和Linux同步机制

    4.6.1 Windows同步机制 临界区(CRITICAL_SECTION) 在进程内使用,保证仅一个线程可以申请到该对象 临界区内是临界资源的访问 相关的API函数 初始化临界区 WINBASEA ...

  9. 简述linux同步与异步、阻塞与非阻塞概念以及五种IO模型

    1.概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步.阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞.异步就是非阻塞,下面我们先剖析下这几个概念分 ...

  10. linux 同步IO: sync msync、fsync、fdatasync与 fflush

    最近阅读leveldb源码,作为一个保证可靠性的kv数据库其数据与磁盘的交互可谓是极其关键,其中涉及到了不少内存和磁盘同步的操作和策略.为了加深理解,从网上整理了linux池畔同步IO相关的函数,这里 ...

随机推荐

  1. 用C#调用Matlab图像处理自制QQ游戏2D桌球瞄准器

    平时不怎么玩游戏,有时消遣就玩玩QQ里的2D桌球,但是玩的次数少,不能像骨灰级玩家一样百发百中,肿么办呢?于是某天突发奇想,决定自己也来做个“外挂”.说是外挂,其实只是一个瞄准器,毕竟外挂是修改别人的 ...

  2. Windows下载Android源代码

    下载msysgit,安装 官方下载:http://code.google.com/p/msysgit/downloads/list, 打开Git Bash,运行命令 cd D: git clone h ...

  3. Delphi 7连接MySql 5.5.15

    原文:http://blog.csdn.net/akof1314/article/details/6822902/ 网上有很多关于Delphi连接MySql数据库的文章,在这里,我只记录下自己测试过的 ...

  4. java中的正则操作总结

    http://www.cnblogs.com/nerxious/archive/2013/01/03/2842910.html 正则表达式在处理字符串的效率上是相当高的 关于正则表达式的使用,更多的是 ...

  5. 【Android】利用服务Service创建标题栏通知

    创建标题栏通知的核心代码 public void CreateInform() { //定义一个PendingIntent,当用户点击通知时,跳转到某个Activity(也可以发送广播等) Inten ...

  6. Zend Studio / Ecliplse插件StartExplorer

    Install site.zip (quick and simple way) Locate zip file under site\target in Project Explorer, Start ...

  7. 日志分析(二) logstash patterns

    grok-patterns内置了很多基础变量的正则表达式的log解析规则,其中包括apache的log解析(同样可以用于nginx的log解析).   基于nginx日志分析配置: 1.配置nginx ...

  8. day06 Java基础

    1.二维数组格式一(列固定):数据类型[][] 变量名=new 数据类型[m][n]; 二维数组格式二(列变化):数据类型[][] 变量名=new 数据类型[m][]; 二维数组格式三:数据类型[][ ...

  9. HTML转换成word文档

    1工具类保存word文件 public class WordAction { public static void SaveAsWord(string fileName, string pFileNa ...

  10. 使用hibernate自动创建Mysql表失败原因

    1.使用 schemaExport(hibernate5.2.3)创建Mysql表 @Test public void testSchemaExport() { ServiceRegistry ser ...