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

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

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

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

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

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput /* Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ доступа ΠΊ индСксу Π² памяти */

входная информация: ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° индСкс Π² памяти

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

{

Β Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ индСкс Ссли ΠΎΠ½ Π΅Ρ‰Π΅ Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½;

Β ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π½Π° 1 счСтчик ссылок для индСкса;

Β if (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика ссылок == 0)
Β {

Β Β if (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика связСй == 0)Β 
{

Β Β  ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ дисковыС Π±Π»ΠΎΠΊΠΈ для Ρ„Π°ΠΉΠ»Π° (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ free, Ρ€Π°Π·Π΄Π΅Π» 4.7);

Β  Β ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° Ρ€Π°Π²Π½Ρ‹ΠΌ 0;

Β Β  ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ индСкс (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ifree, Ρ€Π°Π·Π΄Π΅Π» 4.6);

Β  }

Β Β if (ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΎΠ±Ρ€Π°Ρ‰Π°Π»ΠΈΡΡŒ ΠΈΠ»ΠΈ измСнился индСкс ΠΈΠ»ΠΈ измСнилось содСрТимоС Ρ„Π°ΠΉΠ»Π°)

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

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

Β }

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

}

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

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

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

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

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

АрхитСктура ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIX (Π›ΠŸ) - pic_22.png

Рисунок 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).