
- •Тема 1: Основні поняття обчислювальних систем Призначення та склад системного програмного забезпечення
- •Основні концепції операційних систем
- •Типи операційних систем
- •Основні етапи розвитку операційних систем
- •Функціональні компоненти операційних систем
- •Керування процесами й потоками
- •Керування ресурсами
- •Керування введенням-виведенням
- •Керування файлами та файлові системи
- •Мережна підтримка
- •Тема 2: Архітектура операційних систем Основні принципи побудови операційних систем
- •Принцип модульності
- •Принцип функціональної вибірковості
- •Принцип здатності до генерування
- •Принцип функціональної надмірності
- •Принцип віртуальності
- •Принцип незалежності програм від зовнішніх пристроїв
- •Принцип сумісності
- •Принцип відкритої і нарощуваної ос
- •Принцип мобільності (переносимості)
- •Принцип забезпечення безпеки обчислень
- •Базові поняття архітектури операційних систем
- •Ядро операційної системи
- •Монолітні системи
- •Багаторівневі системи
- •Системи з мікроядром
- •Концепція віртуальних машин
- •Засоби апаратної підтримки операційних систем
- •Інтерфейс прикладного програмування
- •Варіанти реалізації api
- •Особливості архітектури unix і Linux
- •Особливості побудови ос Linux
- •Особливості архітектури Windows xp
- •Компоненти режиму ядра
- •Компоненти режиму користувача
- •Об’єктна архітектура Windows xp
- •Тема 3: Процеси та потоки
- •Базові поняття процесів та потоків
- •Блок керування процесом
- •Операції над процесами
- •Обробка переривань
- •Алгоритми планування процесів
- •Витісняючі та невитісняючі алгоритми планування
- •Нитки, потоки (Thread)
- •Керування процесорами
- •Планування з переключення та без переключення
- •Лекція 4: Ядро операційної системи
- •Основні функції ядра
- •Асинхронні паралельні процеси
- •Взаємо-виключення
- •Семафори
- •Кільцевий буфер
- •Конвеєр (програмний канал)
- •Черги повідомлень (Queue)
- •Лекція 5. Керування ресурсами
- •Керування пам’яттю
- •Ієрархія пам’яті
- •Розподіл пам’яті
- •Зв’язний розподіл пам’яті для одного користувача
- •Мультипрограмування з фіксованими розділами
- •Мультипрограмування із змінними розділами
- •Боротьба з фрагментацією
- •Стратегії розміщення інформації в пам’яті
- •Системи з розподілом часу. Сторінкова організація пам’яті. Концепція віртуальної (уявної) пам’яті.
- •Принцип кешування даних
- •Лекція 6. Керування даними Файлова система
- •Функції файлової системи
- •Ієрархія даних
- •Об’єднання в блоки та буферизація
- •Організація файлів
- •Методи доступу
- •Характеристики файлів
- •Файлова система
- •Виділення та звільнення місця в пам’яті
- •Зв’язаний розподіл пам’яті
- •Незв’язаний розподіл пам’яті
- •1) Розподіл за допомогою списків секторів
- •2) Поблочний розподіл
- •Дескриптор файлу (file descriptor)
- •Матриця керування доступом
- •Керування доступом в залежності від класів користувачів
- •Копіювання та відновлення інформації
- •Планування роботи з дисковою пам’яттю
- •Призначення планування
- •Цільові характеристики принципів планування
- •Оптимізація пошуку циліндру
- •Оптимізація за часом очікування записів
- •Архітектура сучасних файлових систем
- •Лекція 8. Основи організації ms-dos
- •Будова та функції основних складових дос
- •Керування пам’яттю
- •Відображена пам’ять
- •Розширена пам’ять
- •Висока пам’ять
- •Верхня пам’ять
- •Драйвери верхньої та розширеної пам’яті
- •Завантажувані модулі com та exe – файли
- •Логічна структура диску в ms-dos
- •Формат елементів таблиці розділів
- •Запис завантаження (boot)
- •Використання boot-сектору
- •Визначення формату fat
- •Формат fat
- •Файли та каталоги
- •Недоліки ms-dos
- •Переваги які надає користувачам Windows
- •Windows як операційна оболонка
- •Обмін даними в Windows
- •Зв’язування чи вбудовування
- •Первинність повідомлень: механізм повідомлень
- •Незалежна (preemptive) багатозадачність
- •Взаємодія 32– та 16–розрядних кодів
- •Робота з 16–розрядними продуктами
- •Робота з dos–продуктами
- •Робота 32–розрядних Windows–продуктів
- •Вдосконалення розподілу системних ресурсів
- •Vcache – 32–розрядний дисковий кеш
- •Варіанти модифікацій ос Windows xp
- •Нові характеристики реалізовані в Windows xp
- •Продуктивність
- •Лекція 8. Ос unix
- •Ядро ос unix
- •Генерування ос
- •Процеси
- •Початкове завантаження. Процеси 0 та 1
- •Файлова система unix
- •Будова файлової системи unix
- •Каталоги
- •Тема 1: Основні поняття обчислювальних систем 1
- •Тема 2: Архітектура операційних систем 9
- •Тема 3: Процеси та потоки 25
Використання 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) та не використовуються ОС.
Таким чином FAT – це масив інформації про використання кластерів диску – вміщує однозв’язні списки кластерів, що виділені файлам. Номера початкових кластерів файлів зберігаються в каталогах.
На цьому малюнку показані фрагменти кореневого каталога диску С: та елементи FAT для файлів AUTOEXEC.BAT та CONFIG.SYS. FAT в комірці 11 вміщує число 12 – номер наступного кластера, що виділений файлу AUTOEXEC.BAT, комірка з номером 12 вміщує число 13 і т.д. Остання комірка, що відповідає останньому кластеру цього файлу, вміщує значення FF. Кластери можуть і не розташовуватись один за одним, наприклад ланцюжок кластерів, що виділений для файлу CONFIG.SYS.
Існує два формати FAT – 12-бітовий та 16-бітовий. 12-бітовий – зручний для дискет з невеликою кількістю секторів. В цьому випадку вся FAT розміщується цілком в одному секторі. Якщо диск такий, що для представлення всіх секторів 12 розрядів недостатньо, можна збільшити розмір кластера, наприклад до 8 секторів. Але більший розмір кластера приводить до неефективного використання дискового простору. Це тому, що мінімальний елемент, який виділяється файлу – кластер, має занадто великий розмір. Навіть для файлу, що має довжину 1 байт виділяється повний кластер. Таким чином, якщо розмір кластера 8 секторів, то для зберігання 1 байта буде використано 4 Кбайти дискової пам’яті.
При використанні 16-бітного FAT ОС може працювати з логічним диском, який має розмір більший 32 Мбайти. DOS при 16-бітному FAT, та кластером на 4 сектори може працювати з розділами, що досягають 134 Мбайтів.