Zamykání souborů

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Zamykání souborů je v informatice mechanizmus sloužící k omezení přístupu k souboru v souborovém systému počítače tím, že povolí přístup pouze jednomu uživateli nebo procesu v určitém čase. Lze tak zabránit vzniku souběhu tím, že jednotlivé procesy přistupují k souboru postupně (jsou řazeny do fronty).

Charakteristika

Důvod zamykání souborů lze ilustrovat na vzniku souběhu v následujícím scénáři: # Proces A čte záznam o zákazníkovi ze souboru, který obsahuje informace o bankovním účtu, zůstatku a telefonní číslo. # Proces B čte ten samý záznam o zákazníkovi ze souboru a má tak kopii tohoto souboru. +more # Proces A změní zůstatek účtu ve své kopii a uloží záznam zpět do výchozího souboru. # Proces B, který má stále původní hodnotu zůstatku ve své kopii souboru, uloží záznam zpět to souboru. # Proces B tímto zápisem v dotyčném souboru způsobil ztrátu informace uložené procesem A.

Celý soubor je obvykle zamykán například při jeho úpravě uživatelem v nějakém textovém editoru. Zamykání celých souborů lze pozorovat i u databází, kde dochází k seřazení jednotlivých požadavků přistupujících k jednotlivým souborům, ve kterých je databáze uložena.

Většina operačních systémů podporuje kromě možnosti zamknutí celého souboru i koncept zamykání menších částí uvnitř jednoho souboru. Tím může soubor upravovat souběžně více procesů, což může být výhodnější než uzamčení celého souboru. +more Pokud jsou uvnitř souboru zamykány velké bloky, může být naopak efektivnější zamykat soubor celý.

Nevhodné použití zamykání může zhoršit výkon systému nebo způsobit deadlock.

Implementace

V historii operačních systémů došlo k postupnému zavádění zamykání souborů. Proto různé operační systémy přistupují k zamykání různě.

Mainframe

Společnost IBM použila zamykání souboru jako první v systému OS/360 na mainframe počítačích, kde zamykání bylo označeno jako „exkluzivní přístup“.

Microsoft Windows

Systém Microsoft Windows používá povinné zámky , takže je-li zámek nastaven, jádro zajistí že další pokus o přístup selže. V systému jsou využívány tři rozdílné mechanismy ke kontrole přístupu sdílených souborů: # využití ovládání sdíleného přístupu, které umožňuje aplikacím specifikovat přístup a sdílení celých souborů ke čtení/zápisu/smazání # využití zámků podle bajtových rozsahů pro určení přístupu k určitým regionům v rámci souboru pro zápis či čtení # zákazem zápisu nebo mazání vykonávaných souborů pomocí systému souboru Windows

Unixové systémy

V unixových systémech (tj. i distribucích Linuxu a Apple OS X) běžně nedochází k automatickému zamčení otevřených souborů nebo běžících programů. +more Z důvodů zpětné kompatibility a z historických důvodů jsou v unixových systémech používány dobrovolné zámky , takže je zodpovědností programátora si před přístupem k souboru zkontrolovat, zda na něm není nastaven zámek.

V rámci různých druhů Unixu existuje několik druhů zamykacích mechanismů a spousta operačních systémů podporuje více než jeden druh kvůli kompatibilitě. Nejčastěji používanými mechanismy jsou fcntl a flock(2). +more Třetím používaným mechanismem je lockf(3), který může být implementován odděleně nebo může být vytvořen implementací jednoho z prvních dvou mechanismů.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top