Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



КОНСПЕКТ ЛЕКЦІЙ 5 страница

Перший блок відображеної пам’яті завжди використовується самим ЕММ для себе.

 

Розширена пам’ять

Microsoft, Lotus, Intel та AST – розробили специфікацію розширеної пам’яті – XMS – eXtended Memory Specification.

Ця специфікація визначила правила доступу як до самої розширеної пам’яті, так і до додаткової пам’яті інших типів, які створюються за її рахунок.

Програмний драйвер, який реалізує специфікацію XMS, дозволяє пересилати дані із стандартної пам’яті у розширену і назад.

Цей драйвер – адміністратор розширеної пам’яті – ХММ, один з найбільш відомих HIMEM.SYS.

Виділення розширеної пам’яті виконується блоками ЕМВ – Extended Memory Block, - та за спеціальним запитом від програм. Програма, яка зробила запит на блок розширеної пам’яті, отримує в своє розпорядження обробник і користується ним при доступі до блоку пам’яті.

Розширена пам’ять – це така, керування якою узгоджене з XMS – XMS-пам’ять, оскільки сама розширена пам’ять може використовуватись і за іншими правилами (! Базова розширена пам’ять це не XMS).

Звертання через переривання 15h замість специфікації XMS.

 

Висока пам’ять

У процесорі 80286 ША – 24 розрядів. Тоді стає можливою адресація сегменту пам’яті – 64 Кбайт, який починається з останнього значення параграфу UMA. Таким чином адресується до 64Кбайт розширеної пам’яті мінус16 байтів, що входять в останній параграф UMA.

Від 1 Мбайту до 1 Мбуйту + 64 Кбатів – 16 байтів. Область високої пам’яті НМА – (High Memory Area).

Метод доступу до цього сегменту реалізований в драйвері HIMEM.SYS (враховано в XMS).

Розширену пам’ять, що попадає в цю область, називають високою пам’яттю (High Memory). Використовується безпосередньо, без переключення режимів роботи мікропроцесору. Але XMS дозволяє її використовувати тільки одній програмі. Частіше це DOS, частина її резидентного коду, звільняє тим самим стандартну пам’ять.

 

Верхня пам’ять

Верхня пам’ять (Upper Memory Area) займає адресний простір, що міститься безпосередньо над стандартною пам’яттю, вище 640 Кбайтів. На цей адресний простір відображено відео-пам’ять та BIOS. Частина адресного простору, що залишилася, може бути розподілена між іншими програмами. Вона розбивається на фрагменти розміром 64 Кбайти, що отримили назву “вікна” відображуваної пам’яті. Їх можна заповнити розширеною пам’яттю, якщо забезпечити відображення їх адрес на фізичні адреса, більші 1 Мбайту. Це можна робити на МП 80386, оскільки ці процесори реалізують перетворення одних адрес (логічних) в інші адреси (фізичні). Ця можливість використовується аналогічно тому, як емулюється відображення пам’яті з використанням розширеної, але:

1. Неможливо використати пам’ять, яка перевищує розміри “вікна” (не підтримується механізм перемикання сторінок).

2. У заповнені пам’яттю “вікна” можна завантажувати не тільки дані, але й драйвери та резидентні програми (що вивільнює стандартну пам’ять).

Пам’ять, що заповнює “вікна” в UMA, або UMB-пам’ять (Upper Memory Blocks – блоки верхньої пам’яті), складається з декількох фрагментів – регіонів. Деякі функції керування зафіксовані в XMS і реалізуються в HIMEM.SYS, але повна підтримка забезпечується тільки драйвером ЕММ386.ЕХЕ.

Пам’ять такого типу – це програмна пам’ять, оскільки вона формується програмними засобами при наявності відповідної апаратної підтримки.

Деякі моделі ПК різних класів мають апаратну верхню пам’ять, тобто оперативну пам’ять розміром 384 Кбайти в UMA. В такому випадку ці регіони доступні з самого початку.

Завантаженням в верхню пам’ять повністю керує DOS.

Для підтримки повної структури пам’яті мікропроцесорами типу 386, 486 та Pentium необхідно в командному файлі CONFIG.SYS:

1) підключити драйвер HIMEM.SYS (перед усіма іншими підключеннями);

2) підключити драйвер EMM386.EXE з параметром RAM;

3) встановити команду DOS = HIGH, UMB – для завантаження резидентних модулів DOS у високу пам’ять;

4) встановити команду DEVICEHIGH – для завантаження зовнішніх драйверів в верхню пам’ять;

У командному файлі AUTOEXEC.BAT за допомогою команди LOADHIGH завантажити резидентні програми у верхню пам’ять.

 

Драйвери верхньої та розширеної пам’яті

Драйвер HIMEM.SYS – призначений для керування розширеною і високою пам’яттю за специфікацією XMS3.0.

Завантажується у систему командою DEVICE=C:\DOS\HIMEM.SYS. Це менеджер розширеної пам’яті (ХММ) – що забезпечує безконфліктне сумісне використання розширеної пам’яті декількома програмами і драйверами так, щоб вони не могли одночасно використати один і той самий блок.

Драйвер ЕММ386.ЕХЕ – призначений для емуляції відображеної за специфікацією EMS4.0) та керування верхньою пам’яттю.

Може виділити одну частину XMS-пам’яті для доступу по EMS, а другу частину – під верхню пам’ять. Сам може виконувати сканування UMA для пошуку “вікон”.

Виконує дві функції. Це одночасно як ЕММ, так і адміністратор верхньої пам’яті. Це так, тому що технічна реалізація підтримки відображеної пам’яті аналогічна підтримці верхньої пам’яті.

Додатково виконує ще три функції:

1) Підтримує співпроцесор з плаваючою комою Weitek.

2) Реалізується стандарт VCPI – (Virtual Control Program Interface) – віртуальний керуючий програмний інтерфейс (розширення специфікації EMS для виключення програмних конфліктів).

3) Забезпечує формування тіньової пам’яті.

 

Завантажувані модулі COM та EXE – файли

Програми, що призначені для виконання в середовищі операційної системи DOS називаються завантажуваними модулями та містяться у файлах, що мають розширення COM або EXE.

Файли COM – програми, що завантажуються безпосередньо. Для них не потрібно фактично ніякої підготовки для запуску їх після завантаження в ОЗП засобами DOS. Проводиться лише формування спеціальної сегмент-приставки, необхідної для всіх програм, що завантажуються ОС, і встановлення регістрів сегментів МП (їм присвоюються стандартні значення), після чого керування передається програмі, що завантажена в ОЗП. Файли типу СОМ завантажуються в ОЗП відразу ж після системної області (в нижню частину доступної пам’яті).

При завантаженні файлів ЕХЕ в ОС, необхідно провести спеціальну підготовку. Основа підготовки – переміщення, яке здійснюється завантажувачем командного процесора і заключається в налагодженні адрес в програмі в залежності від місця її завантаження в ОЗП. Інформація, необхідна для переміщення, зберігається в файлі типу ЕХЕ починаються дво-байтовою міткою (її значення 4D5AH).

Формат програм в файлах типу СОМ компактніший та простіший.

СОМ-файл – вміщує тільки машинні команди та дані, без заголовку, таблиці переадресації або відлагоджувальної інформації. Максимальний розмір файлу – 64 Кбайти.

Завантажувач працює з СОМ-файлом таким чином:

- відводить максимально можливий блок вільної пам’яті, будує префікс програмного сегменту (Program Segment Prefix - PSP) на початку блоку;

- читає СОМ-файл в пам’ять відразу за PSP і передає керування на перший байт програми.

Формат СОМ-файла скопіювали з формату виконуваних модулів ОС СР/М Digital Research для 8080, 880. тому вони незахищені. Можна присвоїти довільному файлу розширення СОМ і з командного рядка завантажити його в DOS.

ЕХЕ-файл – складається з трьох основних компонентів:

- заголовок файлу,

- таблиця переадресацій,

- власне код та дані програми.

Заголовок – містить кілька інформаційних блоків:

- двобайтну сигнатуру MZ (Марк Збиковськи);

- розміри заголовку, таблиці переадресації і файлу в цілому;

- початкові значення CS:IP і SS:SP в момент запуску програми;

- контрольна сума;

- деякі вказівки з розподілу пам’яті для завантажувача DOS.

Максимальний розмір ЕХЕ-файлу не обмежений. До його складу можна включити відлагоджувальну інформацію, дописавши цю інформацію в кінець файлу та залишивши без змін його розмір, вказаний в заголовку. Завантажувач DOS цю інформацію проігнорує.

Головний недолік ЕХЕ-файлів – вони не зберігають інформацію про окремі сегменти програми; коли компоновщик (linker) формує ЕХЕ-файл, він збирає всі заявлені у вихідному тексті сегменти в один величезний об’єм із спільною таблицею переадресації.

Системний завантажувач не в змозі визначити, яка частина програми є кодом, що виконується, яка – статичні дані (рядкові та числові константи), а яка – змінні дані. Тому завантажувач не має можливості відвести для зберігання кожного з цих компонентів окремі блоки пам’яті та незалежно маніпулювати сегментами.

Створюючи Windows, розробники Microsoft зрозуміли, що 640 Кбайтів реального режиму DOS сильно обмежує. Вихід у ретельній сегментації програм. Треба мати можливість залишати у пам’яті тільки ту частину, конкретної програми, яка забезпечує її подальше виконання та заміщувати, або виводити на диск фрагменти, які не використовуються у біжучий момент.

 

 

Було прийнято рішення ввести нову структуру файлів, що виконуються – нові ЕХЕ-файли. Був створений новий завантажувач для таких файлів під систему Windows. Під час роботи Windows він перехоплює звертання прикладних програм до функції DOS EXEC (функція 4Bh переривання 21h) і правильно завантажує як “нові”, так і “старі” ЕХЕ-файли.

Структуру файлу можна розглядати на декількох рівнях абстракції. На найвищому рівні дві частини:

- старий ЕХЕ-файл;

- новий ЕХЕ-файл.

“Стара” частина вміщує повний заголовок старого ЕХЕ-файла, таблицю переадресації і власне програму. Якщо новий ЕХЕ-файл чомусь буде запущений із командного рядка DOS, завантажувач DOS розпізнає заголовок старого ЕХЕ-файла та запустить програму – для WINDOWS – програми це просто повідомлення “This program requires Microsoft Windows” і повертається керування DOS.

Якщо новий ЕХЕ-файл запускається через модуль керування Program Manager або File Manager оболонки Windows, “стара” частина ЕХЕ-файла ігнорується.

“Нова” частина нового ЕХЕ-файла вміщує елементи, які розпадаються на три класи.

1. Заголовок та різні таблиці, які визначають розмір, розташування та характеристики всіх інших частин файла. Вони використовуються системним завантажувачем та “невидимі” для самої програми під час її виконання.

2. Сегменти коду та даних програми, кожна із своєю таблицею переадресації.

3. Ресурс – це статична порція даних. Наприклад: таблиці для побудови графічних елементів керування, символьні рядки для підказок та системи допомоги, курсори, іконки.

Кожний ресурс у файлі розпізнається за іменем та типом. Він завантажується у пам’ять системою за вимогою прикладної програми.

Версії OS/2 та різні розширювачі DOS також користуються форматом нового ЕХЕ-файлу.

 

 


Логічна структура диску в MS-DOS

За своєю внутрішньою структурою логічний диск повністю відповідає дискеті, тому спочатку розглядаємо логічну структуру жорсткого диску, а потім деякі зауваження відносно гнучких дискет.

Розбиття фізичного диску на декілька логічних корисно з таких точок зору:

1. У випадку пошкодження логічного диску пропадає тільки та інформація, яка знаходилась на цьому логічному диску.

2. Реорганізація та вивантаження диску малого розміру простіше і швидше ніж великого.

3. Можливе розділення дискового простору між окремими користувачами комп’ютеру.

4. При використанні спеціальних утиліт для розділення диску на частини (менеджерів), можлива установка для окремих логічних дисків захисту від запису. На такі диски можна записувати інформацію, що не міняється. Шкода від програм-вірусів буде менша – вірус не зможе записати себе на захищений диск.

5. Один фізичний диск може вміщувати декілька різних ОС, розташованих в різних логічних розділах диску. Під час початкового завантаження можна вказати розділи диску, з якого повинна виконуватись завантаження ОС.

Перший сектор жорсткого диску (сектор 1, доріжка 0, головка 0) вміщує так званий головний завантажувальний запис (Master But Record). Цей запис призначений для завантаження операційної системи.

Сам по собі головний завантажувальний запис – це програма. Вона під час початкового завантаження ОС з жорсткого диску розміщується за фіксованою адресою в оперативній пам’яті (7С00:0000), після чого, їй передається керування. Завантажувальний запис продовжує процес завантаження ОС.

В кінці першого сектору жорсткого диску розташовується таблиця розділів диску (Partition Table). Ця таблиця вміщує чотири елементи, що описує максимально чотири розділи диску. В останніх двох байтах сектора знаходиться число 55АА. Це ознака таблиці розділів.

Для перегляду та зміни вмісту таблиці розділів жорсткого диску використовується утиліта FDISK, або аналогічна утиліта іншої ОС.

Елемент таблиці розділів диску - це структура розміром 16 байтів, що описує частину диску, яка називається розділом. В структурі описані межі розділів в термінах номерів сектора, доріжки та головки, там розміщується інформація про розміри розділу в секторах та про призначення розділу.

Розділи диску можуть бути активними, активний розділ може бути використаний для завантаження ОС. Диск може вміщувати одночасно декілька активних розділів, які можуть належати різним ОС.

 

Формат самого першого сектору жорсткого диску

Зміщення Розмір Вміст
(+0) 1BEh Головний завантажувальний запис – програма, яка завантажується та виконується під час початкового завантаження ОС.
+1BEh 10H Елемент таблиць розділів диску.
+1CEh 10H Елемент таблиць розділів диску.
+1DEh 10H Елемент таблиць розділів диску.
+1EEh 10H Елемент таблиць розділів диску.

 

У першому секторі активного розділу розташований запис завантаження (Boot Record Program), який не треба плутати з головним завантажувальним записом (Master Boot Record). Запис завантаження читається в оперативну пам’ять головним завантажувальним записом, після чого першому передається керування для подальшого завантаження певної (вибраної) операційної системи.

 

 

Таким чином, завантаження ОС з жорсткого диску – двохступеневий процес. Спочатку модулі ініціалізації BIOS читають головний завантажувальний запис в пам’ять за адресою 7С00:0000 і йому передається керування. Цей запис проглядає таблицю розділів і знаходить активний розділ. Якщо активних розділів декілька, на консоль виводиться повідомлення про необхідність вибору активного розділу для продовження завантаження.

Після того, як активний розділ знайдено, головний завантажувальний запис читає самий перший сектор розділу в ОП. Цей сектор вміщує запис завантаження, якому і передається управління.

Запис завантаження активного розділу виконує завантаження тої ОС, що знаходиться в активному розділі. Такий двохступеневий спосіб завантаження ОС необхідний тому, що спосіб завантаження залежить від самої ОС, тому кожна ОС має свій власний завантажувач. Фіксованим є тільки розташування запису завантаження – самий перший сектор активного розділу.

 

Формат елементів таблиці розділів

Зміщення Розмір Вміст
(+0) Ознаки активного розділу: 0 – розділ не активний, 80h – розділ активний.
(+1) Номер головки для початкового сектору розділу.
(+2) Номер сектору та циліндру для початкового сектору розділу у форматі функції читання сектору INT13h.
(+4) Код системи: 0 – невідома система, 1,4 – DOS, 5 – розширений розділ DOS.
(+5) Номер головки для останнього сектору-розділу.
(+6) Номер сектору та циліндра для останнього сектору розділу в форматі функції читання сектору INT13h.
(+8) Відносний номер сектору початку розділу.
+12 Розмір розділу в секторах.

 

Розглянемо докладніше деякі поля елементу таблиці розділу диску.

Байт із зміщенням 0 – це прапорець активного розділу і може приймати одне із двох значень: 0h або 80h відповідно для неактивного і активного розділів диску.

Двобайтове слово, що розташоване із зміщенням 8 містить відносний номер першого сектору розділу. Він вираховується наступним чином. Значення 0 відповідає доріжці 0, головці 0, сектору 1. Першим збільшується відносний номер сектору на доріжці, потім номер головки і, нарешті, номер доріжки. Для обчислення відносного номера сектору можна використати таку формулу

 

RelSect = (Cyl × Sect × Head) + (Head × Sect) + (Sect - 1)

 

де Cyl – номер доріжки, Sect – номер сектора на доріжці, Head – номер головки.

 

Звичайно розділи починаються з парних номерів доріжок, за виключенням самого першого розділу. Цей розділ може починатись з сектору 2 нульової доріжки (головка 0), тому що самий перший сектор диска зайнятий головним завантажувальним записом.

Байт із зміщенням 4 – це код системи, що використовує розділ диска. Для DOS зарезервовані 0, 1, 4, 5.

0 – невикористаний розділ диску;

1 або 4 – розділ використовується DOS як первинний (Primary Partition). Цей первинний розділ використовується DOS як логічний диск. Він зазвичай активний і з нього виконується завантаження ОС. В залежності від того, який код використовується (1 або 4) міняється одна з характеристик логічного диска – розмір елемента таблиці розміщення файлів (FAT) – File Allocation Table. 1 – 12-бітний FAT. 4 – 16-бітний FAT.

5 – позначає розширений розділ DOS (Extended DOS Partition).

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

Використання розширеного розділу DOS дозволяє створювати довільну кількість логічних дисків. Всі ці диски будуть розташовані в межах одного розширеного розділу.

Якщо код системи 5 в елементі таблиці розділів, то на початку розділу, вказаному в цьому елементі, розташовується сектор, що вміщує таблицю логічних дисків. Якщо код елемента 5, то він знову вказує на наступну таблицю логічних дисків. Таким чином, таблиці логічних дисків зв’язані у список, на початок цього списку вказує елемент таблиці розділів диску з кодом системи, рівним 5.

Для таблиці логічних дисків маємо відмінність в використанні полів (границь) меж логічних дисків: якщо код системи рівний 1 або 4, ці межі обчислюються відносно початку розширеного розділу; для елемента з кодом 5 використовується абсолютна адресація (відносно фізичного початку диска).

На малюнку приклад:

На диску два розділи – первинний та розширений. Первинний використовується для завантаження MS-DOS (диск С:). Розширений вміщує логічні диски D:,E:,F:.

 

Запис завантаження (BOOT)

Перший сектор логічного диску (а також перший сектор на системній дискеті) займає запис завантаження (Boot Record Program). Цей запис читається з активного розділу диску програмою головного запису завантаження (Master Boot Record) та запускається на виконання. Задача запису завантаження – виконати завантаження ОС. Кожний тип ОС має свій запис завантаження. Навіть для різних версій одної ОС програма завантаження може виконувати різні дії.

Крім програми початкового завантаження ОС в запису завантаження знаходяться параметри, що описують характеристики даного логічного диску. Всі ці параметри розташовуються на самому початку сектору, в області, що називається „форматованою областю”.

 

Варіант формату завантажувального запису ОС DOS

Зміщення Розмір Вміст
(+0) Команда JMPxxxx – перехід типу NEAR на програму початкового завантаження.
(+3) Назва фірми та версії (IBM 4.0)
(+11) Extended BPB – розширений блок параметрів BIOS.
(+36) Фізичний номер дисководу: 0 – дискета; 80h – жорсткий диск.
(+37) Зарезервовано.
(+38) Символ ’)’ – ознака розширеного запису завантаження DOS 4.0
(+39) Серійний номер диску (Створюється підчас форматування).
(+43) Мітка диску.
(+54) Зарезервовано.

 

 

Запис завантаження (BOOT)

Перший сектор логічного диску (а також перший сектор на системній дискеті) займає запис завантаження (Boot Record Program). Цей запис читається з активного розділу диску програмою головного запису завантаження (Master Boot Record) та запускається на виконання. Задача запису завантаження – виконати завантаження ОС. Кожний тип ОС має свій запис завантаження. Навіть для різних версій одної ОС програма завантаження може виконувати різні дії.

Крім програми початкового завантаження ОС в запису завантаження знаходяться параметри, що описують характеристики даного логічного диску. Всі ці параметри розташовуються на самому початку сектору, в області, що називається „форматованою областю”.

 

Варіант формату завантажувального запису ОС DOS

Зміщення Розмір Вміст
(+0) Команда JMPxxxx – перехід типу NEAR на програму початкового завантаження.
(+3) Назва фірми та версії (IBM 4.0)
(+11) Extended BPB – розширений блок параметрів BIOS.
(+36) Фізичний номер дисководу: 0 – дискета; 80h – жорсткий диск.
(+37) Зарезервовано.
(+38) Символ ’)’ – ознака розширеного запису завантаження DOS 4.0
(+39) Серійний номер диску (Створюється підчас форматування).
(+43) Мітка диску.
(+54) Зарезервовано.

 

(+0) – команда переходу в середині сегменту JMPxxxx. Вона необхідна для обходу фор матованої зони сектору та передачі керування програмі завантаження.

(+11) – містить деякі характеристики логічного диску, що використовуються драйвером диску. Це звичайний (BPB) та розширений блоки параметрів BIOS.

 

Формат звичайного та розширеного блоків параметрів BIOS

Зміщення Розмір Вміст
Звичайний блок параметрів BIOS
(+0) Число байтів у одному секторі диску
(+2) Число секторів в одному кластері диску
(+3) Число зарезервованих секторів
(+5) Число таблиць FAT
(+6) Максимальне число дескрипторів файлів, що може міститися в кореневому каталозі диску.
(+8) Загальне число на носії даних (у розділі DOS)
(+10) Байт – описувач носія данх
(+11) Число секторів, що займає одна копія FAT
Розширений блок параметрів BIOS
(+13) Число секторів на доріжці
(+15) Число магнітних головок
(+17) Число невидимих секторів для розділу, який за розміром менший 32 МБайти
(+19) Число невидимих секторів для розділу, який за розміром перевищує 32 МБайти (тілики для DOS 4.0)
(+21) Загальне число секторів диску для розділу, який за розміром перевищує 32 МБайти

 

Невидимі сектори не належать жодному логічному диску. Вони можуть містити основну або вторинну таблиці розділів диску.

Байт – описувач носія даних – служить для ідентифікації носія та містить значення, що характеризують носій за числом сторін та числом секторів на доріжці, наприклад:

FFh – 2 сторони, 8 секторів на доріжці;

FEh – 1 сторони, 8 секторів на доріжці;

EDh – 2 сторони, 9 секторів на доріжці;

FCh – 1 сторони, 9 секторів на доріжці;

F9h – 2 сторони, 15 секторів на доріжці;

F8h – жорсткий диск.

 

Використання BOOT-сектору

DOS надає програмі можливість працювати з так званими логічними номерами секторів. Це номери секторів в середині логічного диску. Для адресації сектору при допомозі функцій BIOS необхідно вказувати номер доріжки, номер головки та номер сектора на доріжці. DOS організує „наскрізну” нумерацію секторів, при якій кожному сектору логічного диску присвоюється свій унікальний номер. Порядок нумерації вибраний таким, що при послідовному збільшенні номера сектора спочатку збільшується номер головки, потім номер доріжки. Це зроблено для скорочення переміщень блоку головок при звертанні до послідовних логічних номерів секторів.

Наприклад: Для дискети з 9-а секторами на доріжці. Сектор з логічним номер 1 розташований на нульовій доріжці і для звернення до нього використовується нульова головка. Це самий перший сектор на доріжці. В термінах BIOS він має номер 1. Наступний сектор на нульовій доріжці має логічний номер 2, останній сектор на нульовій доріжці має логічний номер 9. Сектор з логічним номером 10 розташований також на нульовій доріжці. Це також самий перший сектор на доріжці, а для доступу до нього використовується головка з номером 1. І так далі, при збільшенні логічного номеру сектора змінюються номера головки та доріжок.

Для роботи з логічним диском (або дискетою) на рівні логічних номерів секторів, DOS надає програмам два переривання: INT25h – читання сектору за його логічним номером, INT26h – запис сектору за його логічним номером.

Вміст BOOT-сектору може бути використаний для визначення загальної кількості секторів на логічному диску (наприклад, в програмах перевірки секторів диску на читання), для роботи з таблицею розміщення файлів FAT та інше.

 

Таблиця розміщення файлів

Одразу після сектору завантаження на логічному диску знаходяться сектори, що містять таблицю розміщення файлів FAT (File Allocation Table).

Згадаємо, як організовано зберігання інформації на диску. Доступ до цієї інформації може виконуватись як для послідовного, так і для прямого методом доступу. Прямий метод дозволяє встановлювати головки зразу потрібний файл (або на потрібний запис файлу). Наприклад, ми можемо задати номер сектору на певній доріжці та номер головки. (Є ще послідовний метод доступу).

Але метод доступу – це ще не все. Важливе значення має спосіб розподілу місця на диску для файлів.

В MS-DOS (UNIX, OS/2) при створенні файлу для нього не задається початковий розподіл пам’яті в доріжках або секторах. Із збільшенням розміру файлу ОС виділяє цьому файлу сектори з тих що є вільними (не використовуються іншими файлами). При цьому файл розміщується не обов’язково в суміжних областях диску, він може бути розкиданий по різним доріжкам та секторам. В такому випадку ОС повинна вести облік ділянок диску, що використовуються. Для кожного файла вона повинна зберігати інформацію якому файлові які ділянки диску виділені. В MS-DOS для цього використовується FAT.

Весь логічний диск розбивається ОС на ділянки однакового розміру, що називаються кластерами. Кластер може вміщувати декілька секторів. Для кожного кластера FAT має свою індивідуальну комірку, в якій зберігається інформація про використання даного кластеру. Іншими словами FAT – це масив, що містить інформацію про кластери. Розмір цього масиву визначається загальною кількістю кластерів на логічному диску (саме кластерів, а не секторів).

Усі вільні кластери помічені нулями. Якщо файл розташований в декількох кластерах, то ці кластери зв’язані у список. Для зв’язаних у список кластерів елементи таблиці FAT вміщують номери наступних кластерів, що використовуються даним файлом. Кінець списку відмічається в таблиці спеціальним значенням. Номер першого кластера, що належить файлу, зберігається в елементі каталогу, що описує цей файл.

Утиліти ОС та деякі спеціальні утиліти перевіряють диск на предмет наявності дефектних областей. Кластери, що знаходяться в цих дефектних областях, відмічаються в FAT як погані (bad) та не використовуються ОС.


Читайте також:

  1. I. ОБРАЗОВАНИЕ СОЕДИНЕННЫХ ШТАТОВ 14 страница
  2. А. В. Дудник 1 страница
  3. А. В. Дудник 10 страница
  4. А. В. Дудник 11 страница
  5. А. В. Дудник 12 страница
  6. А. В. Дудник 2 страница
  7. А. В. Дудник 3 страница
  8. А. В. Дудник 4 страница
  9. А. В. Дудник 5 страница
  10. А. В. Дудник 6 страница
  11. А. В. Дудник 7 страница
  12. А. В. Дудник 8 страница




Переглядів: 485

<== попередня сторінка | наступна сторінка ==>
КОНСПЕКТ ЛЕКЦІЙ 4 страница | КОНСПЕКТ ЛЕКЦІЙ 6 страница

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.024 сек.