
- •Операційні системи
- •1.Принципи побудови ос. Теоретичні основи процесу
- •2. Властивості та класифікація процесів. Життєвий цикл процесу.
- •Арі процесів. Функція fork. Функція exit.
- •Сигнали. Функція wait, waitpid. Функція exec.
- •Ресурси ос. Визначення ресурсу. Властивості та класифікація ресурсів.
- •Концепція віртуалізації. Віртуальна машина.
- •Дисципліни розподілу ресурсів які використовуються в ос.
- •Концепція переривань Теорія переривань
- •Блокування. Сигнали. Сигнальна маска. Функція sigaction.
- •Процеси-демони. Поняття про демони. Основні демони unix. Приклад програми демону
- •Засоби, механізми і підсистеми ос. Системи керування процесами. Дворівнева система керування процесами.
- •Засоби, механізми і підсистеми ос. Рівень довгострокового планування. Схема довгострокового рівня планування.
- •Засоби, механізми і підсистеми ос. Рівень короткострокового планування. Схема рівня планування.
- •Структури даних процесів. Стан процесів у unix. Особливості планувальника unix ( Linux).
- •Дескриптори процесів.
- •Взаємодія між процесами у unix.
- •Канали. Fifo (First InFirst Out). Повідомлення (черги повідомлень).
- •Семафори. Задачі синхронізації.
- •Архітектура та основні питання побудови механізмів синхронізації
- •Семафорна техніка синхронізації та упорядкування процесів.
- •Підсистема введення/виведення системи unix. Драйвери пристроїв. Типи драйверів. Базова архітектура драйверів
- •Файлова підсистема ос. Суперблок. Індексні дескриптори. Імена файлів. Каталоги.
- •Побудова підсистем ядра мультипрограмних ос. Організація віртуальної оп. Основні поняття та принципи віртуалізації пам’яті.
- •Принципи керування пам’яттю у unix. Віртуальна та фізична пам’ять. Сегменти. Сторінковий механізм.
- •Адресний простір процесів. Керування пам’яттю процесу.
- •Планування виконання процесі. Обробка переривань таймеру. Відкладений виклик. Аларми. Контекст процесу.
- •Архітектура віртуальної фс. Віртуальні індексні дескриптори. Монтування фс.
- •Архітектура віртуальної фс. Трансляції імен. Доступ до фс. Файлова таблиця.
- •Архітектура віртуальної фс. Блокування доступу до файлу.
Дисципліни розподілу ресурсів які використовуються в ос.
Сама ідея багатозадачності пов’язана з наявністю черг процесів. Процесор як основний ресурс багатозадачної ОС за чергою надається процесам. Такі черги є завжди при зверненні до принтерів, наборів даних, модулів операційної системи. Використання багатьма процесами ресурсу, який може кожного моменту обслуговувати лише один процес, здійснюється за допомогою дисциплін розподілу ресурсів. Підгрунтям цих дисциплін є сукупність правил, що вони визначають розміщення процесів у черзі, та сукупність правил обирання одного з процесів з черги та надання обраному процесові ресурсу для використання.
Дисципліни формування черг поділяються на два класи: статичний, коли пріоритети процесів задано заздалегідь, та динамічний, за якого пріоритети визначаються в перебігу виконання програми. Найчастіше на практиці використовуються такі дисципліни:
FIFO – перший прийшов, перший обслуговується. Це найбільш проста та широко використовувана на практиці дисципліна. Усі заявки надходять у кінець черги. Першими обслуговуються заявки, які перебувають на початку черги.
LIFO – останній прийшов, перший обслуговується. Теж проста й широко розповсюджена на практиці дисципліна, яка є підгрунтям побудови стекової пам’яті.
Круговий циклічний алгоритм – підгрунтям цієї дисципліни є дисципліна FIFO. Час обслуговування кожного процесу обмежено й визначається квантом надаваного часу, – tk . Якщо запит на використання ресурсу з початку черги обслуговується до кінця за час tk (приміром програму процесу за час tk повністю виконано на процесорі), то він вилучається з черги. Якщо цей запит не встигає обслужитися до кінця, то його обслуговування переривається, – й він переходить у кінець черги.
Дисципліна широко використовується на практиці, зокрема при реалізації режиму розподілу часу. Хоча в цій дисципліні немає явно окресленних пріоритетів, автоматично відбувається дискримінація “довгих” та “коротких” запитів. За найбільш сприятливих умов перебуватимуть “короткі” запити від процесів, для яких потрібен менший час використовування ресурсів. “Короткі” запити мають менший середній час очікування в системі, аніж “довгі” запити. Квант наданого на користування ресурсом часу обирається як компромісне значення: чим менше значення tk, тим більше буде сприяння “коротким” запитам, але більшим буде й час, який витрачається на перерозподіл ресурсів поміж процесами через зростання частості переривань, тим більш несприятливі умови складаються для довгих запитів. На практиці використовуються різні модифікації цього алгоритму.
Багаточергові дисципліни – будуються на підставі безпріоритетних та пріоритетних стратегій обслуговування. Усі нові запити надходять у кінець першої черги. Перший запит з і-тої черги (1 і N) буде обслуговуватись лише тоді, коли всі черги від 1- ої до (і-1)- ої порожні. Якщо за квант часу tk обслуговування запиту повністю завершується, то він полишає систему, інакше – недообслуговуваний запит надходить у кінець черги з номером (і+1). Після обслуговування з черги і система обирає для обслуговування запит з непорожньої черги з найменшим номером. Таким запитом може бути наступний запит з черги і або з черги (і+1), якщо і-та черга є порожня. Новий запит надходить до першої черги (і=1). У такій ситуації після завершення кванта tk, виділеного для обслуговування запиту з черги і, буде обслуговуватись запит 1- ої черги.
Якщо система виходить на обслуговування запитів з черги N, то вони обслуговуються або за дисципліною FIFO (кожна заявка обслуговується до кінця) або за круговим циклічним алгоритмом. Наведена дисципліна теж найшвидше обслуговує усі короткі за часом обслуговування дисципліни. Недоліком системи є витрати часу на переміщування запитів з однієї черги до іншої. Описані дисципліни забезпечують не лише обслуговування черг, але й їхнє формування. Для усіх цих дисциплін є притаманна відсутність пріоритетності запитів за їхнього надходження до системи. Але після надходження кожний новий запит дістає пріоритет, який змінюється в перебігу обслуговування однієї черги або багатьох черг.
Багаточергової дисципліни обслуговування в яку надходять запити, які вже мають певний пріоритет на обслуговування ресурсом. Підгрунтя цієї дисципліни становить описана вище багаточергова дисципліна. Нові запити не обов’язково надходять у 1-шу чергу, а потрапляють у чергу відповідно до пріоритетів, які визначаються параметрами обслуговуваних процесів. Стратегії постановки до черги запитів базуються на абсолютних та відносних пріоритетах.
Обслуговування з абсолютним пріоритетом передбачає наявність у нового запиту, який надійшов до черги, певного пріоритету залежно від параметрів процесів. Найбільш пріоритетні запити потрапляють до черг з найменшими номерами. Обслуговуються першими запити, в яких найвищі пріоритети. Припустімо, що система обслуговує запит з черги з номером і, де 1 і N, й до системи надходить більш пріоритетний запит до черги з номером (і-1). За таких умов обслуговування і-го рівня переривається, – й система розпочинає обслуговувати запит (і-1)-го рівня. Після завершення його обслуговування перерваний запит і-го рівня дообслуговується.
Ця дисципліна ще більше дискримінує високо- та низькопріоритетні запити. Час очікування високопріоритетних запитів зменшується за рахунок ще більшого погіршення в обслуговуванні низькопріоритетних запитів. Виникає проблема переривань процесу виконання та перерозподілу ресурсу; проблему становить також вибір правил, за якими процеси будуть дообслуговуватись: коли їм знову надавати ресурс, враховувати, чи надавався їм ресурс до переривання чи ні, тощо.
Обслуговування з відносним пріоритетом надає ресурс у такий спосіб, що новий, більш пріоритетний запит, не спричиняє переривання обслуговування менш пріоритетного запиту, а очікує на його завершення.
Усі описані дисципліни не враховують взаємозв’язки поміж процесами, а на практиці стратегія розподілу конкретного ресурсу має погоджуватись зі стратегією розподілу інших ресурсів. Реалізація дисциплін розподілу на практиці ускладнюється також через потребу аналізування можливості виникнення тупикових ситуацій, перевірки повноважень на використання кожним процесом певного ресурсу .