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

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

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

Алгоритмы, описанныС Π² этой Π³Π»Π°Π²Π΅, ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ управлСния Π±ΡƒΡ„Π΅Ρ€Π½Ρ‹ΠΌ кСшСм, рассмотрСнными Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ (Рисунок 4.1). Алгоритм iget Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ послСдний ΠΈΠ· ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… индСксов с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ считывания Π΅Π³ΠΎ с диска, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΡƒΡ„Π΅Ρ€Π½Ρ‹ΠΉ кСш, Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput освобоТдаСт индСкс. Алгоритм bmap устанавливаСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ядра, связанныС с ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. Алгоритм namei ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ составноС имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² имя индСкса, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ iget, iput ΠΈ bmap. Алгоритмы alloc ΠΈ free Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ дисковыС Π±Π»ΠΎΠΊΠΈ для Ρ„Π°ΠΉΠ»ΠΎΠ², Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ialloc ΠΈ ifree Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ для Ρ„Π°ΠΉΠ»ΠΎΠ² индСксы.


Алгоритмы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ namei alloc free ialloc ifree iget iput bmap Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ getblk brelse bread breada bwrite

Рисунок 4.1. Алгоритмы Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы

4.1 Π˜ΠΠ”Π•ΠšΠ‘Π«

4.1.1 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π° дискС Π² статичСской Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ ядро считываСт ΠΈΡ… Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ДисковыС индСксы Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля:

β€’ Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€Π°Π²Π° собствСнности Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ ΠΈ Β«Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹ΠΌΒ» ΠΈ Ρ‚Π΅ΠΌ самым ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΡ€ΡƒΠ³ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. Π‘ΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ доступа ΠΊΠΎ всСм Ρ„Π°ΠΉΠ»Π°ΠΌ Π² систСмС.

β€’ Π’ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°. Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ устройствам Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° символами ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ абстрактным Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π° (ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌ обслуТиваниС запросов Π² порядкС поступлСния, Β«ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΡˆΠ΅Π» β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅Π»Β»).

β€’ ΠŸΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. БистСма Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ для Ρ‚Ρ€Π΅Ρ… классов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ: ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Ρ„Π°ΠΉΠ»Π°, Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠ³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ; ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ классу Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись ΠΈ исполнСниС Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ исполнСны, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° исполнСниС Π² Π΄Π°Π½Π½ΠΎΠΌ случаС интСрпрСтируСтся ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ поиск Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.

β€’ ΠšΠ°Π»Π΅Π½Π΄Π°Ρ€Π½Ρ‹Π΅ свСдСния, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π°ΠΉΠ»ΠΎΠΌ: врСмя внСсСния послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ», врСмя послСднСго обращСния ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, врСмя внСсСния послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² индСкс.

β€’ Число ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„Π°ΠΉΠ», ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π΅ количСство ΠΈΠΌΠ΅Π½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ поискС Ρ„Π°ΠΉΠ»Π° Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π΅ 5.

β€’ Π’Π°Π±Π»ΠΈΡ†Π° адрСсов Π½Π° дискС, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… располагаСтся информация Ρ„Π°ΠΉΠ»Π°. Π₯отя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠ°ΠΊ логичСский ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ², ядро располагаСт эти Π΄Π°Π½Π½Ρ‹Π΅ Π² Π½Π΅ΡΠΎΠΏΡ€ΠΈΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΡ…ΡΡ дисковых Π±Π»ΠΎΠΊΠ°Ρ…. ДисковыС Π±Π»ΠΎΠΊΠΈ, содСрТащиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ„Π°ΠΉΠ»Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² индСксС.

β€’ Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°. Π”Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ Π°Π΄Ρ€Π΅ΡΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ смСщСния Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°, начиная со смСщСния, Ρ€Π°Π²Π½ΠΎΠ³ΠΎ 0, поэтому Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π² Π±Π°ΠΉΡ‚Π°Ρ… Π½Π° 1 большС максимального смСщСния. НапримСр, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создаСт Ρ„Π°ΠΉΠ» ΠΈ записываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 Π±Π°ΠΉΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ адрСсу со смСщСниСм 1000 ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°, Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° составит 1001 Π±Π°ΠΉΡ‚. Π’ индСксС отсутствуСт составноС имя Ρ„Π°ΠΉΠ»Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для осущСствлСния доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ.


Π²Π»Π°Π΄Π΅Π»Π΅Ρ† mjb Π³Ρ€ΡƒΠΏΠΏΠ° os Ρ‚ΠΈΠΏ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΡ€Π°Π²Π° доступа rwxr-xr-x послСднСС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ 23 ΠžΠΊΡ‚ 1984 13:45 послСднСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ 22 ΠžΠΊΡ‚ 1984 10:30 коррСкция индСкса 23 ΠžΠΊΡ‚ 1984 13:30 Ρ€Π°Π·ΠΌΠ΅Ρ€ 6030 Π±Π°ΠΉΡ‚ дисковыС адрСса

Рисунок 4.2. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ дискового индСкса


На РисункС 4.2 ΠΏΠΎΠΊΠ°Π·Π°Π½ дисковый индСкс Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎΡ‚ индСкс ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ, Π²Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ β€” Β«mjbΒ» ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ 6030 Π±Π°ΠΉΡ‚. БистСма Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Β«mjbΒ» ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись ΠΈ исполнСниС Ρ„Π°ΠΉΠ»Π°; Ρ‡Π»Π΅Π½Π°ΠΌ Π³Ρ€ΡƒΠΏΠΏΡ‹ Β«osΒ» ΠΈ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ», Π½ΠΎ Π½Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅. ПослСдний Ρ€Π°Π· Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ 23 октября 1984 Π³ΠΎΠ΄Π° Π² 13:45, запись послСдний Ρ€Π°Π· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ 22 октября 1984 Π³ΠΎΠ΄Π° Π² 10:30. ИндСкс измСнялся послСдний Ρ€Π°Π· 23 октября 1984 Π³ΠΎΠ΄Π° Π² 13:30, хотя никакая информация Π² это врСмя Π² Ρ„Π°ΠΉΠ» Π½Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π»Π°ΡΡŒ. Π―Π΄Ρ€ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ всС Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² индСксС. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² записи Π½Π° диск содСрТимого индСкса ΠΈ содСрТимого Ρ„Π°ΠΉΠ»Π°. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° мСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π² Ρ„Π°ΠΉΠ» производится запись. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ индСкса мСняСтся ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ содСрТимого Ρ„Π°ΠΉΠ»Π°, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€Π°Π² доступа ΠΈ Π½Π°Π±ΠΎΡ€Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. ИзмСнСниС содСрТимого Ρ„Π°ΠΉΠ»Π° автоматичСски Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΡŽ индСкса, ΠΎΠ΄Π½Π°ΠΊΠΎ коррСкция индСкса Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ измСнСния содСрТимого Ρ„Π°ΠΉΠ»Π°.

Копия индСкса Π² памяти, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠΎΠ»Π΅ΠΉ дискового индСкса, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля:

β€’ БостояниС индСкса Π² памяти, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅Π΅

  - Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Π»ΠΈ индСкс,

  - ΠΆΠ΄Π΅Ρ‚ Π»ΠΈ снятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ с индСкса ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ процСсс,

  - отличаСтся Π»ΠΈ прСдставлСниС индСкса Π² памяти ΠΎΡ‚ своСй дисковой ΠΊΠΎΠΏΠΈΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ измСнСния содСрТимого индСкса,

  - отличаСтся Π»ΠΈ прСдставлСниС индСкса Π² памяти ΠΎΡ‚ своСй дисковой ΠΊΠΎΠΏΠΈΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ измСнСния содСрТимого Ρ„Π°ΠΉΠ»Π°,

  - находится Π»ΠΈ Ρ„Π°ΠΉΠ» Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ (см. Ρ€Π°Π·Π΄Π΅Π» 5.15).

β€’ ЛогичСский Π½ΠΎΠΌΠ΅Ρ€ устройства Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, содСрТащСй Ρ„Π°ΠΉΠ».

β€’ НомСр индСкса. Π’Π°ΠΊ ΠΊΠ°ΠΊ индСксы Π½Π° дискС хранятся Π² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΌ массивС (см. Ρ€Π°Π·Π΄Π΅Π» 2.2.1), ядро ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ дискового индСкса ΠΏΠΎ Π΅Π³ΠΎ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π² массивС. Π’ дисковом индСксС это ΠΏΠΎΠ»Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

β€’ Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ индСксы Π² памяти. Π―Π΄Ρ€ΠΎ связываСт индСксы Π² Ρ…Π΅Ρˆ-ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΡ… Π² список свободных индСксов ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ связываСт Π±ΡƒΡ„Π΅Ρ€Ρ‹ Π² Π±ΡƒΡ„Π΅Ρ€Π½Ρ‹Π΅ Ρ…Π΅Ρˆ-ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΡ… Π² список свободных Π±ΡƒΡ„Π΅Ρ€ΠΎΠ². Π₯Сш-ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ идСнтифицируСтся Π² соотвСтствии с логичСским Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ устройства ΠΈ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ индСкса. Π―Π΄Ρ€ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ Π² памяти Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ дискового индСкса, Π½ΠΎ индСксы ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ Π² Ρ…Π΅Ρˆ-ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Ρ‚Π°ΠΊ ΠΈ Π² спискС свободных индСксов.

β€’ Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ссылок, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ количСство Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… экзСмпляров Ρ„Π°ΠΉΠ»Π° (Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹).

МногиС поля Π² ΠΊΠΎΠΏΠΈΠΈ индСкса, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ядро Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² памяти, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ полям Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°, ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ индСксами ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ. ИндСкс Ρ‚Π°ΠΊ ΠΆΠ΅ блокируСтся, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ процСссам запрСщаСтся Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌ; эти процСссы ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Π² индСксС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³, Π²ΠΎΠ·Π²Π΅Ρ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡ…ΡΡ ΠΊ индСксу процСссов слСдуСт Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ снята. Установкой Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π»Π°Π³ΠΎΠ² ядро ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ противорСчия ΠΌΠ΅ΠΆΠ΄Ρƒ дисковым индСксом ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΠ΅ΠΉ Π² памяти. Когда ядру Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ индСкс, ядро ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅Ρ‚ копию индСкса ΠΈΠ· памяти Π½Π° диск Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ этих Ρ„Π»Π°Π³ΠΎΠ².

НаиболСС Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΏΠΈΠ΅ΠΉ индСкса Π² памяти ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π° являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ счСтчика ссылок, ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ количСство Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… экзСмпляров Ρ„Π°ΠΉΠ»Π°. ИндСкс Π°ΠΊΡ‚ΠΈΠ²Π΅Π½, ΠΊΠΎΠ³Π΄Π° процСсс выдСляСт Π΅Π³ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°. ИндСкс находится Π² спискС свободных индСксов, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ счСтчика ссылок Ρ€Π°Π²Π½ΠΎ 0, ΠΈ это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ядро ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ свободный индСкс Π² памяти Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ дисковому индСксу. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, список свободных индСксов выступаСт Π² Ρ€ΠΎΠ»ΠΈ кСша для Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… индСксов. Если процСсс пытаСтся ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Ρ‡Π΅ΠΉ индСкс Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ отсутствуСт Π² индСксном ΠΏΡƒΠ»Π΅, ядро ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ свободный индСкс ΠΈΠ· списка для использования этим процСссом. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ρƒ Π±ΡƒΡ„Π΅Ρ€Π° Π½Π΅Ρ‚ счСтчика ссылок; ΠΎΠ½ находится Π² спискС свободных Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½.

4.1.2 ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ индСксам

Π―Π΄Ρ€ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ индСксы ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ΠΈ Π½ΠΎΠΌΠ΅Ρ€Ρƒ индСкса ΠΈ выдСляСт индСксы Π² памяти ΠΏΠΎ запросам ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Алгоритм iget Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ индСксу мСсто для ΠΊΠΎΠΏΠΈΠΈ Π² памяти (Рисунок 4.3); ΠΎΠ½ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ getblk для поиска дискового Π±Π»ΠΎΠΊΠ° Π² Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠΌ кСшС. Π―Π΄Ρ€ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€Π° устройства ΠΈ индСкса Π² имя Ρ…Π΅Ρˆ-ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ просматриваСт эту Ρ…Π΅Ρˆ-ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π² поисках индСкса. Если индСкс Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½, ядро выдСляСт Π΅Π³ΠΎ ΠΈΠ· списка свободных индСксов ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ. Π—Π°Ρ‚Π΅ΠΌ ядро готовится ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ с диска Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ индСкса, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ΠΎ обращаСтся. Π―Π΄Ρ€ΠΎ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€Π° индСкса ΠΈ логичСского устройства ΠΈ вычисляСт Π½ΠΎΠΌΠ΅Ρ€ логичСского Π±Π»ΠΎΠΊΠ° Π½Π° дискС, содСрТащСго индСкс, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, сколько дисковых индСксов помСщаСтся Π² ΠΎΠ΄Π½ΠΎΠΌ дисковом Π±Π»ΠΎΠΊΠ΅. ВычислСния производятся ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅