next up previous contents index
Дал╕: Гнучк╕ диски Вгору: Використання диск╕в та ╕нших Назад: Два типи пристро╖в

Жорстк╕ диски

Даний п╕дрозд╕л ознайомить читача з терм╕ноло╜╕╓ю, що ма╓ в╕дношення до жорстких диск╕в. Якщо Ви вже знайом╕ з терм╕нами та концепц╕ями, Ви можете пропустити його.

Рисунок [*] показу╓ схематичну д╕а╜раму найважлив╕ших частин жорсткого диску. Жорсткий диск склада╓ться з одн╕╓╖ або б╕льше циркулярних пластин44 на яких одна або обидв╕ поверхн╕ покрит╕ магн╕тною речовиною, яка ╕ використову╓ться для запису даних. Для кожно╖ тако╖ поверхн╕ ╕сну╓ власна записуючо-в╕дтворююча головка, яка анал╕зу╓ або зм╕ню╓ записан╕ на поверхн╕ дан╕. Вс╕ пластини обертаються на сп╕льн╕й ос╕, типова швидк╕сть обертання склада╓ 3600 оберт╕в на хвилину, але диски з вищою виробничою потужн╕стю мають вищ╕ швидкост╕. Головки можуть пересуватися вздовж рад╕уса пластин, ╕ цей рух, по╓днаний з обертанням пластин, да╓ головкам можлив╕сть доступу до будь-яко╖ частини диску.

Процесор (CPU) ╕ реальний диск сп╕лкуються через дисковий контролер. Це зв╕льню╓ вс╕ ╕нш╕ частини комп'ютера в╕д необх╕дност╕ знати, як саме користуватися тим чи ╕ншим диском, бо дисков╕ контролери можуть виготовлятися таким чином, щоб мати один ╕ той-же ╕нтерфейс до комп'ютера. Коротше кажучи, комп'ютер просто може сказати ``гей, дисче, дай мен╕ те, що я хочу'', зам╕сть того, щоб передавати довг╕ посл╕довност╕ електричних сигнал╕в т╕льки щоб посунути головку у в╕дпов╕дне положення ╕ чекати п╕сля цього, щоб потр╕бне м╕сце диску попало п╕д читаючу головку. Насправд╕, ╕нтерфейс до дискового контролера все ще досить складна штука, але все-таки набагато прост╕ше, н╕ж в╕н м╕г би бути. Кр╕м того, контролер може робити деяк╕ ╕нш╕ реч╕, так╕, як кешування або автоматичну зам╕ну дефектних сектор╕в.

Наведен╕ вище дан╕, практично все, що необх╕дно знати середньо-перес╕чному користувачев╕ про обладнання. Кр╕м згаданого ╓ ще ц╕ла в'язка вс╕ляких ╕нших причандаль, таких, як двигун, що оберта╓ пластини, електронн╕ штучки, як╕ керують роботою механ╕чних частин, але все це не ма╓ в╕дношення до розум╕ння принцип╕в роботи жорстких диск╕в.

Магн╕тн╕ поверхн╕, як звичайно, розд╕лен╕ на концентричн╕ к╕льця, що носять назву дор╕жок, а ц╕ в свою чергу под╕лен╕ на сектори. Такий под╕л використову╓ться для визначення положення на поверхн╕ жорсткого диску та для вид╕лення в╕льного простору для файл╕в. Щоб визначити потр╕бне м╕сце на диску звичайно кажуть ``поверхня 3, дор╕жка 5, сектор 7''. Найчаст╕ше число сектор╕в ╓ сталим для вс╕х дор╕жок на диску, але деяк╕ диски прид╕ляють б╕льше сектор╕в на зовн╕шн╕ дор╕жки (вс╕ сектори будуть мати в такому випадку однаковий ф╕зичний розм╕р, а, отже, б╕льше сектор╕в пом╕ститься на ближчих до зовн╕шнього периметру дор╕жках). Типовий сектор ма╓ 512 байт даних. Диск сам по соб╕ не може оперувати об'╓мами даних меншими, н╕ж розм╕р сектора.


  
Рисунок: Схематичне зображення основних частин жорсткого диску.
\includegraphics{disks/hd-schematic.ps}

Кожна поверхня диску розд╕лена на дор╕жки (╕ сектори) так само, як ╕ ╕нш╕. Це означа╓ те, що, якщо головка на одн╕й з поверхонь знаходиться над певною дор╕жкою, то головки на вс╕х ╕нших магн╕тних поверхнях знаходяться над такою ж поверхнею. Вс╕ в╕дпов╕дн╕ дор╕жки разом взят╕ називають цил╕ндром. Пересування головок з одн╕╓╖ дор╕жки (цил╕ндру) до ╕ншо╖ займа╓ певний час. Отже, дан╕ краще розташувати таким чином, щоб дан╕, до яких доступ повинен виконуватися одночасно (наприклад, файл), розташовувалися в одному ╕ тому ж цил╕ндр╕. В такому раз╕ в╕дпада╓ необх╕дн╕сть пересування головок при доступ╕ до цих даних ╕, отже, це п╕двищу╓ швидк╕сть роботи. Не завжди виявля╓ться можливим розташувати файли таким чином, ╕ файли, як╕ виявляються записаними розкиданими по к╕лькох р╕зних ф╕зичних розд╕лах диску носять назву фрагментованих.

Число поверхонь, або головок (що, по сут╕, ╓ одним ╕ тим же), цил╕ндр╕в та сектор╕в сутт╓во в╕др╕зняються45. Сукупн╕сть вс╕х цих параметр╕в називають геометр╕╓ю жорсткого диску. Геометр╕я диску часто запису╓ться в спец╕альн╕й пам'ят╕, що живиться в╕д батарейки, ╕ носить назву CMOS RAM46. З ц╕╓╖ пам'ят╕ операц╕йна система д╕зна╓ться про диск п╕д час старту системи або драйвер╕в.

На жаль BIOS4748 ма╓ певн╕ обмеження закладен╕ при проектуванн╕, через як╕ виявля╓ться неможливим звертатися до дор╕жок, номер яких б╕льший за 1024 (тобто вказувати цей номер в CMOS RAM), що ╓ занадто малим для сучасних жорстких диск╕в. Щоб перейти через цю межу контролер придурю╓ться, що в╕н не зна╓ справжньо╖ геометр╕╖ диску ╕ переводить адреси, запрошен╕ ком'ютером в так╕, як╕ б╕льше п╕дходять до рельно╖ ситуац╕╖. Наприклад, жорсткий диск може мати 8 головок, 2048 дор╕жок ╕ 35 сектор╕в49. Його контролер може дурити комп'ютер, що в╕н ма╓ 16 головок, 1024 дор╕жки ╕ 35 сектор╕в на дор╕жку, не перевищуючи таким чином верньо╖ дозволено╖ меж╕ дор╕жок ╕ обчислю╓ справжн╕ адреси на диску виводячи ╖х з тих, що надаються йому комп'ютером. Насправд╕ математика позаду такого обчислення може бути значно складн╕шою, бо числа можуть бути не такими гарними та гладенькими, як в наведеному приклад╕ (але, знову ж таки, це не ма╓ в╕дношення до загального розум╕ння принципу роботи). Таке переформування ф╕зичних адрес викривлю╓ уявлення системи про справжню орган╕зац╕ю диск╕в ╕ робить безперспективними спроби оптим╕зац╕╖ швидкост╕ доступу за рахунок розташування даних в межах одного цил╕ндру. Ц╕ проблеми переобчислення адрес стосуються т╕льки IDE диск╕в. SCSI диски використовують посл╕довн╕ номери сектор╕в (тобто, контролер переводить посл╕довний номер сектора в триплет "головка-цил╕ндр-сектор") ╕ зовс╕м ╕нший метод для сп╕лкування з процесором, отже вони повн╕стю ╕зольован╕ в╕д описано╖ проблеми. В╕дм╕тьте, однак, що ╕ у випадку ╕з SCSI дисками комп'ютер також може не знати справжньо╖ геометр╕╖ диску.

Через те, що Л╕накс часто не ма╓ ╕ найменшого поняття про справжню геометр╕ю диску, в╕н нав╕ть ╕ не дума╓ пом╕стити як╕сь дан╕ в межах одного цил╕ндру. Зам╕сть цього в╕н намага╓ться приписати кожному файлу посл╕довн╕ сектори, ╕ це в результат╕ да╓ приблизно такий же виграш в час╕. Ця проблема нав╕ть б╕льше ускладню╓ться кешами контролера диск╕в та автоматичним "читанням наперед"50 контролера.

Кожен жорсткий диск ма╓ св╕й власний спец╕альний файл. Загалом може бути два або чотири жорстких диски IDE в систем╕. Вони в╕дом╕ п╕д назвою /dev/hda , /dev/hdb , /dev/hdc  та /dev/hdd . SCSI диски мають назви /dev/sda , /dev/sdb  ╕ т.д. В╕дпов╕дн╕ домовленост╕ щодо назв диск╕в ╕снують також для ╕нших тип╕в пристро╖в. Детальн╕ дан╕ про типи пристро╖в маються в  Linux Device List. Майте на уваз╕, що спец╕альн╕ файли для ц╕лих диск╕в мають доступ до диск╕в ц╕лком, не звертаючи уваги на розд╕ли диск╕в (про це йдеться дал╕), ╕ при цьому виявля╓ться надзвичайно легко наробити лиха з ус╕ма розд╕лами, якщо не бути уважним. Спец╕альн╕ файли диск╕в част╕ше всього використовуються, щоб отримати доступ до MBR 51 (що теж буде обговорюватися дал╕).



Dmytro Kovalev
1999-06-10