首页 > 系统服务 > 详细

Linux建议锁和强制锁

时间:2017-06-20 10:39:38      阅读:270      评论:0      收藏:0      [点我收藏+]

llinxu强制性锁默认是不开启的,想让linux支持强制性锁,不但在mount的时候需要加上-o mand,而且对

要加锁的文件也需要设置相关权限。

1.建议性锁业称为协同锁,对于这种类型的锁,内核知识提供加减锁以及检测是否加锁的操作,但是不提供锁的控制与

协同工作,也就是说,如果应用程序对某个文件进行操作时,没有检测是否加锁或者

无视加锁而直接向文件写入数据,内核是不会加以阻拦控制的。因此,建议锁,不能阻止进程对文件的操作,

而只能依赖于大家自觉的去检测是否加锁然后约束自己的行为;

2。强制锁:是OS内核的文件锁。每个对文件操作时,例如执行open、read|、write等操作时,OS内部检测该文件是否被加了强制锁

,如果加锁导致这些文件操作失败,也就是内核强制应用程序来遵守游戏规则;

3.由fork产生的子进程不继承父进程所设置的锁。意味着,若一个进程得到一把锁,然后调用fork,那么对于父进程获得锁而言,子进程被视为另一个进程,对于从父进程处继承过来的任一描述符,子进程需要调用fcntl才能获得它自己的锁。

这与锁被歧视为另一个进程,对于从父进程继承过来的任一描述符,子进程需要调用fcntl才能获得

它自己的锁。这与锁的作用是一致的,锁的作用是阻止多个进程同时操作同一个文件,如果子进程

继承父进程的锁,则父子进程操作同一个文件,这与锁的初衷相违背;

4.在执行exec后,新程序可以继承原执行程序的锁,但是注意,如果对一个文件描述符设置了close

-on-exec标志,那么当作为exec的一部分关闭该文件描述符时,对相应的文件的所有锁都被释放。

Linux建议锁和强制锁

原文:http://www.cnblogs.com/jasongl/p/7052815.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!