Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «АрхитСктура ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIXΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 37

Автор ΠœΠΎΡ€ΠΈΡ Π‘Π°Ρ…

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π΄Π²Π° процСсса ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΉΡ‚ΠΈ Π² Ρ‚ΡƒΠΏΠΈΠΊ, Ссли с индСкса Π½Π΅ Π±Ρ‹Π»Π° снята Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°. ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ самого сСбя. Если ΠΎΠ½ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

link("a/b/c", "a/b/c/d");

Ρ‚ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ индСкс для Ρ„Π°ΠΉΠ»Π° Β«cΒ»; Ссли Π±Ρ‹ ядро Π½Π΅ снимало Π±Ρ‹ с индСкса Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ, процСсс зашСл Π±Ρ‹ Π² Ρ‚ΡƒΠΏΠΈΠΊ, запросив индСкс Β«cΒ» ΠΏΡ€ΠΈ поискС Ρ„Π°ΠΉΠ»Π° Β«dΒ». Если Π±Ρ‹ Π΄Π²Π° процСсса, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ процСсс, Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ своС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·-Π·Π° Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (ΠΈΠ»ΠΈ самоблокировки), Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π±Ρ‹ Π² систСмС? ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ индСксы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌΠΈ рСсурсами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ систСмой Π·Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ врСмя, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сигнала Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ возобновлСния процСссом своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ (Π³Π»Π°Π²Π° 7). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, систСма Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ‚ΡƒΠΏΠΈΠΊΠ° Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Если ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ процСссами, Π½Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ со стороны Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов, взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ процСссы Π² систСмС. Однако, Π»ΡŽΠ±Ρ‹Π΅ процСссы, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΠ΅ΡΡ ΠΊ этим Ρ„Π°ΠΉΠ»Π°ΠΌ (ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΠ΅ΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³), Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΉΠ΄ΡƒΡ‚ Π² Ρ‚ΡƒΠΏΠΈΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Ρ„Π°ΠΉΠ»Ρ‹ Β«/binΒ» ΠΈΠ»ΠΈ Β«/usr/binΒ» (ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΊΠΎΠΌΠ°Π½Π΄) ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» Β«/bin/shΒ» (ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ процСссор shell), послСдствия для систСмы Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΈΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

5.16 UNLINК

БистСмная функция unlink удаляСт ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° для Ρ„Π°ΠΉΠ»Π°. Бинтаксис Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ unlink:


unlink(pathname);


Π³Π΄Π΅ pathname ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ имя Ρ„Π°ΠΉΠ»Π°, удаляСмоС ΠΈΠ· ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Если процСсс Ρ€Π°Π·Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π΄Π°Π½Π½ΡƒΡŽ связь Ρ„Π°ΠΉΠ»Π° с ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ unlink, ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ» Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ доступСн, ΠΏΠΎΠΊΠ° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π½Π΅ создана Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° запись с этим ΠΈΠΌΠ΅Π½Π΅ΠΌ. НапримСр, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

unlink("myfile");

fd = open("myfile", O_RDONLY);

функция open Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Π΅Π΅ выполнСния Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ„Π°ΠΉΠ»Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ myfile. Если удаляСмоС имя являСтся послСднСй связью Ρ„Π°ΠΉΠ»Π° с ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ, ядро Π² ΠΈΡ‚ΠΎΠ³Π΅ освобоТдаСт всС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Ρ„Π°ΠΉΠ»Π°. Однако, Ссли Ρƒ Ρ„Π°ΠΉΠ»Π° Π±Ρ‹Π»ΠΎ нСсколько связСй, ΠΎΠ½ остаСтся всС Π΅Ρ‰Π΅ доступным ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ.


Рисунок 5.30. Взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° процСссов ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ link


На РисункС 5.31 прСдставлСн Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ unlink. Π‘Π½Π°Ρ‡Π°Π»Π° для поиска Ρ„Π°ΠΉΠ»Π° с удаляСмой связью ядро ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° namei, которая вмСсто индСкса Ρ„Π°ΠΉΠ»Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π―Π΄Ρ€ΠΎ обращаСтся ΠΊ индСксу Ρ„Π°ΠΉΠ»Π° Π² памяти, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iget. (ΠžΡΠΎΠ±Ρ‹ΠΉ случай, связанный с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°Β».Β», Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСн Π² ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ). ПослС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ отсутствия ошибок ΠΈ (для исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ²) удалСния ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ областСй записСй с Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ раздСляСмым тСкстом (Π³Π»Π°Π²Π° 7) ядро стираСт имя Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°: ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° индСкса Ρ€Π°Π²Π½Ρ‹ΠΌ 0 достаточно для очистки мСста, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Π—Π°Ρ‚Π΅ΠΌ ядро ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ запись ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π½Π° диск, гарантируя Ρ‚Π΅ΠΌ самым, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ своим ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ» ΡƒΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ доступСн, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика связСй ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° iput освобоТдаСт Π² памяти индСксы Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ Ρ„Π°ΠΉΠ»Π° с удаляСмой связью.

ΠŸΡ€ΠΈ освобоТдСнии Π² памяти ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ iput индСкса Ρ„Π°ΠΉΠ»Π° с удаляСмой связью, Ссли значСния счСтчика ссылок ΠΈ счСтчика связСй становятся Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ 0, ядро Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ Ρƒ Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ дисковыС Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π». На этот индСкс большС Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΈΠΌΠ΅Π½ ΠΈ индСкс Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π±Ρ€Π°Ρ‚ΡŒ дисковыС Π±Π»ΠΎΠΊΠΈ, ядро Π² Ρ†ΠΈΠΊΠ»Π΅ просматриваСт Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ содСрТимого индСкса, освобоТдая всС Π±Π»ΠΎΠΊΠΈ прямой адрСсации Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ (Π² соотвСтствии с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ free). Π§Ρ‚ΠΎ касаСтся Π±Π»ΠΎΠΊΠΎΠ² косвСнной адрСсации, ядро освобоТдаСт всС Π±Π»ΠΎΠΊΠΈ, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… уровнях косвСнности, рСкурсивно, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π±Π»ΠΎΠΊΠΈ с мСньшим ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ. Оно обнуляСт Π½ΠΎΠΌΠ΅Ρ€Π° Π±Π»ΠΎΠΊΠΎΠ² Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ содСрТимого индСкса ΠΈ устанавливаСт Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π² индСксС Ρ€Π°Π²Π½Ρ‹ΠΌ 0. Π—Π°Ρ‚Π΅ΠΌ ядро ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Π² индСксС ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»Π°, указывая Ρ‚Π΅ΠΌ самым, Ρ‡Ρ‚ΠΎ индСкс свободСн, ΠΈ освобоТдаСт индСкс ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ ifree. Π―Π΄Ρ€ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΡŽ Π½Π° дискС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ дисковая копия индСкса всС Π΅Ρ‰Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ индСкс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ; Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ индСкс свободСн для назначСния Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ.


Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ unlink

входная информация: имя Ρ„Π°ΠΉΠ»Π°

выходная информация: отсутствуСт

{

 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ индСкс для Ρ„Π°ΠΉΠ»Π° с удаляСмой связью (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ namei);

 /* Ссли Π² качСствС Ρ„Π°ΠΉΠ»Π° выступаСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ каталог… */

 if (послСднСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΉ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° являСтся ".")

   ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика ссылок Π² индСксС;

 else ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс для Ρ„Π°ΠΉΠ»Π° с удаляСмой связью (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iget);

 if (Ρ„Π°ΠΉΠ» являСтся ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ, Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ являСтся ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ) {

  ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ индСксы (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput);

  return (ΠΎΡˆΠΈΠ±ΠΊΡƒ);

 }

 if (Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ раздСляСмый тСкст ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика связСй Ρ€Π°Π²Π½ΠΎ 1)

  ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ записи ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ областСй;

Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅:

 ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ индСкса для удаляСмой связи;

 ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ индСкс Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput);

 ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ число связСй Ρ„Π°ΠΉΠ»Π°;

 ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ индСкс Ρ„Π°ΠΉΠ»Π° (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput);

 /* iput провСряСт, Ρ€Π°Π²Π½ΠΎ Π»ΠΈ число связСй 0, Ссли Π΄Π°, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈ Ρ„Π°ΠΉΠ»Π° (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ free) ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ‚ индСкс (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ifree); */

}

Рисунок 5.31. Алгоритм удалСния связи Ρ„Π°ΠΉΠ»Π° с ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ

5.16.1 Π¦Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы

Π―Π΄Ρ€ΠΎ посылаСт свои записи Π½Π° диск для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ искаТСния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π² случаС систСмного сбоя. НапримСр, ΠΊΠΎΠ³Π΄Π° ядро удаляСт имя Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΎΠ½ΠΎ синхронно пСрСписываСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° диск β€” ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ индСкс. Если систСма Π΄Π°Π»Π° сбой Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ содСрТимого Ρ„Π°ΠΉΠ»Π°, ΡƒΡ‰Π΅Ρ€Π± Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Π±ΡƒΠ΄Π΅Ρ‚ нанСсСн ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· индСксов Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ число связСй, Π½Π° 1 ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅Π΅ число записСй Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° этот индСкс, Π½ΠΎ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΉ поиска Ρ„Π°ΠΉΠ»Π° останутся допустимыми. Если запись Π½Π° диск Π½Π΅ Π±Ρ‹Π»Π° сдСлана синхронно, Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° дискС послС систСмного сбоя ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° свободный (ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ) индСкс. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, число записСй Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π½Π° дискС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° индСкс, прСвысило Π±Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика ссылок Π² индСксС. Π’ частности, Ссли имя Ρ„Π°ΠΉΠ»Π° Π±Ρ‹Π»ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ послСднСй связи Ρ„Π°ΠΉΠ»Π°, это имя ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎ Π±Ρ‹ Π½Π° Π½Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ индСкс. НС Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сомнСния, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΡƒΡ‰Π΅Ρ€Π±, наносимый систСмС, ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π΅Π½ ΠΈ Π»Π΅Π³ΠΊΠΎ устраним (см. Ρ€Π°Π·Π΄Π΅Π» 5.18).

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ Ρƒ Ρ„Π°ΠΉΠ»Π° Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ связи с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Β«aΒ» ΠΈ Β«bΒ», ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… β€” Β«aΒ» β€” разрываСтся процСссом с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ unlink. Если ядро записываСт Π½Π° дискС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ всСх своих дСйствий, Ρ‚ΠΎ ΠΎΠ½ΠΎ, очищая Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для Ρ„Π°ΠΉΠ»Π° Β«aΒ», Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС Π½Π° дискС. Если систСма Π΄Π°Π»Π° сбой послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ записи Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π½Π° диск, число связСй Ρƒ Ρ„Π°ΠΉΠ»Π° Β«bΒ» Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 2, Π½ΠΎ Ρ„Π°ΠΉΠ» Β«aΒ» ΡƒΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ прСТняя запись ΠΎ Π½Π΅ΠΌ Π±Ρ‹Π»Π° ΠΎΡ‡ΠΈΡ‰Π΅Π½Π° ΠΏΠ΅Ρ€Π΅Π΄ сбоСм систСмы. Π€Π°ΠΉΠ» Β«bΒ», Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ лишнюю связь, Π½ΠΎ послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ число связСй пСрСустановится ΠΈ систСма Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ядро записывало Π½Π° диск Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ своих дСйствий Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС ΠΈ систСма Π΄Π°Π»Π° сбой: Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ядро ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика связСй для Ρ„Π°ΠΉΠ»Π° Β«bΒ», сдСлав Π΅Π³ΠΎ Ρ€Π°Π²Π½Ρ‹ΠΌ 1, записало индСкс Π½Π° диск ΠΈ Π΄Π°Π»ΠΎ сбой ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° для Ρ„Π°ΠΉΠ»Π° Β«aΒ». ПослС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы записи ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ… Β«aΒ» ΠΈ Β«bΒ» Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… Π±ΡƒΠ΄ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ счСтчик связСй Ρƒ Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1. Если Π·Π°Ρ‚Π΅ΠΌ процСсс запустит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ unlink для Ρ„Π°ΠΉΠ»Π° Β«aΒ», Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика связСй станСт Ρ€Π°Π²Π½Ρ‹ΠΌ 0, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Β«bΒ» ссылаСтся Π½Π° Ρ‚ΠΎΡ‚ ΠΆΠ΅ индСкс. Если ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ядро ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ индСкс Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ creat, счСтчик связСй для Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ 1, Π½ΠΎ Π½Π° Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄ΡƒΡ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π΄Π²Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ поиска. БистСма Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Π½Π΅ прибСгая ΠΊ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ сопровоТдСния (fsck, описанной Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 5.18), ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Ρ‡Π΅Ρ€Π΅Π· Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ строковый интСрфСйс.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ искаТСния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π² случаС систСмного сбоя, ядро освобоТдаСт индСксы ΠΈ дисковыС Π±Π»ΠΎΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π² особом порядкС. ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ содСрТимого Ρ„Π°ΠΉΠ»Π° ΠΈ очисткС Π΅Π³ΠΎ индСкса ΠΌΠΎΠΆΠ½ΠΎ сначала ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈ, содСрТащиС Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π°, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ индСкс ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΎΠ±ΠΎΠΈΡ… случаях, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ссли Π³Π΄Π΅-Ρ‚ΠΎ Π² сСрСдинС ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ систСмный сбой, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ядро сначала освободило дисковыС Π±Π»ΠΎΠΊΠΈ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π²ΡˆΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρƒ, ΠΈ Π΄Π°Π»ΠΎ сбой. ПослС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы индСкс всС Π΅Ρ‰Π΅ содСрТит ссылки Π½Π° дисковыС Π±Π»ΠΎΠΊΠΈ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΏΡ€Π΅ΠΆΠ΄Π΅ ΠΈ Π½Ρ‹Π½Π΅ Π½Π΅ хранящиС ΠΎΡ‚Π½ΠΎΡΡΡ‰ΡƒΡŽΡΡ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π―Π΄Ρ€Ρƒ Ρ„Π°ΠΉΠ» показался Π±Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ искаТСниС Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΈ дисковыС Π±Π»ΠΎΠΊΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ fsck, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈΡΡŒ Π±Ρ‹ большиС усилия. Однако, Ссли систСма сначала пСрСписала индСкс Π½Π° диск, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π°Π»Π° сбой, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ искаТСний Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π²ΡˆΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρƒ, станут нСдоступны для систСмы, Π½ΠΎ ΠΊΠ°ΠΊΠΈΡ…-Π½ΠΈΠ±ΡƒΠ΄ΡŒ явных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ этом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ увидят. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ fsck Ρ‚Π°ΠΊ ΠΆΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΡ‰Π΅ Π·Π°Π±Ρ€Π°Ρ‚ΡŒ Π½Π°Π·Π°Π΄ освободившиСся послС удалСния связи дисковыС Π±Π»ΠΎΠΊΠΈ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ очистку, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈΠ· рассматриваСмых случаСв.