Π”ΠΈΠΏΠ»ΠΎΠΌ, курсовая, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°
ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚

БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ вСрсия FAT, разработанная для DOS 1.00, использовала 12-Π±ΠΈΡ‚Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ размСщСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° Ρ€Π°Π·Π΄Π΅Π»Ρ‹ объСмом Π΄ΠΎ 16 Мб (Π² DOS ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² FAT). Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ТСстких дисков Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 32 Мб Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ FAT Π±Ρ‹Π»Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° Π΄ΠΎ 16 Π±ΠΈΡ‚, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ кластСра — Π΄ΠΎ 64 сСкторов (32 Кб). Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ кластСру ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ присвоСн ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ 16-разрядный… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠ˜ΠΠ˜Π‘Π’Π•Π Π‘Π’Π’Πž ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π― И ΠΠΠ£ΠšΠ˜ Π ΠžΠ‘Π‘Π˜Π™Π‘ΠšΠžΠ™ Π€Π•Π”Π•Π ΠΠ¦Π˜Π˜

Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ государствСнноС Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ образования

«Π‘АНКВ-ΠŸΠ•Π’Π•Π Π‘Π£Π Π“Π‘ΠšΠ˜Π™ Π“ΠžΠ‘Π£Π”ΠΠ Π‘Π’Π’Π•ΠΠΠ«Π™ Π£ΠΠ˜Π’Π•Π Π‘Π˜Π’Π•Π’ ΠΠ­Π ΠžΠšΠžΠ‘ΠœΠ˜Π§Π•Π‘ΠšΠžΠ“Πž ΠŸΠ Π˜Π‘ΠžΠ ΠžΠ‘Π’Π ΠžΠ•ΠΠ˜Π―»

ΠšΠΠ€Π•Π”Π Π управлСния Π² Ρ‚СхничСских систСмах ΠšΠ£Π Π‘ΠžΠ’ΠΠ― Π ΠΠ‘ΠžΠ’Π ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅: БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС

Π Π£ΠšΠžΠ’ΠžΠ”Π˜Π’Π•Π›Π¬

ст.ΠΏΡ€Π΅ΠΏ. ΠšΡ€ΠΈΠ²ΠΎΠ»Π°ΠΏΡ‡ΡƒΠΊ И.Π“.

Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ 2014

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, хранятся Π½Π° ΠΏΠΎΡΡ‚оянном Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰Π΅ΠΌ устройствС (ΠŸΠ—Π£) Π² Π²ΠΈΠ΄Π΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ ΠΊΠ½ΠΈΠ³ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, ΠΈ Π΄Π»Ρ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ Π½ΠΈΠΌ трСбуСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ систСма, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ доступа ΠΈ ΡƒΠ΄ΠΎΠ±ΡΡ‚Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Ѐайловая систСма прСдставляСт ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ слуТСбных структур Π½Π° Π½ΠΎΡΠΈΡ‚Π΅Π»Π΅ ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΡŽ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

Ѐайловая систСма FAT (File Allocation Table) Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π‘ΠΈΠ»Π»ΠΎΠΌ ГСйтсом ΠΈ ΠœΠ°Ρ€ΠΊΠΎΠΌ ΠœΠ°ΠΊΠ”ΠΎΠ½Π°Π»ΡŒΠ΄ΠΎΠΌ Π² 1977 Π³ΠΎΠ΄Ρƒ ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ использовалась Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС 86-DOS. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ пСрСносимости ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы CP/M Π² 86-DOS, Π² Π½Π΅ΠΉ Π±Ρ‹Π»ΠΈ сохранСны Ρ€Π°Π½Π΅Π΅ принятыС ограничСния Π½Π° ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ 86-DOS Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π° Microsoft ΠΈ ΡΡ‚Π°Π»Π° основой для ΠžΠ‘ MS-DOS 1.0, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ Π² Π°Π²Π³ΡƒΡΡ‚Π΅ 1981 Π³ΠΎΠ΄Π°.

БистСма FAT 16, ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ основной для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм DOS, Windows 95?98?Me, Windows NT?2000?XP, Π° Ρ‚Π°ΠΊΠΆΠ΅ поддСрТиваСтся Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм. FAT 16 прСдставляСт собой ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… дисков ΠΈ ΠΏΡ€ΠΎΡΡ‚Ρ‹Ρ… структур ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

НазваниС происходит ΠΎΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² — Π’Π°Π±Π»ΠΈΡ†Π° размСщСния Ρ„Π°ΠΉΠ»ΠΎΠ² (File Allocation Table). Π­Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° размСщаСтся Π² Π½Π°Ρ‡Π°Π»Π΅ диска. Число 16 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ данная файловая систСма 16-разрядная — для адрСсации кластСров ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 16 разрядов. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π’Π°Π±Π»ΠΈΡ†Ρƒ размСщСния Ρ„Π°ΠΉΠ»ΠΎΠ² для поиска Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ кластСров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ этот Ρ„Π°ΠΉΠ» Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° ΠΆΠ΅ΡΡ‚ΠΊΠΎΠΌ дискС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Π’Π°Π±Π»ΠΈΡ†Π΅ Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ свСдСния ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Ρ‹Ρ… ΠΈ Π΄Π΅Ρ„Π΅ΠΊΡ‚Π½Ρ‹Ρ… кластСрах. Π§Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Π³Ρ‡Π΅ Π±Ρ‹Π»ΠΎ ΠΎΡΠΌΡ‹ΡΠ»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму FAT16 ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΠΊΠ°ΠΊ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΡΡ‚ΠΈΠΌ ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, Π²ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ опСрационная систСма Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с FAT 16.

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

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ вСрсия FAT, разработанная для DOS 1.00, использовала 12-Π±ΠΈΡ‚Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ размСщСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° Ρ€Π°Π·Π΄Π΅Π»Ρ‹ объСмом Π΄ΠΎ 16 Мб (Π² DOS ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² FAT). Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ТСстких дисков Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 32 Мб Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ FAT Π±Ρ‹Π»Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° Π΄ΠΎ 16 Π±ΠΈΡ‚, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ кластСра — Π΄ΠΎ 64 сСкторов (32 Кб). Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ кластСру ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ присвоСн ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ 16-разрядный Π½ΠΎΠΌΠ΅Ρ€, Ρ‚ΠΎ FAT ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ максимально 216, ΠΈΠ»ΠΈ 65 536 кластСров Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Ρ‚ΠΎΠΌΠ΅.

ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись) с ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы FAT16.

ВСорСтичСскиС свСдСния

ТСсткий диск Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ

ЀизичСская структура диска

Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ дисков Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ основываСтся Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π°ΠΌΠ°Π³Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… участков, Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠΈΠΌΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ устройства Π²ΠΎΠ·Π±ΡƒΠΆΠ΄Π°Π΅Ρ‚ Π² ΡΡ‚ΠΎΠΌ устройствС ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹ Ρ‚ΠΎΠΊΠ°. НамагничСнныС ΠΈ Π½Π΅ Π½Π°ΠΌΠ°Π³Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ участки ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΈ Π½ΡƒΠ»Π΅Π²ΠΎΠΌΡƒ Π±ΠΈΡ‚Π°ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, хранящСйся Π½Π° Π΄ΠΈΡΠΊΠ΅. Но Π½Π΅ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ распрСдСлСния дискового пространства.

Рисунок 1. Π”ΠΎΡ€ΠΎΠΆΠΊΠΈ (Ρ†ΠΈΠ»ΠΈΠ½Π΄Ρ€Ρ‹)

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

Для доступа ΠΊ ΡΠ΅ΠΊΡ‚ΠΎΡ€Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ мСстополоТСниС Π½Π° Π΄ΠΈΡΠΊΠ΅, Ρ‚. Π΅. Π΅Π³ΠΎ адрСс. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒΡΡ двумя способами.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ (ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Ρ†ΠΈΠ»ΠΈΠ½Π΄Ρ€Π°), Π½ΠΎΠΌΠ΅Ρ€Π° стороны (Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ), ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° сСктора. Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ состоит Π² ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ сСкторов ΠΎΡ‚ ΠΊΡ€Π°Ρ диска ΠΊ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ. Π­Ρ‚Π° нумСрация начинаСтся с ΡΠ°ΠΌΠΎΠΉ внСшнСй Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ 0, стороны 0, сСктора 1 (нумСрация Π΄ΠΎΡ€ΠΎΠΆΠ΅ΠΊ ΠΈ ΡΡ‚ΠΎΡ€ΠΎΠ½ начинаСтся с 0, Π° ΡΠ΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² с 1), Π·Π°Ρ‚Π΅ΠΌ продолТаСтся вдоль Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ ΠΏΠΎ Π½Π°Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² сСкторов.

ПослС прохоТдСния Π½Π° Π΄ΠΎΡ€ΠΎΠΆΠΊΠ΅ сСктора с Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ становится сСктор с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ 0, Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ стороны 1 ΠΈ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ сСктора 1, Ρ‚. Π΅. счСт сСкторов продолТаСтся ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ сторон. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π΄ΠΎΡ€ΠΎΠΆΠΊΡƒ осущСствляСтся Π½Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Ρ‹ всС сСктора Π½Π° Π²ΡΠ΅Ρ… сторонах Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ.

ЛогичСская структура Тёстких дисков

ЛогичСская структура Тёсткого диска ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ дискового пространства Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΠΈ, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΡ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ: MBR (Master Boot Record), BR (Boot Record), FAT1 ΠΈ FAT2, Root Directory ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ для Π΄Π°Π½Π½Ρ‹Ρ….

MBR-это Π³Π»Π°Π²Π½Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ сСктор, это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сСктор Π½Π° Π΄ΠΈΡΠΊΠ΅, с Ρ‡Ρ‚Сния Π΅Π³ΠΎ содСрТимого начинаСтся Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅. MBR состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй: Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ части записана ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° IPL1- Initial Program Loading 1, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ исслСдуСт содСрТимоС Π²Ρ‚ΠΎΡ€ΠΎΠΉ части MBRΡ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² диска Partition Table, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ сСкторов ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² диска.

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ 1 Π΄ΠΎ 4-Ρ…, ΠΊΠΎΠ³Π΄Π° диск условно Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½ Π½Π° 4 логичСских диска. Π’ Partition Table Ρ‚Π°ΠΊΠΆΠ΅ хранится информация ΠΎ Ρ‚ΠΈΠΏΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Ρ€Π°Π·Π΄Π΅Π»Π° ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ тогоявляСтся Ρ€Π°Π·Π΄Π΅Π» Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Тёсткого диска содСрТит сСктор BR (Boot Record), Π΄Π²Π΅ ΠΊΠΎΠΏΠΈΠΈ File Allocation Table (FAT) — FAT1 ΠΈ FAT2, ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Root Directory ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Π΅ΠΊΡ‚ΠΎΡ€ BR (Boot Record) — это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сСктор Ρ€Π°Π·Π΄Π΅Π»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ записана одноимённая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Boot Record, ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Π°Ρ для запуска Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, хранящихся Π½Π° Π΄ΠΈΡΠΊΠ΅. BR ΠΈΠΌΠ΅Π΅Ρ‚ся Π²ΠΎ Π²ΡΠ΅Ρ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… Тёсткого диска, хотя Π½Π΅ Π²ΡΠ΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ содСрТат Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Ρ‚. Π΅. Π½Π΅ Π²ΡΠ΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ «ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹ΠΌΠΈ» .

Π’Π°Π±Π»ΠΈΡ†Π° FAT (File Allocation Table) — Ρ‚Π°Π±Π»ΠΈΡ†Π° размСщСния Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ…Ρ€Π°Π½ΠΈΡ‚ записи Π΄Π»ΠΈΠ½ΠΎΠΉ 16 ΠΈΠ»ΠΈ 32 Π±ΠΈΡ‚Π°, хранящиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΌΠ΅ΡΡ‚орасполоТСнии кластСров, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… записан ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Если FAT поврСТдаСтся, Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ тСряСт доступ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ «ΠΏΠΎΡ‚СрянныС кластСры» — Ρ‚. Π΅. сСкторы с Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ.

Root DirectoryΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ диска, содСрТит записи с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ — имя, Ρ‚ΠΈΠΏ, ΠΎΠ±ΡŠΡ‘ΠΌ, Π΄Π°Ρ‚Π° ΠΈ Π²Ρ€Π΅ΠΌΡ создания, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Ρ„Π°ΠΉΠ»Π° (систСмный, скрытый, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹ΠΉ) ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ кластСр Ρ„Π°ΠΉΠ»Π°. ΠšΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ являСтся самым «Π³Π»Π°Π²Π½Ρ‹ΠΌ» ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ диска, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π½ΠΈΠΆΠ΅ Π΅Π³ΠΎ.

Data AreaΠΎΠ±Π»Π°ΡΡ‚ΡŒ для данныхосновная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π° диска, Ρ…Ρ€Π°Π½ΠΈΡ‚ сами Ρ„Π°ΠΉΠ»Ρ‹.

ЀизичСская ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠ°Ρ структуры Тёсткого диска ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ форматирования. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄ΠΈΡΠΊΠ΅Ρ‚, процСсс форматирования Тёсткого диска Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° 2 этапанизкоуровнСвоС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ высокого уровня. НизкоуровнСвоС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ выполняСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π½Π° Π·Π°Π²ΠΎΠ΄Π΅-ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»Π΅. Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ высокого уровня выполняСтся ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ Format. exe, хранящСйся Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠΉ дискСтС, Π»ΠΈΠ±ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ срСдствами Windows.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

//—————————————————————————————————————;

#include

#pragma hdrstop

#include

//—————————————————————————————————————;

#pragma argsused

//Π—Π°Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

//int, short — цСлочислСнныС, char — ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅,

int f;

int data, sdv;

struct { //Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

char jmp[3];

char oem[8];

short sect_siz;

char clust_siz;

short res_sect;

char fat_cnt;

short root_siz;

short tot_sect;

char media;

short fat_siz;

short sectors;

short heads;

short hidden1;

short hidden_h;

int tot_secs;

char fiz_disk;

char reserved1;

char symbol;

int s_nom;

char v_lable[11];

char reserved2[8];

}boot; //ΠžΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ структуры, Π½Π°Π·Π²Π°Π½ΠΈΠ΅: boot

unsigned short rez; //Π Π°Π·ΠΌΠ΅Ρ€ 16 bit, цСлочислСнная

struct{ //Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для Ρ„Π°ΠΉΠ»ΠΎΠ²

char name[8]; //Имя Ρ„Π°ΠΉΠ»Π°

char rs[3];

char atribut;

char reserv[10];

short time; //ВрСмя создания

short date; //Π”Π°Ρ‚Π° создания

short nkl; //НомСр ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ кластСра Ρ„Π°ΠΉΠ»Π°

int size; //Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°

}dir[1024]; //ΠžΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ структуры, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ dir, Π²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ 1024

struct{ //Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° для Ρ„Π°ΠΉΠ»ΠΎΠ²

char name[8]; //Имя Ρ„Π°ΠΉΠ»Π°

char rs[3];

char atribut;

char reserv[10];

short time; //ВрСмя создания

short date; //Π”Π°Ρ‚Π° создания

short nkl; //НомСр ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ кластСра Ρ„Π°ΠΉΠ»Π°

int size; //Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°

int clust; //Кол. кластСров

int file; //Π‘Π°ΠΌ Ρ„Π°ΠΈΠ»

}files[1024];

int root_pos;

int fat_pos ;

int kat_siz; //Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°

int data_start; //Начало области Ρ„Π°ΠΉΠ»ΠΎΠ²

int tot_siz; //Π Π°Π·ΠΌΠ΅Ρ€ диска Π² Π±Π°ΠΉΡ‚Π°Ρ…

int data_siz; //Π‘Π°ΠΉΡ‚ΠΎΠ² ΠΏΠΎΠ΄ Ρ„Π°ΠΉΠ»Ρ‹

int fat_tot_siz; //Π‘Π°ΠΉΡ‚ΠΎΠ² ΠΏΠΎΠ΄ Ρ„Π°Ρ‚Ρ‹

int clust_b_siz; //Π‘Π°ΠΉΡ‚ΠΎΠ² Π² ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅

int clust_data; //ΠšΠ»Π°ΡΡ‚Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄ Ρ„Π°ΠΉΠ»Ρ‹

int main (int argc, char* argv[]) //Условная пСрСмСнная

{ int i, k, n, j;

if (argc ≠2){//Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΡ€ΠΈ совпадСнии

printf («usage: program image n»); //Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

getch ();//ОТидаСм Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши, ΠΈ

exit (0);} //Π’Ρ‹Ρ…ΠΎΠ΄ (для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ± Π½Π΅ Π±Ρ‹Π»ΠΎ ошибок)

f= open (argv[1], O_RDONLY|O_BINARY); //Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния

//Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅

if (f<0){ //Ссли Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ

printf («error opening file n»);

getch ();//Ошибка ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ наТатия для Π²Ρ‹Ρ…ΠΎΠ΄Π°

exit (0);}

printf («Hello Neo… n»); //ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ =)

getch ();

clrscr (); //ΠžΡ‚Ρ‡ΠΈΡΡ‚ΠΊΠ° привСтствия

printf («boot parametrs: n»);//Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

printf («n»); //ΠŸΡ€ΠΎΠΏΡƒΡΠΊ строки

read (f,&boot, sizeof (boot));//Π‘Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ f Π² boot

//Π Π°Π·ΠΌΠ΅Ρ€ считывания Ρ€Π°Π·ΠΌΠ΅Ρ€ boot Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅

printf («oem: %.8sn», boot. oem);//Автор

printf («sect_siz: %dn», boot. sect_siz); //Π‘Π°ΠΉΡ‚ΠΎΠ² Π² ΡΠ΅ΠΊΡ‚ΠΎΡ€Π΅ диска

printf («clust_siz: %dn», boot. clust_siz); //Π‘Π΅ΠΊΡ‚Π°Ρ€ΠΎΠ² Π² ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅

printf («res_sect: %dn», boot. res_sect);//Π—Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сСкторов

printf («fat_cnt: %dn», boot. fat_cnt); //Π’Π°Π±Π»ΠΈΡ† Ρ„Π°Ρ‚

printf («root_siz: %dn», boot. root_siz);//ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅

printf («tot_sect: %dn», boot. tot_sect);//ВсСго сСкторов

printf («media: %dn», boot. media); //Π‘Ρ€Π΅Π΄Π° носитСля

printf («fat_size: %dn», boot. fat_siz);//Π‘Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π½Π° ΠΎΠ΄Π½Ρƒ копию Fat

printf («sectors: %dn», boot. sectors); //Π‘Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π½Π° Π΄ΠΎΡ€ΠΎΠΆΠΊΠ΅

printf («heads: %dn», boot. heads); //Π‘Ρ‚ΠΎΡ€ΠΎΠ½ (Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ)

printf («hidden1: %dn», boot. hidden1);//Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… сСкторов Ρ€Π°Π·Π΄Π΅Π»Π°, мСньшС 32 ΠΌΠ‘Π°ΠΉΡ‚

printf («hidden_h: %dn», boot. hidden_h);//Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… сСкторов Ρ€Π°Π·Π΄Π΅Π»Π°, большС 32 ΠΌΠ‘Π°ΠΉΡ‚

printf («tot_secs: %dn», boot. tot_secs);//Π‘Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² для Ρ€Π°Π·Π΄Π΅Π»Π° Π½Π° Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΎΠΌ Π΄. большС 32 ΠΌΠ‘Π°ΠΉΡ‚

printf («fiz_disk: %dn», boot. fiz_disk);//ЀизичСский Π½ΠΎΠΌΠ΅Ρ€ диска

printf («reserved1: %dn», boot. reserved1);//Π—Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ

printf («symbol: %dn», boot. symbol);//Π’ΠΈΠΏ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠΉ записи

printf («s_nom: %dn», boot. s_nom);//Π‘Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ диска

printf («v_lable: %dn», boot. v_lable);//ΠœΠ΅Ρ‚ΠΊΠ° диска

printf («reserved2: %dn», boot. reserved2);//Π—Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°

getch ();

printf («n»);//ΠŸΡ€ΠΎΠΏΡƒΡΠΊ строки

printf («Match: n»); //Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ

getch ();

printf («n»);//ΠŸΡ€ΠΎΠΏΡƒΡΠΊ строки

tot_siz = (boot.tot_sect * boot. sect_siz);//Π Π°Π·ΠΌΠ΅Ρ€ диска Π² Π±Π°ΠΉΡ‚Π°Ρ…

printf («Tot_siz: %dn», tot_siz);

root_pos = (boot.fat_siz * boot. fat_cnt + boot. res_sect)* boot. sect_siz;

printf («root_pos: %dn», root_pos); //Π‘Π°ΠΉΡ‚ΠΎΠ² Π½Π° Ρ„Π°Ρ‚Ρ‹ ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²

fat_pos = (boot.res_sect * boot. sect_siz);

printf («fat_pos: %dn», fat_pos); //Π‘Π°ΠΉΡ‚ΠΎΠ² Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²

fat_tot_siz = (root_pos — fat_pos) ;

printf («Fat_tot_siz: %dn», fat_tot_siz); //Π‘Π°ΠΉΡ‚ΠΎΠ² Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ„Π°Ρ‚

kat_siz = (boot.root_siz * 32);

printf («Kat_siz: %dn», kat_siz); //Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°

data_start = (root_pos + kat_siz);//ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»ΠΎΠ²

printf («Data_start: %dn», data_start);

data_siz = (tot_siz — data_start);//Π‘Π°ΠΉΡ‚ΠΎΠ² ΠΏΠΎΠ΄ Ρ„Π°ΠΉΠ»Ρ‹

printf («Data_siz: %dn», data_siz);

data_siz = (tot_siz — data_start);//Π‘Π°ΠΉΡ‚ΠΎΠ² ΠΏΠΎΠ΄ Ρ„Π°ΠΉΠ»Ρ‹

printf («Data_siz: %dn», data_siz);

clust_b_siz = (boot.clust_siz * boot. sect_siz);//Π‘Π°ΠΉΡ‚ΠΎΠ² Π² ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅

printf («Clust_b_siz: %dn», clust_b_siz);

clust_b_siz = (boot.clust_siz * boot. sect_siz);//Π‘Π°ΠΉΡ‚ΠΎΠ² Π² ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅

printf («Clust_b_siz: %dn», clust_b_siz);

clust_data = (data_siz /clust_b_siz);//ΠšΠ»Π°ΡΡ‚Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄ Ρ„Π°ΠΉΠ»Ρ‹

printf («Clust_data: %dn», clust_data);

getch ();

printf («n»);//ΠŸΡ€ΠΎΠΏΡƒΡΠΊ строки

printf («Read katalog… n»);

getch ();

printf («n»);//ΠŸΡ€ΠΎΠΏΡƒΡΠΊ строки

lseek (f, fat_pos, SEEK_SET); //Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π½Π°

// fat_pos (количСство Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ…), ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π°

read (f, rez, fat_tot_siz);

//Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ f Π² rez Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ boot. fat_size * boot. sect_size

// Ρ‚. Π΅. Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ FAT, Π·Π½Π°Ρ‡ΠΈΡ‚ записываСм FAT (Ρ‚Π°Π»ΠΈΡ†Ρƒ) Π² rez

lseek (f, root_pos, SEEK_SET); //Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π½Π°

//root_pos (Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°Ρ‚ΠΎΠ² + Ρ€Π΅Π·Π΅Ρ€Π²)

read (f, dir, kat_siz);//Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ f Π² dir

//с отступом Π² root_pos, считываСм ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 32 Π±Π°ΠΉΡ‚Π°)

lseek (f, data_start, SEEK_SET); //Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π½Π°

// data_start (Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²), ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π°

read (f, data, data_siz);//Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ Π² Data Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ

j = 0;

for (i=0; i

if ((dir[i]. name[0]≠0) &&(dir[i]. atribut≠0x0f) //&& (dir[i]. name[0]≠(char)0xe5)

){ //Π‘Π΄Π΅Π»Π°Π½Π½ΠΎ Ρ‡Ρ‚ΠΎΠ± Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ» Π±ΠΈΡ‚Ρ‹ΠΉ

//ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ имя: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ Ρ€Π°Π²Π½ΠΎ 0, Π½Π΅ Ρ€Π°Π²Π½ΠΎ 0xe5 (свбодный)

//А Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Ρ„Π°ΠΉΠ»Π° Π½Π΅ 0x0f

//Если ΡƒΠ±Π΅Ρ€Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0xe5 Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π±ΠΈΡ‚Ρ‹Π΅

printf («name: %.8s», dir[i]. name);//ΠŸΠ΅Ρ‡Π°Ρ‚Π΅ΠΌ имя Ρ„Π°ΠΉΠ»Π°

printf («extension file: %.3s», dir[i]. rs);//ΠŸΠ΅Ρ‡Π°Ρ‚Π΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅

printf («size: %dn», dir[i]. size);//ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€

printf («nkl: %dn», dir[i]. nkl);//НомСр ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ кластСра Ρ„Π°ΠΉΠ»Π°

for (k = dir[i]. nkl, n = 0; k < 0xfff0; k = rez[k], n++) {

printf («K: %dn», k);//Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ всС Π½ΠΎΠΌΠ΅Ρ€Π° кластСров

}

printf («takes clusters: %dn», n);

//Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сколько занято кластСров Ρ„Π°ΠΉΠ»ΠΎΠΌ

printf («date: %02d.%02d.%04dn», dir[i]. date&0x1f, (dir[i]. date&0x1e0)>>5, 1980+((dir[i]. date&0xf800)>>9));

//Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΄Π°Ρ‚Ρƒ

printf («time: %02d:%02d:%02d», (dir[i]. time&0xf800)>>11, (dir[i]. time&0x7e)>>5, dir[i]. time&0×01f);

//Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ врСмя

printf («nn»);//ΠŸΡ€ΠΎΠΏΡƒΡΠΊ строки

//Π”Π°Π»Π΅Π΅ выполняСм Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ Files Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

files[j]. time = dir[i]. time;

files[j].date = dir[i]. date;

files[j].nkl = dir[i]. nkl;

files[j].size = dir[i]. size;

files[j].atribut = dir[i]. atribut;

j = j + 1;

}

}

getch ();

return 0;

}

//—————————————————————————————————————;

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС FAT16 ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ кластСра ΠΎΡ‚Π²Π΅Π΄Π΅Π½ΠΎ 16 разрядов. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ максимальноС количСство кластСров составляСт 65 525, Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ кластСра 128 сСкторов. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈΠ»ΠΈ дисков Π² FAT16 составляСт 4,2 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π°. ΠŸΡ€ΠΈ логичСском Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ диска ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π° опСрационная систСма стараСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ кластСра, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅Π΅ΡΡ количСство кластСров Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 65 525. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅ΠΌ большС Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ€Π°Π·Π΄Π΅Π»Π°, Ρ‚Π΅ΠΌ большС Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ кластСра. МногиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΊΠ»Π°ΡΡ‚Π΅Ρ€ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π² 128 сСкторов. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ€Π°Π·Π΄Π΅Π»Π° FAT16 ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ 2 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‡Π΅ΠΌ большС Ρ€Π°Π·ΠΌΠ΅Ρ€ кластСра, Ρ‚Π΅ΠΌ большС становятся ΠΏΠΎΡ‚Π΅Ρ€ΠΈ дискового пространства. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ послСдний кластСр, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠΌ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ лишь частично. НапримСр, Ссли Ρ„Π°ΠΉΠ» Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 17 ΠšΠ±Π°ΠΉΡ‚ записываСтся Π² Ρ€Π°Π·Π΄Π΅Π» с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ кластСра 16 ΠšΠ±Π°ΠΉΡ‚, Ρ‚ΠΎ ΡΡ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» Π·Π°ΠΉΠΌΠ΅Ρ‚ Π΄Π²Π° кластСра, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ кластСр Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ кластСрС Π±ΡƒΠ΄Π΅Ρ‚ записан Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 ΠšΠ±Π°ΠΉΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ 15 ΠšΠ±Π°ΠΉΡ‚ пространства Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ кластСра останутся Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ нСдоступными для записи Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². Если Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… дисках записываСтся большоС количСство ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ дискового пространства Π±ΡƒΠ΄ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», опСрационная систСма Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° запись Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ кластСра Ρ„Π°ΠΉΠ»Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ кластСр прСдставляСт собой Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π°. Π—Π°Ρ‚Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ кластСру Ρ„Π°ΠΉΠ»Π° элСмСнт FAT. Если элСмСнт содСрТит мСткупослСдний Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, Ρ‚ΠΎ Π΄Π°Π»ΡŒΡˆΠ΅ Π½ΠΈ Ρ‡Π΅Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ: вСсь Ρ„Π°ΠΉΠ» умСщаСтся Π² ΠΎΠ΄Π½ΠΎΠΌ кластСрС. Если кластСр Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ, Ρ‚ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ содСрТит Π½ΠΎΠΌΠ΅Ρ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ кластСра. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ кластСра Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ΠΎ вслСд Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ. Когда Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½ послСдний кластСр Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, Ρ‚ΠΎ, Ссли Ρ„Π°ΠΉΠ» Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ вСсь кластСр Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΡΠ΅Ρ‡ΡŒ лишниС Π±Π°ΠΉΡ‚Ρ‹ кластСра. Π›ΠΈΡˆΠ½ΠΈΠ΅ Π±Π°ΠΉΡ‚Ρ‹ ΠΎΡ‚ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ Ρ„Π°ΠΉΠ»Π°, хранящСйся Π² Π·Π°ΠΏΠΈΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», опСрационная систСма Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий. Π’ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΌ элСмСнтС ΠΏΠ°ΠΏΠΊΠΈ создаСтся описаниС Ρ„Π°ΠΉΠ»Π°, Π·Π°Ρ‚Π΅ΠΌ ищСтся свободный элСмСнт FAT, ΠΈ ΡΡΡ‹Π»ΠΊΠ° Π½Π° Π½Π΅Π³ΠΎ размСщаСтся Π² Π·Π°ΠΏΠΈΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ. ЗанимаСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ кластСр, описываСмый Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌ элСмСнтом FAT. Π’ ΡΡ‚ΠΎΡ‚ элСмСнт FAT помСщаСтся Π½ΠΎΠΌΠ΅Ρ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ кластСра ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ послСднСго кластСра Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма дСйствуСт Ρ‚Π°ΠΊΠΈΠΌ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΈΠ· ΡΠΎΡΠ΅Π΄Π½ΠΈΡ… кластСров ΠΏΠΎ Π½Π°Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ Π½ΠΎΠΌΠ΅Ρ€Π°. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ располоТСнным кластСрам Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС, Ρ‡Π΅ΠΌ ΠΊ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π°ΠΌ, случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ разбросанным ΠΏΠΎ Π΄ΠΈΡΠΊΡƒ. ΠŸΡ€ΠΈ этом ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡƒΠΆΠ΅ занятыС ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Π² FAT ΠΊΠ°ΠΊ Π΄Π΅Ρ„Π΅ΠΊΡ‚Π½Ρ‹Π΅ кластСры.

1. Π‘Π°Ρ€Ρ€ΠΈ Π‘Π°ΠΉΠΌΠΎΠ½. Ѐайловая систСма FAT32 для Windows 95. PC Magazine, ΠΠΏΡ€Π΅Π»ΡŒ 8, 1997, стр. 279.

2. Π₯Π΅Π»Π΅Π½ ΠšΠ°ΡΡ‚Π΅Ρ€. ΠžΡΠ½ΠΎΠ²Ρ‹ Windows NT ΠΈ NTFS/ΠŸΠ΅Ρ€. с Π°Π½Π³Π». — Πœ: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΡ‚Π΄Π΅Π» «Π ΡƒΡΡΠΊΠ°Ρ рСдакция» ВОО «Channel Trading Ltd.», 1996.—440 с.

3. РСсурсы Windows NT: ΠΏΠ΅Ρ€. Ρ Π°Π½Π³Π». — Π‘Пб.: BHV — Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 1996. — 720 с.

4. Π€Ρ€ΠΎΠ»ΠΎΠ² А. Π’., Π€Ρ€ΠΎΠ»ΠΎΠ² Π“. Π’. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Windows NT. — Πœ.: Π”Π˜ΠΠ›ΠžΠ“-МИЀИ, 1996. — 272 Ρ. Π’. 26.

5. Π€Ρ€ΠΎΠ»ΠΎΠ² А. Π’., Π€Ρ€ΠΎΠ»ΠΎΠ² Π“. Π’. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Windows NT. — Πœ.: Π”Π˜ΠΠ›ΠžΠ“-МИЀИ, 1997. — 271 Ρ. Π’. 27.

6. Нортон П. ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Ρ„ΠΈΡ€ΠΌΡ‹ IBM ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма MS-DOS: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». — Πœ.: Π Π°Π΄ΠΈΠΎ ΠΈ ΡΠ²ΡΠ·ΡŒ, 1991. Π‘. 416.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ