
- •Тема 1: Вступ. Мета та задачі курсу.
- •Типи операційних систем
- •Тема 2: Процеси. Керування процесами
- •Блок керування процесом
- •Операції над процесами
- •Обробка переривань
- •Лекція 4: Ядро операційної системи
- •Основні функції ядра
- •Асинхронні паралельні процеси
- •Взаємо-виключення
- •Семафори
- •Кільцевий буфер
- •Конвеєр (програмний канал)
- •Черги повідомлень (Queue)
- •Алгоритми планування процесів
- •Витісняючі та невитісняючі алгоритми планування
- •Нитки, потоки (Thread)
- •Висновки
- •Лекція 5. Керування ресурсами
- •Керування пам’яттю
- •Ієрархія пам’яті
- •Розподіл пам’яті
- •Зв’язний розподіл пам’яті для одного користувача
- •Мультипрограмування з фіксованими розділами
- •Мультипрограмування із змінними розділами
- •Боротьба з фрагментацією
- •Стратегії розміщення інформації в пам’яті
- •Системи з розподілом часу. Сторінкова організація пам’яті. Концепція віртуальної (уявної) пам’яті.
- •Принцип кешування даних
- •Керування процесорами
- •Планування з переключення та без переключення
- •Лекція 6. Керування даними Файлова система
- •Функції файлової системи
- •Ієрархія даних
- •Об’єднання в блоки та буферизація
- •Організація файлів
- •Методи доступу
- •Характеристики файлів
- •Файлова система
- •Виділення та звільнення місця в пам’яті
- •Зв’язаний розподіл пам’яті
- •Незв’язаний розподіл пам’яті
- •1) Розподіл за допомогою списків секторів
- •2) Поблочний розподіл
- •Дескриптор файлу (file descriptor)
- •Матриця керування доступом
- •Керування доступом в залежності від класів користувачів
- •Копіювання та відновлення інформації
- •Планування роботи з дисковою пам’яттю
- •Призначення планування
- •Цільові характеристики принципів планування
- •Оптимізація пошуку циліндру
- •Оптимізація за часом очікування записів
- •Архітектура сучасних файлових систем
- •Лекція 7. Інтерфейс прикладного програмування api (application program interface)
- •Варіанти реалізації api Перший варіант реалізації
- •Другий варіант реалізації
- •Лекція 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: Процеси. 5
Розподіл пам’яті
В перших комп’ютерах було реалізовано зв’язний розподіл пам’яті — в одному неперервному блоці комірок пам’яті. Тільки після того, як з’явилось мультипрограмування з розділами змінного розміру стало зрозумілим, що значно більш ефективним може бути незв’язний розподіл.
При незв’язаному розподілі пам’яті, програми розбиваються на декілька блоків або сегментів, які розміщуються в основній пам’яті в ділянках які не обов’язково розташовані поряд.
ОС набагато складніше забезпечити незв’язаний розподіл пам’яті, але подібний підхід має важливу перевагу: якщо основна пам’ять має декілька невеликих вільних ділянок замість одного великого, то ОС все ж таки може завантажити та виконати програму, якій в іншому випадку треба було б чекати.
Зв’язний розподіл пам’яті для одного користувача
Кожному користувачу виділяється неперервний сегмент пам’яті. Розмір програм у звичайному випадку обмежується ємністю основної пам’яті, але існує можливість виконання програм, які перевищують за розміром основну пам’ять. Це досягається за допомогою концепції оверлейних сегментів. На рисунку приведено розподіл пам’яті для програми користувача, якій необхідно виділити більший об’єм пам’яті, ніж існуюча ємність ОП.
Мультипрограмування з фіксованими розділами
При розподілі пам’яті при мультипрограмуванні розглядають завантаження програм за абсолютними та змінними адресами.
При використанні абсолютних адрес, у кожному розділі розміщується одне завдання. ЦП швидко переключається з завдання на завдання, створюючи ілюзію одночасного їх виконання.
Трансляція завдань виконується за допомогою асемблерів та компіляторів в абсолютних адресах з розрахунком на виконання тільки в конкретному розділі. Якщо завдання було готове для виконання, а його розділ в цей час був зайнятий, то завдання буде очікувати не дивлячись на те, що інші розділи були вільні.
Переміщаючі компілятори асемблери та завантажувачі створюють модулі, що можуть працювати в довільному розділі.
В таких системах захист пам’яті частіше всього реалізується за допомогою декількох граничних регістрів. Два регістри дозволяють вказувати верхню та нижню межу розділу користувача, або одну з меж та розмір розділу.
Схема розподілу пам’яті при використанні фіксованих розділів приведена на рис. __.
Мультипрограмування із змінними розділами
Коли треба дозволити завданням займати стільки місця (в межах фізичної пам’яті) скільки їм необхідно, тоді межі розділів не фіксуються.
Але яка завгодно схема організації пам’яті дає певні втрати. В цій схемі втрати виникають тоді, коли завдання починають закінчуватись, а в основній пам’яті залишаються вільні ділянки, або „дірки”. Ці „дірки” можна використовувати для розміщення інших завдань, але „дірки” все одно будуть, тільки меншого розміру в які вже неможливо завантажити іншу задачу. В таких випадках використовують об’єднання „дірок” в пам’яті.
Часто буває так, що в усій основній пам’яті залишаються розкиданими окремі „дірки”, які складають значний об’єм пам’яті. Проблема вирішується ущільненням пам’яті.
ОС обирає всі блоки в роботі разом, залишаючи вільну пам’ять у вигляді одної великої ділянки.
При реалізації цього методу керування пам’яттю ОС вирішує такі задачі.
1. Підтримка таблиць вільних і зайнятих областей, в яких вказуються початкові адреси і розміри ділянок пам’яті.
2. При надходженні нової задачі — аналіз запиту, перегляд таблиці вільних областей та вибір розділу пам’яті, розмір якого достатній для розміщення задачі, що надійшла.
3. Завантаження задачі в виділений їй розділ та коректування таблиць вільних та зайнятих областей.
4. Після завершення задачі знову коректування таблиць вільних і зайнятих областей.