易截截图软件、单文件、免安装、纯绿色、仅160KB

linux驱动编程核心理论之并发控制

驱动编程核心理论之并发控制
并发,竟态的理解:也就是Linux的东西在时间和空间被同时使用导致的问题
Linux系统提供的解决方案:
    中继屏蔽
    原子操作
    自旋锁
    信号量
   
1,中断屏蔽
    首先这个依赖于CPU,CPU一般提供屏蔽中断的打开中断的功能,中断屏蔽使得中断和进程之间的并发
    不再发生,同时进程调试也依赖于中断,内核抢占的进程间并发也就可以避免
   
    使用方法
    local_irq_disable()//屏蔽中断
    ...
    critical section()//临界区
    ...
    local_irq_enable()//打开中断
    这种方法只能解决单个CPU的问题
   
    注意 : 长时间中断屏蔽很危险,比较适合和自旋锁联合使用
    local_irq_save(flags)    禁止中断同时保存目前CPU的中断信息位
    local_irq_restore(flags) 打开中断同时恢复中断信息位
    底半部操作
    local_bh_disable()
    local_bh_enable()
   
2,原子操作
    原子操作是指在执行过程中不会被的代码路径所中断的操作。待理解
    分为两类,针对位的操作和整型变量的操作
   
    针对整型变量的原子操作的相关函数
    void atomic_set(atomic_t *v, int i);//设置原子变量的值为i
    atomic_t v = ATOMIC_INIT(0);//定义原子变量v并初始化为0
    atomic_read(atomic_t *v);//返回原子变量的值
    void atomic_add(int i, atomic_t *v);//原子变量增加i
    void atomic_sub(int i, atomic_t *v);//原子变量减少i
    void atomic_inc(atomic_t *v);//原子变量自增加1
    void atomic_dec(atomic_t *v);//原子变量自减少1
    操作并测试函数
    int atomic_inc_and_test(atomic_t *v);
    int atomic_dec


相关文档:

Linux模块编程


摘要
Linux内核模块编程的资料有些纷繁复杂,有的过于简单,有的过于庞杂,我试图用笔记的形式想读者展示怎样来进程Linux模块编程,力图做到简明扼要,这篇文章也是作为本人备忘的资料,所以有些地方过于简略是难免的。本来这篇文章的目的就是让用户知其然,至于所以然还是请参考相应的资料,其实最好的资料莫过于Linux ......

linux安装mysql

1、安装包
下载网址:http://dev.mysql.com/downloads/mysql/
mysql-5.1.38.tar.gz(版本:5.1.38)
2、添加mysql用户与群
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
3、解压与编译
tar zxvf mysql-5.1.38.tar.gz
cd mysql-5.1.38/
./configure --prefix=/usr/local/mysql/ --enable-assembler --w ......

Linux下的环境变量

 
我们在Linux下安装系统软件的时候,经常遇到一些系统环境变量配置的问题。什么是环境变量?如何定制环境变量?我将在下面做一些介绍。
一、 什么是环境变量?
Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义, 这组变量被称为环境变量。用户 ......

Linux内核同步介绍和方法

Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访问会导致竞态,linux提供了多种解决竞态问题的方式,这些方式适合不同的应用场景。
 
Linux内核是多进程、多线程的操作系统,它提供了相当完整的内核同步方法。内核同步方法列表如下:
中断屏蔽
原子操作
自旋锁
读写自旋锁
顺序锁
......

VMware网络设置(WindowsXP+虚拟Ret Hat Linux 9)

宿主机:Windows XP Professinoal SP2
VMware:Red Hat Linux 9
网络:ADSL局域网512M
所用软件:
VMware-workstation-6.0.0-45731.exe
Red Hat Linux 9
安装过程:
1.安装VMware-workstation-6.0.0-45731.exe
2.开启VMware.安装Linux.
  安装时可直接用硬盘iso文件.
  VMware=>VM=>Settings=> ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号