
- •Операційні системи Конспект лекцій
- •1. Введення
- •1.1. Предмет і завдання курсу
- •1.2. Рекомендації по літературі
- •1.3. Короткий нарис історії ос
- •1.3.1. Передісторія ос
- •1.3.2. Пакетні ос
- •1.3.3. Ос з поділом часу
- •1.3.4. Однозадачні ос для пеом
- •1.3.5. Багатозадачні ос для пк з графічним інтерфейсом
- •1.4. Класифікація ос
- •1.5. Критерії оцінки ос
- •1.5.2. Ефективність
- •1.5.3. Зручність
- •1.5.4. Масштабованість
- •1.5.5. Здатність до розвитку
- •1.6. Основні функції і структура ос
- •1.7. Ос, що використовуються в подальшому викладі
- •1.7.2. Windows
- •1.7.3. Unix
- •2. Управління пристроями
- •2.1. Основні завдання управління пристроями
- •2.2. Класифікація периферійних пристроїв і їх архітектура
- •2.3. Переривання
- •2.4. Архітектура підсистеми вводу / виводу
- •2.5. Способи організації введення / виводу
- •2.5.1. Введення / висновок з опитування і по перериваннях
- •2.5.2. Активне і пасивне очікування
- •2.5.3. Синхронний і асинхронний ввід / вивід
- •2.6. Буферизація і кешування
- •2.6.1. Поняття буферизації
- •2.6.2. Згладжування нерівномірності швидкостей процесів
- •2.6.3. Розпаралелювання введення та обробки
- •2.6.4. Узгодження розмірів логічної та фізичної записи
- •2.6.5. Редагування при інтерактивному введенні
- •2.6.6. Кешування дисків
- •2.6.7. Випереджаюче читання.
- •2.7. Драйвери пристроїв
- •2.8. Управління пристроями в ms-dos
- •2.8.1. Рівні доступу до пристроїв
- •2.8.2. Драйвери пристроїв в ms-dos
- •2.8.3. Управління символьними пристроями
- •2.8.4. Управління блоковими пристроями
- •2.8.4.1. Структура диска
- •2.8.4.2. Розділи і логічні томи
- •2.8.4.3. Засоби доступу до дисків
- •2.9. Управління пристроями в Windows
- •2.9.1.1. Драйвери пристроїв в Windows
- •2.9.1.2. Доступ до пристроїв
- •2.10. Управління пристроями в unix
- •2.10.1. Драйвери пристроїв в unix
- •2.10.2. Пристрій як спеціальний файл
- •3. Управління даними
- •3.1. Основні завдання управління даними
- •3.2. Характеристики файлів та архітектура файлових систем
- •3.3. Розміщення файлів
- •3.4. Захист даних
- •3.5. Поділ файлів між процесами
- •3.6. Файлова система fat і управління даними в ms-dos
- •3.6.1. Загальна характеристика системи fat
- •3.6.2. Структури даних на диску
- •Структура записи каталога файловой системы fat
- •3.6.4. Робота з файлами в ms-dos
- •3.6.4.1. Системні функції
- •3.6.4.2. Доступ до даних
- •3.6.4.3. Структури даних у пам'яті
- •3.6.5. Нові версії системи fat
- •3.7. Файлові системи і управління даними в unix
- •3.7.1. Архітектура файлової системи unix
- •3.7.1.1. Жорсткі і символічні зв'язку
- •3.7.1.2. Монтовані томи
- •3.7.1.3. Типи і атрибути файлів
- •3.7.1.4. Управління доступом
- •3.7.2. Структури даних файлової системи unix
- •3.7.3. Доступ до даних в unix
- •3.7.4. Розвиток файлових систем unix
- •3.8. Файлова система ntfs і управління даними в Windows
- •3.8.1. Особливості файлової системи ntfs
- •3.8.2. Структури дискових даних
- •3.8.2.1. Головна таблиця файлів
- •3.8.2.2. Атрибути файлу
- •3.8.3. Доступ до даних
- •3.8.4. Захист даних
- •3.8.4.1. Аутентифікація користувача
- •3.8.4.2. Дескриптор захисту
- •4. Управління процесами
- •4.1. Основні завдання управління процесами
- •4.2. Реалізація багатозадачного режиму
- •4.2.1. Поняття процесу і ресурсу
- •4.2.2. Квазіпараллельний виконання процесів
- •4.2.3. Стану процесу
- •4.2.4. Невитісняючаі витісняюча багатозадачність
- •4.2.5. Дескриптор і контекст процесу
- •4.2.6. Реєнтерабельним системних функцій
- •4.2.7. Дисципліни диспетчеризації та пріоритети процесів
- •4.3. Проблеми взаємодії процесів
- •4.3.1. Ізоляція процесів та їх взаємодія
- •4.3.2. Проблема взаємного виключення процесів
- •4.3.3. Двійкові семафори Дейкстри
- •4.3.4. Засоби взаємодії процесів
- •4.3.4.1. Цілочисельні семафори
- •4.3.4.2. Семафори з множинним очікуванням
- •4.3.4.3. Сигнали
- •4.3.4.4. Повідомлення
- •4.3.4.5. Спільна пам'ять
- •4.3.4.6. Програмні канали
- •4.3.5. Проблема тупиків
- •4.4. Управління процесами в ms-dos
- •4.4.1. Процеси в ms-dos
- •4.4.2. Середа програми
- •4.4.3. Запуск програми
- •4.4.4. Завершення роботи програми
- •4.4.5. Перехоплення переривань і резидентні програми
- •4.5. Управління процесами в Windows
- •4.5.1. Поняття об'єкта у Windows
- •4.5.2. Процеси і нитки
- •4.5.3. Планувальник Windows
- •4.5.4. Процес і нитка як об'єкти
- •4.5.5. Синхронізація ниток
- •4.5.5.1. Способи синхронізації
- •4.5.5.2. Об'єкти синхронізації та функції очікування
- •4.5.5.3. Типи об'єктів синхронізації
- •4.5.5.4. Критичні секції
- •4.5.6. Повідомлення
- •4.6. Управління процесами в unix
- •4.6.1. Життєвий цикл процесу
- •4.6.2. Групи процесів
- •4.6.3. Програмні канали
- •4.6.4. Сигнали
- •4.6.5. Засоби взаємодії процесів в стандарті posix
- •4.6.6. Планування процесів
- •4.6.6.1. Стану процесів в unix
- •4.6.6.2. Пріоритети процесів
- •4.6.7. Інтерпретатор команд shell
- •5. Управління пам'яттю
- •5.1. Основні завдання управління пам'яттю
- •5.2. Віртуальні й фізичні адреси
- •5.3.1. Настроювання адрес
- •5.3.2. Розподіл з фіксованими розділами
- •5.3.3. Розподіл з динамічними розділами
- •5.4. Сегментна організація пам'яті
- •5.5. Сторінкова організація пам'яті
- •5.6. Порівняння сегментної і сторінкової організації
- •5.7. Управління пам'яттю в ms-dos
- •5.8. Управління пам'яттю в Windows
- •5.8.1. Структура адресного простору
- •5.8.3. Відображення виконуваних файлів
- •5.8.4. Файли, відображувані на пам'ять
- •5.8.5. Стеки і купи
- •5.9. Управління пам'яттю в unix
- •Література
2.8.4. Управління блоковими пристроями
2.8.4.1. Структура диска
Основним видом блокових пристроїв є магнітні та інші диски, тому почнемо з розгляду структури диска (рис. 2-7).
Рис. 1‑7
Поверхня нового магнітного диска покрита однорідним шаром магнітного матеріалу. У дискети використовується або одна поверхню, або (частіше) обидві поверхні. Число поверхонь жорсткого дискового тому визначається кількістю дисків, з яких зібраний тому.
Першою операцією, яка має бути виконана з диском, є низькорівневе форматування. Воно полягає в розмітці поверхні на доріжки магнітного запису, розділені на сектори. Відстань між доріжками визначається кроком переміщення головок читання / запису, а розбиття на сектори виконується програмно, шляхом запису даних на доріжки в моменти, розраховані на підставі відомої швидкості обертання диска. Для всіх операцій з диском, крім низькорівневого форматування, сектор є мінімальною одиницею читання або запису даних.
Сукупність доріжок однакового радіусу на всіх поверхнях диска називається циліндром.
Структура сектора показана на рис. 2-8.
Рис. 1‑8
Сектор складається із заголовка, блока даних і контрольної інформації (контрольної суми), яка служить для перевірки правильності зчитування сектора.
Тема сектора містить фізичну адресу сектора і його розмір. Фізична адреса складається з трьох чисел: номер циліндра, номер поверхні і номер сектора на доріжці. Найперший сектор диска має адресу (0, 0, 1). Розмір сектора на IBM-сумісних комп'ютерах завжди дорівнює 512 байт.
Один час було модно використовувати нестандартний розмір окремих секторів на дискеті (наприклад, 1024 байти) для утруднення несанкціонованого копіювання. Дискету, що містить нестандартний сектор, могла правильно прочитати тільки програма, якою було точно відомо про наявність такого сектора.
Між секторами і всередині секторів є проміжки, які використовуються апаратурою при пошуку заданого сектора.
Нумерація секторів не обов'язково ведеться в порядку їх розміщення на доріжці. Якщо швидкість наявної апаратури недостатня для того, щоб встигнути прочитати і передати в пам'ять дані з усією доріжки за час одного обороту диска, то система при форматуванні нумерує сектори «через один» або навіть «через два». Наприклад, при 9 секторах на доріжці вони можуть бути пронумеровані «через один» в такому порядку: 1, 6, 2, 7, 3, 8, 4, 9, 5. Після читання сектора 1 у контролера диска є час передати прочитані дані, поки до головки читання не підійде сектор 2. В результаті вся доріжка може бути прочитана за два оберти диска.
2.8.4.2. Розділи і логічні томи
Загальна структура дискет і жорстких дисків різняться між собою. Ці структури показані на рис. 2-9.
Рис. 1‑9
Початковий сектор дискети (рис. 2-9, а) прийнято називати BOOT-сектором. Він містить кількісні дані про дискеті (розмір секторів, кількість секторів на кожній доріжці і на всій дискеті, число поверхонь і т.п.), мітку (назва) та серійний номер дискети, а також дані про файлову систему. Крім того, якщо дискета містить системні файли ОС, то в BOOT-секторі знаходиться також невелика програма початкового завантаження, яка зчитує один сектор ОС і передає йому управління для продовження завантаження. Всі інші сектори дискети
можуть використовуватися ОС для зберігання її файлів і інших даних. Загальна кількість секторів на дискеті не може перевищувати 216 (насправді, їх значно менше).
Скажіть швидко, скільки приблизно секторів містить стандартна Тридюймові дискети?
Для жорсткого диска (рис. 2-9, б) початковий сектор називається MBR (Master Boot Record, головна завантажувальна запис). Він теж може містити програму початкового завантаження, але, крім того, містить таблицю розділів (partition table), яка описує розбиття жорсткого диска на розділи.
Таблиця може містити від 1 до 4 записів про розділи. Кожен запис містить тип розділу, число секторів в ньому, фізичні адреси початку і кінця розділу.
Можливі наступні типи розділів.
· Звичайний розділ. Його структура точно така ж, як у дискети, тобто такий розділ починається з BOOT-сектора, а загальне число секторів не перевищує 216. Таким чином, загальний розмір розділу не може перевищувати 32 Мб.
· Великий розділ. Він відрізняється від звичайного тим, що число секторів може досягати 232. Це дозволяє описувати великі розділи розміром до 2048 Гб.
· Розширений розділ. Його структура аналогічна структурі всього жорсткого диска, тобто початковий сектор розділу - не BOOT, а MBR-сектор. Аналогія не зовсім повна, оскільки таблиця розділів в MBR розширеного розділу може містити не більше двох записів, причому перша з них повинна описувати або звичайний, або великий розділ, а другий запис, якщо вона є, описує ще один розширений розділ.
· Розділи інших ОС (наприклад, UNIX).
Звичайні та великі розділи називаються також логічними томами або логічними дисками, на відміну від фізичних дисків. Звичайна буквена нумерація дисків A, B, C, D і т.д. відноситься саме до логічних томів. Для дискет поняття фізичного та логічного тому збігаються.
Спочатку MS-DOS підтримувала тільки звичайні розділи на жорсткому диску. У 80-і роки здавалося, що 32 Мб - це дуже великий обсяг диска. Коли з'явилися диски обсягом у кілька сотень мегабайт, була придумана матрешечний структура розширених розділів, що дозволило на одному фізичному томі розмістити скільки завгодно логічних томів по 32 Мб. Потім були реалізовані великі розділи, що зажадало від розробників MS-DOS внести істотні зміни в програмний інтерфейс і реалізацію засобів роботи з дисками. Після цього використання розширених розділів стало необов'язковим, якщо користувачеві досить мати не більше чотирьох логічних томів на одному фізичному диску.