Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DP_chornovik.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
7.32 Mб
Скачать

1.3. Логічна організація інформації

Фізична організація. Жорсткий диск складається з декількох металевих пластин, головок читання-запису і механізму їх позиціонування, поміщених в герметичну коробку. До нього прикріплена друкарська плата з контроллером і буферною пам'яттю (кешем), яка за допомогою 40-контактного чи 80-контактного шлейфу з'єднується з материнською платою або окремим контроллером. Так от, металеві пластини умовно розбиті на концентричні доріжки, а доріжки розділені на сектори. Доріжки на рівній відстані від центру на всіх поверхнях пластин об'єднуються в циліндри. Таким чином, для читання певного сектора даних (його ємкість прийнята рівною 512 байт) потрібно:

  • відвести головки на потрібну відстань від центру, тобто позиціонувати на потрібний циліндр;

  • почати проглядання доріжки на потрібній пластині, активувавши потрібну головку;

  • проводити читання всієї інформації до появи заголовка сектора, номер якого (міститься в цьому заголовку) співпадає з потрібним нам для операції читання або запису.

Відповідно до такої схеми метод знаходження потрібної інформації на жорсткому диску називається CHS-адресацією (Cylinder-head-sector). BIOS (базова система введення-виводу) є набором системних підпрограм (функцій), серед яких є і програма читання-запису даних на жорсткому диску. Для отримання вмісту одного сектора потрібно вказати його CHS-адрес. Число секторів, циліндрів і головок Bios'у повинно бути відомо, для цього і існує автодетект в «Setup». Втім, інформація про геометрію, використовувана для роботи функцій доступу до диска, навіть близько не відповідає реальній геометрії сучасного жорсткого диска. У нього 1-3 пластини, одна з яких може використовуватися тільки з одного боку, і 1-6 головок. Тому контроллер жорсткого диска проводить трансляцію адрес, що поступають, таку ж трансляцію проводить і BIOS, працюючи по механізму LBA (Logical Block Addressing). Відповідно до ідеології MS-DOS жорсткий диск може складатися з так званих "розділів" - незалежних областей диска, які можуть бути побудовані по схемі будь-якої операційної системи, тобто використовувати будь-яку файлову систему. Таких розділів повинно бути два - основний (Primary), з якого зазвичай здійснюється завантаження, і розширений (Extended), який може бути роздільний на декілька частин-підрозділів (логічних дисків). Таким чином, перший розділ диска самостійний, останні об'єднуються в групу. Кожен розділ має приналежність до тієї або іншої файлової системи. В рамках DOS (і заснованих на цій же операційній системі Windows3.x/95/98/ME) існують три файлові системи - Fat12, Fat16 і Fat32.

Системні сектори. Найперший сектор будь-якого жорсткого диска має назву Master Boot Record, MBR. Він складається з двох частин - програми початкового завантажувача і таблиці розділів (Disk Partition Table, DPT). DPT складається з чотирьох записів, що позначають адресу початку розділу, його розмір в секторах, адресу кінця і тип файлової системи. Звичайно, використовується тільки два записи - для основного і розширеного розділу, тому що кожен підрозділ (логічний диск) має таку ж DPT з вказівкою адреси наступного підрозділу. Завдання завантажувача в MBR - дати можливість завантаження з потрібного розділу (тобто використовувати декілька операційних систем). Стандартний завантажувач DOS надає вельми обмежений механізм вибору - завантаження можливе з того розділу, у якого встановлений прапор активності таблиці DPT.

Найперший сектор розділу називається Boot Sector. У його складі також є завантажувальна програма і таблиця BIOS Parameter Block, BPB. У цій таблиці є інформація про місцезнаходження і розмір іншої важливої області - таблиці розміщення файлів, FAT. За своєю суттю FAT - це великий масив елементів, кожен елемент відповідає кожному кластеру. Кластер - блок секторів (від 8 до 128), елемент розподілу всього дискового простору розділу. Кожному файлу при його створенні виділяється потрібне число кластерів. Номер першого кластера заноситься в каталог (директорій, теку), а відповідний цьому кластеру елемент FAT містить номер другого кластера. Елемент FAT, відповідний другому кластеру, містить номер третього кластера і так далі Весь FAT складається з таких ланцюжків (Chains). Якщо елемент FAT не зв'язаний ні в один ланцюжок, і при цьому не рівний 0, він називається "втраченим" (Lost Cluster). "Втрата" кластерів відбувається при перезавантаженні у момент запису ланцюжка в FAT, наприклад, при створенні/зміні файлу, коли операція запису уривається. Звичайно, це не найстрашніші наслідки несподіваного перезавантаження, але все таки втрачати місце на диску не дуже хочеться. Програмісти з Microsoft добре знали про "стабільність" своєї Windows, тому і запускається Scandisk автоматично. Якщо файл згодом збільшується в розмірах, йому призначаються нові кластери з числа вільних, причому найчастіше вони знаходяться у іншому місці диска. Ланцюжок "перестрибує" інші ланцюжки ­­­– ось вам і фрагментація, яку усувають програми-дефрагментатори, що переносять файли так, щоб їх кластери йшли один за одним по порядку. Хоча система ланцюжків і є достатньо ефективною і простій, у неї є недоліки. По-перше, низька надійність - при зникненні одного елементу весь файл буде нечитаним, а псування FAT означає втрату великої кількості (якщо не всіх) файлів. Для усунення цього недоліку існує дві однакові копії FAT. Друге - якщо розмір файлу не кратний розміру кластера, утворюється слек (Slack) ­­­– частина кластера, не зайнята корисною інформацією. Чим більше розмір кластера, тим більша частина диска зайнята слеком. Для файлу завдовжки 1 байт ви втрачаєте весь кластер, а якщо він має великий розмір (32 Кбайта, наприклад), то втрати на слек можуть складати 30-50% від загальної ємкості диска (до речі, перевірити їх можна програмою Sandra - модуль Drive Information). Розмір елементу FAT дає назва самій файловій системі. Fat12 має 12-бітові елементи, які дозволяють організувати на диску біля 4-х тисяч кластерів. Fat16 має 16-бітові елементи, число кластерів - 65530. Fat32 - 32-бітові елементи, близько 4 млрд. кластерів. Чим більше на диску буде кластерів, тим менше можна зробити розмір самого кластера і тим самим менше втратити місця. Через це Fat12 використовується тільки для гнучких дисків, Fat16 - для дисків ємкістю до 500 Мб (в принципі можна і до 2 Гб).

Початкове завантаження. Завантаження операційної системи відбувається таким чином: BIOS, після проведення первинної самодіагностики (POST, Power-on Self-test), прочитує найперший сектор з того пристрою, який заданий першим в Setup (Advanced Features, Boot Sequence або First Boot Device) і починає його виконання. Завантажувач, який був у цьому секторі, проглядає свою таблицю розділів на предмет наявності активного (завантажувального) розділу, обчислює адресу завантажувального сектора активного розділу, прочитує і запускає цей сектор. Завантажувач з boot-сектора виконує зчитування і запуск файлів операційної системи; для DOS 7.1, що входить до складу Windows95/98, це всього один файл - IO.SYS. IO.SYS спочатку проглядає файл CONFIG.SYS - шукає там завантажувальне меню, встановлює драйвера пристроїв, які там можуть бути задані (крім того, HIMEM.SYS, IFSHLP.SYS і SETVER.EXE завантажуються у будь-якому випадку), після чого запускає обробник командного рядка COMMAND.COM. COMMAND.COM виконує пакетний файл AUTOEXEC.BAT, після чого викликає програму WIN.COM; втім, якщо підправити файл MSDOS.SYS (колишній компонент операційної системи, зараз просто конфігураційний файл), COMMAND.COM не почне завантаження Windows, перейшовши в режим діалогу.

Всі ці операції відбуваються без участі програми кешування дискових операцій (SMARTDRV.EXE - стандартна програма кешування), тому відбувається постійне звернення до FAT за інформацією про кластери кожного файлу. Значить, при проведенні дефрагментації завантажувального розділу жорсткого диска слід передбачити прихильність перерахованих файлів якомога ближче до початку диска. Першим на диску повинен бути файл підкачки Win386.SWP, потім - директорії (або каталоги, теки - хто як звик їх називати), після них потрібно розташовувати файли, що беруть участь в завантаженні. Звичайно, стандартний Defrag цього не може, але є багато інших хороших програм дефрагментації. Якщо ви ще не користуєтеся ними, подумайте, можливо, є сенс встановити Norton Utilities 2000, у складі яких є дефрагментатор Speed Disk.

Boot virus. Так називається різновид вірусів, що упроваджуються на одному з етапів початкового завантаження, зазвичай на найпершому. Boot-вірус записує в MBR свій завантажувач замість початкового. Тим самим замість операційної системи першим завантажується вірус. Він розміщує в пам'яті своє тіло, яке зберігає в невикористаних секторах, що йдуть після MBR, але до першого завантажувального сектора розділу. Перехопивши звернення до дисків, вірус продовжує завантаження операційної системи. У разі звернення до дискети вірус змінить її boot-сектор, замінивши в нім програму-завантажувач. Якщо користувач завантажиться з такої дискети, вірус отримає управління і відразу ж заразить MBR жорсткого диска. Якщо boot-вірус не уміє заражати файли, обходячись тільки системними секторами, він не представляє великої небезпеки. По-перше, заразитися можна тільки при завантаженні з дискети (або другого жорсткого диска), по-друге, можна просто включити "Virus Warning" в Setup - ви отримаєте попередження про спробу вторгнення в завантажувальний сектор (всупереч поширеній думці, ця опція повинна вимикатися тільки при інсталяції Windows), по-третє, вилікувати жорсткий диск можна всього однією командою - "Fdisk /mbr", яка записує в MBR оригінальну програму-завантажувач.

Проблеми при завантаженні. Порушення процесу завантаження може відбутися на будь-якому з етапів. Щоб визначити причину і "винуватця", потрібно звернути увагу на повідомлення, що з'являються:

  1. якщо все повідомлення - у верхньому регістрі (тобто заголовними буквами), то це BIOS не знаходить MBR на вказаному йому в Setup пристрої, що свідчить про помилку читання або про відсутність ознаки системного сектора у першого сектора диска (тобто диск не розмічений). Щоб переконатися, що з диском все нормально, потрібно зайти в BIOS Setup і запустити Autodetect;

  2. повідомлення "Invalid partition table" і "Error loading operating system" належать завантажувачу з MBR; завантажувальний сектор активного розділу або не читається, або його ще (або вже) немає;

  3. повідомлення "Invalid system disk" і "Disk I/o error" видає завантажувач з boot-сектора, повідомляючи про відсутність файлів операційної системи або про помилку на диску.

У випадках, коли завантаження не відбувається, потрібно слідувати пунктами:

  1. якщо проблема не пов'язана з самим диском, потрібно серйозно розбиратися з тим, куди поділися системні сектори. Звичайним користувачам це не під силу;

  2. в інакшому випадку, при наявності або порушенні таблиці DPT, або руйнування завантажувального сектора. Лікувати диск запуском NDD або Scandisk з дискети не рекомендовано - можна все остаточно занапастити і додати роботи тим, хто потім відновлюватиме інформацію на диску;

  3. у іншому разі, системні файли могли бути видалені або зіпсовані, можна спробувати виправити ситуацію завантаженням з дискети і введенням команди "Sys с:".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]