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

Linux 同步方法剖析

文章来源:http://www.ibm.com/developerworks/cn/linux/l-linux-synchronization.html
级别: 中级
M. Tim Jones, 顾问工程师, Emulex
2007 年 11 月 19 日
在学习 Linux® 的过程中,您也许接触过并发(concurrency)、临界段(critical section)和锁定,但是如何在内核中使用这些概念呢?本文讨论了 2.6 版内核中可用的锁定机制,包括原子运算符(atomic operator)、自旋锁(spinlock)、读/写锁(reader/writer lock)和内核信号量(kernel semaphore)。 本文还探讨了每种机制最适合应用到哪些地方,以构建安全高效的内核代码。
本文讨论了 Linux 内核中可用的大量同步或锁定机制。这些机制为 2.6.23 版内核的许多可用方法提供了应用程序接口(API)。但是在深入学习 API 之前,首先需要明白将要解决的问题。
developerWorks 上 Tim 的更多 剖析... 系列
Linux 文件系统剖析
Linux 网络堆栈剖析
Linux 内核剖析
Linux slab 分配器剖析
Tim 的所有 Anatomy of... 文章
并发和锁定
当存在并发特性时,必须使用同步方法。当在同一时间段出现两个或更多进程并且这些进程彼此交互(例如,共享相同的资源)时,就存在并发 现象。
在单处理器(uniprocessor,UP)主机上可能发生并发,在这种主机中多个线程共享同一个 CPU 并且抢占(preemption)创建竞态条件。抢占 通过临时中断一个线程以执行另一个线程的方式来实现 CPU 共享。竞态条件 发生在两个或更多线程操纵一个共享数据项时,其结果取决于执行的时间。在多处理器(MP)计算机中也存在并发,其中每个处理器中共享相同数据的线程同时执行。注意在 MP 情况下存在真正的并行(parallelism),因为线程是同时执行的。而在 UP 情形中,并行是通过抢占创建的。两种模式中实现并发都较为困难。
Linux 内核在两种模式中都支持并发。内核本身是动态的,而且有许多创建竞态条件的方法。Linux 内核也支持多处理(multiprocessing),称为对称多处理(SMP)。可以在本文后面的 参考资料 部分学到更多关于 SMP 的知识。
临界段概念是为解决竞态条件问题而产生的。一个临界段 是一段不允许多路访问的受保护的代码。这段代码可以操纵共享数据或共享服务(例如硬件外围设备)。临界段操作时坚持互斥锁(mutual exclusion)原则(当一个线程处于临界段中时,其他所有线程都不能进入临界段)。
临界段中需要解决的一个问题是死锁条件。考虑两个独立的临界段,各自保护不同的资源。每个资


相关文档:

linux下apache+php安装常见问题


linux下apache+php安装常见问题
configure: error: Unable to find libgd.(a|so)
如果使用的是ubuntu或debian就很简单了,直接sudo apt-get install apache2 libapache2-mod-php5 php5 php5-gd 就基本上搞定,但是用源代码安装还是很麻烦~
wget http://www.boutell.com/gd/http/gd-2.0.11.tar.gz
tar zxvf gd-2.0.11 ......

linux下的解压,打包工具

解压工具(无打包功能):
-------------------------------
j——bzip2、bunzip2 
z——gzip、gunzip
Z——compress、uncompress
解压工具(有打包能力):
-------------------------------
zip、unzip
rar、unrar
压缩包*.tar.gz或者*.tgz的解压
----------------------- ......

用命令行加挂Linux的文件系统简介


学习操作系统时我们都了解到文件系统是操作系统的重要组成部分之一。文件系统有很多种类型,比Windows的fat、fat32;Linux的ext、ext2或ext3;FreeBSD的ufs等等。在使用Linux的过程,也常常Linux操作系统使用虚拟文件系统VFS,通过VFS可以直接存取其它已被内核支持的各种文件系统,用起来就像是在普通的 Linux的ext系列文 ......

linux下强制新用户首次登陆修改密码


如果系统管理员希望添加一个用户以后,让该用户第一次登录以后自己设置自己的密码,那么就要使得用户的初始密码或者空密码立刻过期,强制用户第一次登录后立刻修改密码。
为了强制用户第一次登录时设置一个新密码,请按照下面的指示来做,但是需要的注意的时候如果用户是通过SSH远程登录进去的,那么该方法是不能生效的 ......

PHP5在Linux下安装


Linux下安装PHP5的主要步骤:
1.下载php5;地址:http://cn.php.net/downloads.php
2.解压软件包后进入该目录
(转者注:
可能会需要先解压php-5.*.tar.bz2 ,先执行bzip2 -d php-5.*tar.bz2

tar -xvf php-5.*.tar.gz
cd php-5.*
3.php安装mysql的模块的一些准备工作
ln -s /usr/local/mysql/lib/mysql /usr/l ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号