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

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

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

   ΡΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ дисковый индСкс;

  ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ индСкс Π² список свободных индСксов;

 }

 ΡΠ½ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ с индСкса;

}

Рисунок 4.4. ОсвобоТдСниС индСкса

4.1.3 ОсвобоТдСниС индСксов

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

4.2 БВРУКВУРА ЀАЙЛА ΠžΠ‘Π«Π§ΠΠžΠ“Πž ВИПА

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


Рисунок 4.5. Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ фрагмСнтация свободного пространства


ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создаСт Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°, A, B ΠΈ C, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 10 дисковых Π±Π»ΠΎΠΊΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Ρ‚ΠΎ систСма Π²Ρ‹Π΄Π΅Π»ΠΈΠ»Π° для размСщСния этих Ρ‚Ρ€Π΅Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ мСсто. Если ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ 5 Π±Π»ΠΎΠΊΠΎΠ² с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΊ срСднСму Ρ„Π°ΠΉΠ»Ρƒ, B, ядру придСтся ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» B Π² Ρ‚ΠΎ мСсто Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, Π³Π΄Π΅ найдСтся ΠΎΠΊΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 15 Π±Π»ΠΎΠΊΠΎΠ². Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ рСсурсов Π½Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ дисковыС Π±Π»ΠΎΠΊΠΈ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Ρ„Π°ΠΉΠ»Π° B, станут Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ понадобятся Ρ„Π°ΠΉΠ»Π°ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 10 Π±Π»ΠΎΠΊΠΎΠ² (Рисунок 4.5). Π―Π΄Ρ€ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ пространства памяти, пСриодичСски запуская ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ чистки памяти, ΡƒΠΏΠ»ΠΎΡ‚Π½ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽΡΡ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π½ΠΎ это ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ Π±Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ расхода Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ систСмных рСсурсов.

Π’ цСлях ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ гибкости ядро присоСдиняСт ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ, позволяя ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π±Ρ‹Ρ‚ΡŒ разбросанной ΠΏΠΎ всСй Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Но такая схСма размСщСния услоТняСт Π·Π°Π΄Π°Ρ‡Ρƒ поиска Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°Π±Π»ΠΈΡ†Π° адрСсов содСрТит список Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ², содСрТащих ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ Ρ„Π°ΠΉΠ»Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΎΠ΄Π½Π°ΠΊΠΎ простыС вычислСния ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ списком Π±Π»ΠΎΠΊΠΎΠ² Ρ„Π°ΠΉΠ»Π° Π² индСксС Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ. Если логичСский Π±Π»ΠΎΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1 ΠšΠ±Π°ΠΉΡ‚, Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρƒ, состоящСму ΠΈΠ· 10 ΠšΠ±Π°ΠΉΡ‚, потрСбовался Π±Ρ‹ индСкс Π½Π° 10 Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ², Π° Ρ„Π°ΠΉΠ»Ρƒ, состоящСму ΠΈΠ· 100 ΠšΠ±Π°ΠΉΡ‚, понадобился Π±Ρ‹ индСкс Π½Π° 100 Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ². Π›ΠΈΠ±ΠΎ ΠΏΡƒΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ индСкса Π±ΡƒΠ΄Π΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π°, Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ТСсткоС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ нСбольшая структура индСкса позволяла Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с большими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Ρ‚Π°Π±Π»ΠΈΡ†Π° адрСсов дисковых Π±Π»ΠΎΠΊΠΎΠ² приводится Π² соотвСтствиС со структурой, прСдставлСнной Π½Π° РисункС 4.6. ВСрсия V систСмы UNIX Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с 13 Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π²Ρ…ΠΎΠ΄Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ адрСсов индСкса, Π½ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π΅ зависят ΠΎΡ‚ количСства Ρ‚ΠΎΡ‡Π΅ΠΊ Π²Ρ…ΠΎΠ΄Π°. Π‘Π»ΠΎΠΊ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΡƒ «прямая адрСсация» Π½Π° рисункС, содСрТит Π½ΠΎΠΌΠ΅Ρ€Π° дисковых Π±Π»ΠΎΠΊΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π‘Π»ΠΎΠΊ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΡƒ «одинарная косвСнная адрСсация», ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π±Π»ΠΎΠΊ, содСрТащий список Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ² прямой адрСсации. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±Π»ΠΎΠΊΠ° косвСнной адрСсации, ядро Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ этот Π±Π»ΠΎΠΊ, Π½Π°ΠΉΡ‚ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ…ΠΎΠ΄ Π² Π±Π»ΠΎΠΊ прямой адрСсации ΠΈ, считав Π±Π»ΠΎΠΊ прямой адрСсации, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Π‘Π»ΠΎΠΊ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΡƒ «двойная косвСнная адрСсация», содСрТит список Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ косвСнной адрСсации, Π° Π±Π»ΠΎΠΊ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΡƒ «тройная косвСнная адрСсация», содСрТит список Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ² Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации.

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π±Π»ΠΎΠΊΠΎΠ² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Π½ΠΎΠΉ косвСнной адрСсации, Π±Π»ΠΎΠΊΠΎΠ² пятСрной косвСнной адрСсации ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, Π½ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ оказываСтся достаточно ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ структуры. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ логичСского Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС 1 ΠšΠ±Π°ΠΉΡ‚ ΠΈ Ρ‡Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 32 Π±ΠΈΡ‚Π° (4 Π±Π°ΠΉΡ‚Π°). Π’ΠΎΠ³Π΄Π° Π² Π±Π»ΠΎΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ 256 Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ². РасчСты ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ (Рисунок 4.7), Ρ‡Ρ‚ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 16 Π“Π±Π°ΠΉΡ‚, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² индСксС 10 Π±Π»ΠΎΠΊΠΎΠ² прямой адрСсации ΠΈ 1 ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ косвСнной адрСсации, 1 Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации ΠΈ 1 Ρ‚Ρ€ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации. Если ΠΆΠ΅ ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° поля Β«Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°Β» Π² индСксС β€” 32 Π±ΠΈΡ‚Π°, Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ 4 Π“Π±Π°ΠΉΡ‚Π°ΠΌΠΈ (2 Π² стСпСни 32).

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π΅, задавая смСщСниС Π² Π±Π°ΠΉΡ‚Π°Ρ…. Они Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈ Π²Π΅Π΄ΡƒΡ‚ подсчСт Π±Π°ΠΉΡ‚ΠΎΠ², начиная с Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ адрСса ΠΈ заканчивая адрСсом, Ρ€Π°Π²Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ Ρ„Π°ΠΉΠ»Π°. Π―Π΄Ρ€ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΡ‚ Π±Π°ΠΉΡ‚ΠΎΠ² ΠΊ Π±Π»ΠΎΠΊΠ°ΠΌ: Ρ„Π°ΠΉΠ» начинаСтся с Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ логичСского Π±Π»ΠΎΠΊΠ° ΠΈ заканчиваСтся Π±Π»ΠΎΠΊΠΎΠΌ, Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ опрСдСляСтся исходя ΠΈΠ· Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π°. Π―Π΄Ρ€ΠΎ обращаСтся ΠΊ индСксу ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСский Π±Π»ΠΎΠΊ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Ρ„Π°ΠΉΠ»Ρƒ, Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ дисковый Π±Π»ΠΎΠΊ. На РисункС 4.8 прСдставлСн Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ bmap пСрСсчСта смСщСния Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π° Π² Π½ΠΎΠΌΠ΅Ρ€ физичСского Π±Π»ΠΎΠΊΠ° Π½Π° дискС.


Рисунок 4.6. Π‘Π»ΠΎΠΊΠΈ прямой ΠΈ косвСнной адрСсации Π² индСксС


10 Π±Π»ΠΎΠΊΠΎΠ² прямой адрСсации ΠΏΠΎ 1 ΠšΠ±Π°ΠΉΡ‚Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ = 10 ΠšΠ±Π°ΠΉΡ‚

1 Π±Π»ΠΎΠΊ косвСнной адрСсации с 256 Π±Π»ΠΎΠΊΠ°ΠΌΠΈ прямой адрСсации = 256 ΠšΠ±Π°ΠΉΡ‚

1 Π±Π»ΠΎΠΊ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации с 256 Π±Π»ΠΎΠΊΠ°ΠΌΠΈ косвСнной адрСсации = 64 ΠœΠ±Π°ΠΉΡ‚Π°

1 Π±Π»ΠΎΠΊ Ρ‚Ρ€ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации с 256 Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации = 16 Π“Π±Π°ΠΉΡ‚

Рисунок 4.7. ОбъСм Ρ„Π°ΠΉΠ»Π° Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ Π±Π»ΠΎΠΊΠ° 1 ΠšΠ±Π°ΠΉΡ‚


Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ bmap /* ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ адрСса смСщСния Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° логичСского Ρ„Π°ΠΉΠ»Π° Π½Π° адрСс Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС */

входная информация:

 (1) индСкс

 (2) смСщСниС Π² Π±Π°ΠΉΡ‚Π°Ρ…

выходная информация:

 (1) Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС

 (2) смСщСниС Π² Π±Π°ΠΉΡ‚Π°Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ°

 (3) число Π±Π°ΠΉΡ‚ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π² Π±Π»ΠΎΠΊ

 (4) Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° с ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ

{

 Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ логичСского Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»Π΅ исходя ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ смСщСния Π² Π±Π°ΠΉΡ‚Π°Ρ…;

 Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° Π² Π±Π»ΠΎΠΊΠ΅ для Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°; /* выходная информация 2 */

 Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ количСство Π±Π°ΠΉΡ‚ для копирования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ; /* выходная информация 3 */

 ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния с ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ индСкс; /* выходная информация 4 */

 ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ косвСнности;

 do (ΠΏΠΎΠΊΠ° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ косвСнности Π΄Ρ€ΡƒΠ³ΠΎΠΉ) {

  ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² индСксС ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊ косвСнной адрСсации исходя ΠΈΠ· Π½ΠΎΠΌΠ΅Ρ€Π° логичСского Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»Π΅;

  ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ дискового Π±Π»ΠΎΠΊΠ° ΠΈΠ· индСкса ΠΈΠ»ΠΈ ΠΈΠ· Π±Π»ΠΎΠΊΠ° косвСнной адрСсации;

  ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния с диска (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ brelse);

  if (число ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ косвСнности исчСрпано) return (Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ°);

  ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ дисковый Π±Π»ΠΎΠΊ косвСнной адрСсации (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ bread);

  ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ логичСского Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»Π΅ исходя ΠΈΠ· уровня косвСнности;

 }

}

Рисунок 4.8. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ адрСса смСщСния Π² Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС


Рассмотрим Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° Π² Π±Π»ΠΎΠΊΠ°Ρ… (Рисунок 4.9) ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ дисковый Π±Π»ΠΎΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1024 Π±Π°ΠΉΡ‚Π°. Если процСссу Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π±Π°ΠΉΡ‚Ρƒ, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌΡƒ смСщСниС ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°, Ρ€Π°Π²Π½ΠΎΠ΅ 9000, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ вычислСний ядро ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ этот Π±Π°ΠΉΡ‚ располагаСтся Π² Π±Π»ΠΎΠΊΠ΅ прямой адрСсации с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 8 (начиная с 0). Π—Π°Ρ‚Π΅ΠΌ ядро обращаСтся ΠΊ Π±Π»ΠΎΠΊΡƒ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 367; 808-ΠΉ Π±Π°ΠΉΡ‚ Π² этом Π±Π»ΠΎΠΊΠ΅ (Ссли вСсти отсчСт с 0) ΠΈ являСтся 9000-ΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ Π² Ρ„Π°ΠΉΠ»Π΅. Если процСссу Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ адрСсу, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ смСщСниСм 350000 Π±Π°ΠΉΡ‚ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° рисункС ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ 9156. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊ косвСнной адрСсации ΠΈΠΌΠ΅Π΅Ρ‚ мСсто для 256 Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ², ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ доступ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ обращСния ΠΊ Π±Π»ΠΎΠΊΡƒ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации, Π±ΡƒΠ΄Π΅Ρ‚ Π±Π°ΠΉΡ‚ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 272384 (256К + 10К); Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±Π°ΠΉΡ‚ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 350000 Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π±Π»ΠΎΠΊΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации Π½ΠΎΠΌΠ΅Ρ€ 77616. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ косвСнной адрСсации позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ 256 ΠšΠ±Π°ΠΉΡ‚Π°ΠΌ, Π±Π°ΠΉΡ‚ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 350000 Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² Π½ΡƒΠ»Π΅Π²ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ косвСнной адрСсации для Π±Π»ΠΎΠΊΠ° Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ 331. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ прямой адрСсации для Π±Π»ΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ косвСнной адрСсации хранится 1 ΠšΠ±Π°ΠΉΡ‚, Π±Π°ΠΉΡ‚ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 77616 находится Π² 75-ΠΌ Π±Π»ΠΎΠΊΠ΅ прямой адрСсации для Π±Π»ΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ косвСнной адрСсации, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ 3333. НаконСц, Π±Π°ΠΉΡ‚ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π² Ρ„Π°ΠΉΠ»Π΅ 350000 ΠΈΠΌΠ΅Π΅Ρ‚ Π² Π±Π»ΠΎΠΊΠ΅ 3333 Π½ΠΎΠΌΠ΅Ρ€ 816.