
- •Тема 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
Боротьба з фрагментацією
Фрагментація — наявність великої кількості несуміжних ділянок вільної основної пам’яті невеликого розміру (фрагментів). Фрагменти настільки малі, що жодна з програм, що надходить в систему, не може розміститись ні в одній з ділянок, хоча сумарний об’єм фрагментів досить великий.
Розділи, що переміщаються. Це один з методів боротьби з фрагментацією, коли всі заняті ділянки переміщуються або в сторону молодших адрес, або старших адрес, так, щоби вся вільна пам’ять створювала єдину вільну область.
Тобто ОС ще повинна час від часу копіювати вміст розділів з одного місця пам’яті в інше, коректуючи таблиці вільних і зайнятих областей. Це процедура „стискання”. Стискання може виконуватись або при кожному завершенні задачі, або тільки тоді, коли для нової задачі нема вільного розділу достатнього розміру.
В першому випадку треба меншої обчислювальної роботи при коректуванні таблиць, а в другому — не так часто виконується процедура стискання. Оскільки програми переміщуються по основній пам’яті під час свого виконання, то перетворення адрес повинно виконуватись динамічним способом.
Хоча процедура стискання і приводить до більш ефективного використання пам’яті, вона може вимагати значного часу, що часто в результаті не дає бажаних переваг.
Стратегії розміщення інформації в пам’яті
1. Стратегія найбільш відповідного (підходящого). Завдання розміщається в тій вільній ділянці, в якій йому найбільш „тісно”, так що залишається мінімально можливий простір, що не використовується.
2. Стратегія першого відповідного. Завдання розміщується в першу ліпшу вільну ділянку основної пам’яті достатнього розмір. (Швидкість).
3. Стратегія найменш відповідного. Завдання розміщується у вільну ділянку, що має найбільш далекий розмір, тобто максимально вільну ділянку.
Третя стратегія має наступне обґрунтування. Після розміщення програми в найбільш вільну ділянку, вільна ділянка, що залишається теж буде великою і в ньому можна розмістити відносно велику нову програму.
Всі системи, що розглядалися, припускають, що програми користувача залишаються в основній пам’яті до моменту звернення.
Схема, що називається „стопінг”, не накладає такого обмеження.
Всю ОП в кожний біжучий момент часу займає одне завдання. Це завдання виконується доти, доки не вийде певний час, а потім звільнюється як пам’ять, так і ЦП для наступного завдання.
Така програма працює до того часу, доки не відбудеться одна з таких подій:
- видали запит на ввід/вивід;
- з’явиться сигнал таймера;
- програма закінчилась.
Область свопінгу для цієї програми копіюється в зовнішню пам’ять. Образ ОП для наступної програми завантажується в область свопінгу. Програма виконується до того часу, доки не відбудеться одна з подій.
Системи з розподілом часу. Сторінкова організація пам’яті. Концепція віртуальної (уявної) пам’яті.
Суть концепції віртуальної пам’яті полягає в тому, що адреси, до яких звертається процес, який виконується, відокремлюються від адрес, що реально існують в первинній пам’яті.
Ті адреси, на які робить посилання процес, що виконується, називаються віртуальними адресами, а ті, що існують в первинній пам’яті, - називаються реальними (або фізичними) адресами. Діапазон віртуальних адрес, до яких може звернутися працюючий процес, називаються простором віртуальних адрес (V) цього процесу.
Діапазон реальних адрес, що існують в конкретному комп’ютері, називаються простором реальних адрес (R) цього комп’ютера.
Незважаючи на те, що процеси звертаються тільки до віртуальних адрес, в дійсності вони повинні працювати з реальною пам’яттю. Тому, під час виконання процесу, віртуальні адреси необхідно перетворювати в реальні, причому це потрібно робити швидко, тому що в іншому випадку ефективність машини буде знижуватись, а ефективність віртуальної пам’яті падати.
Віртуальним називаються ресурс, якому в уяві користувача (програміста) або з точки зору програми користувача, притаманні якості, яких у нього в дійсності нема.
Так користувачу може бути надана в розпорядження віртуальна основна пам’ять, розмір якої перевищує всю реальну основну пам’ять, що є в системі. Програміст пише програми так, нібито в його розпорядженні є однорідна оперативна пам’ять великого об’єму, але в дійсності всі дані, що використовуються програмою, зберігаються на одному або декількох різнорідних запам’ятовуючих пристроях (звикло на дисках), і при необхідності частинами відображаються в реальну пам’ять.
Таким чином, віртуальна пам’ять – це сукупність програмно – апаратних засобів, що дозволяють програмістам писати програми, розмір яких перевищує реальну основну пам’ять. Для цього віртуальна пам’ять повинна розв’язувати такі задачі:
1. Розміщувати дані в запам’ятовуючих пристроях різного типу (ОП, диск)
2. Переміщувати дані при необхідності між запам’ятовуючими пристроями різного типу.
3. Перетворювати віртуальні адреси у фізичні.
Всі ці дії виконуються автоматично, без участі програміста. Тобто механізм віртуальної пам’яті є прозорим по відношенню до користувача.
Є різні механізми, наприклад: динамічного перетворення адрес (ДАТ) під час виконання процесів.
Суміжні адреси віртуального адресного простору не обов’язково будуть суміжними в реальній пам’яті. Таким чином, користувач звільнюється від необхідності враховувати розміщення своїх процедур і даних в реальній пам’яті Він пише програми найбільш природним чином.
Комп’ютер розглядається тільки як логічний засіб, що забезпечує реалізацію необхідних алгоритмів, а не фізична машина з унікальними характеристиками.
Стратегії керування віртуальною пам’яттю поділяються на три категорії:
Стратегія вштовхування – мета – визначити, коли треба переписати чергову сторінку або сегмент в основну пам’ять.
Способи організації пам’яті
Реальна |
Реальна |
Віртуальна |
||||
Системи з одним користувачем |
Мультипрограмні системи з реальною пам’яттю |
Мультипрограмні системи з віртуальною пам’яттю |
||||
З фіксованими розділами |
Із змінними розділами |
Чисті сторінки |
Чисті сегменти |
Комбінація сторінок і сегментів |
||
Модулі абсолютні |
Модулі, що переміщуються |
|
Стратегія розміщення – мета – визначити, в яке місце первинної пам’яті розміщати чергову сторінку або сегмент.
Стратегія виштовхування – визначає, яку сторінку або сегмент треба замінити, щоб звільнити місце для чергової сторінки або сегмента, коли первинна пам’ять повністю зайнята.