linux 建議鎖和強制鎖

2021-06-27 22:50:10 字數 701 閱讀 9888

**:

linux是有強制鎖的,但是預設不開啟.

想讓linux支援強制性鎖,不但在mount的時候需要加上-o mand,而且對要加鎖的檔案也需要設定相關許可權。

1、建議鎖又稱協同鎖。對於這種型別的鎖,核心只是提供加減鎖以及檢測是否加鎖的操作,但是不提供鎖的控制與協調工作。也就是說,如果應用程式對某個檔案進行操作時,沒有檢測是否加鎖或者無視加鎖而直接向檔案寫入資料,核心是不會加以阻攔控制的。因此,建議鎖,不能阻止程序對檔案的操作,而只能依賴於大家自覺的去檢測是否加鎖然後約束自己的行為;

2、強制鎖,是os核心的檔案鎖。每個對檔案操作時,例如執行open、read、write等操作時,os內部檢測該檔案是否被加了強制鎖,如果加鎖導致這些檔案操作失敗。也就是核心強制應用程式來遵守遊戲規則;

2、由fork產生的子程序不繼承父程序所設定的鎖。意味著,若乙個程序得到一把鎖,然後呼叫fork,那麼對於父程序獲得鎖而言,子程序被視為另乙個程序,對於從父程序處繼承過來的任一描述符,子程序需要呼叫fcntl才能獲得它自己的鎖。這與鎖的作用是一致的。鎖的作用是阻止多個程序同時操作同乙個檔案,如果子程序繼承父程序的鎖,則父子程序操作同乙個檔案,這與鎖的初衷相違背;

3、 在執行exec後,新程式可以繼承原執行程式的鎖。但是注意,如果對乙個檔案描述符設定了close-on-exec標誌,那麼當作為exec的一部分關閉該檔案描述符時,對相應檔案的所有鎖都被釋放啦!!

linux 建議鎖和強制鎖

作為 apue 14.3 節的參考 linux 是有強制鎖的 但是預設不開啟.想讓 linux 支援強制性鎖,不但在 mount 的時候需要加上 o mand,而且對要加鎖的檔案也需要設定相關許可權。1 建議鎖又稱協同鎖。對於這種型別的鎖,核心只是提供加減鎖以及檢測是否加鎖的操作,但是不提供鎖的控制...

強制性鎖建議性鎖

當多個使用者共同使用,操作乙個檔案的情況,linux通常採用的方法就是給檔案上鎖,來避免共享資源產生競爭的狀態。fcntl檔案鎖有兩種型別 建議性鎖和強制性鎖 使用fcntl檔案鎖進行i o操作必須小心 程序在開始任何i o操作前如何去處理鎖,在對檔案解鎖前如何完成所有的操作,是必須考慮的。如果在設...

apue 中建議性記錄鎖和強制性記錄鎖的描述

書中描述 考慮資料庫訪問例程式。如果該庫中所有函式都以一致的方法處理記錄鎖,則稱使用這些函式訪問資料庫的任何程序集為合作程序 cooperating pro c e s s 如果這些函式是唯一的用來訪問資料庫的函式,那麼它們使用建議性鎖是可行的。但是建議性鎖並不能阻止對資料庫檔案有寫許可權的任何其他...