- •Питання до контрольної роботи та іспиту:
- •Операційна система як віртуальна машина
- •Операційна система як менеджер ресурсів
- •Що таке операційна система? Структура обчислювальної системи
- •Коротка історія еволю
- •Операційна система як захисник користувачів і програм
- •Комп'ютери на основі інтегральних мікросхем. Перші багатозадачні ос
- •Персональні комп'ютери. Класичні, мережні й розподілені системи
- •Взаємодія операційної системи з переферійними пристоями
- •Поняття процесу. Стани процесу.
- •Процес. Рівні планування процесу
- •Критерії планування процесів й вимоги до алгоритмів
- •Параметри планування процесів
- •Гарантоване планування процесів
- •Пріоритетне планування процесів
- •Багаторівневі черги (Multilevel Queue) процесів
- •Створення процесів
- •Створення потоків
- •Планування й диспетчеризація потоків (процесів)
- •Мультипрограмування в системах пакетної обробки, в системах поділу часу, в системах реального часу
- •Мультипроцесорна обробка
- •Мультипрограмування на основі переривань
- •Механізм переривань, та системні виклики
- •Взаємодіючі процеси
- •Категорії засобів обміну інформацією
- •Особливості передачі інформації за допомогою ліній зв'язку
- •Буферизація. Потік уведення/виводу й повідомлення
- •Тупіки. Визначення та умови виникнення тупіків.
- •Основні напрямки боротьби з тупиками та ігнорування проблеми тупиків
- •Способи запобігання тупиків шляхом ретельного розподілу ресурсів. Алгоритм банкіра
- •Запобігання тупиків за рахунок порушення умов виникнення тупиків
- •Фізична організація пам'яті комп'ютера
- •Логічна пам'ять, локальність, зв'язування адрес
- •Функції системи керування пам'яттю
Мультипрограмування на основі переривань
Мультипрограмування на основі переривань
Переривання - це спосіб перемикання процесора на виконання потоку команд, відмінного від того який
виконувався, з наступним поверненням.
Розрізняють наступні типи переривань:
· зовнішні (апаратні),
· внутрішні (виключення -exception),
· програмні
Зовнішні переривання відбуваються асинхронно, тобто відбуваються у випадковий момент часу в процесі
виконання програми (наприклад, від зовнішніх пристроїв), внутрішні - синхронно, тобто виникають із конкретної причини й
можна вгадати виникнення такого переривання (наприклад, при розподілі на нуль).
Програмні переривання не є "щирими" перериваннями. Вони виникають при виконанні певної команди
процесора й застосовуються в тому випадку, коли необхідно виконати деякі привілейовані дії (наприклад звернеться до
порту комп'ютера).
Перериванням рівного значення приписуються рівні пріоритетів (рівні - IRQ)
Кожне з переривань обслуговується оброблювачем переривань (Interrupt Service Routine).
Зовнішні - обробляються драйверами, внутрішні - модулями ядра, програмні - процедурами з API
Механізм переривань, та системні виклики
Механізм переривань
Механізм переривань підтримується апаратними й програмними засобами ОС
Розрізняють векторний (vectored) і опитуваний (polled) типи переривань. В обох способах процесору передається
інформація про рівень пріоритету.
При векторному типі переривання в процесор передається також адреса оброблювача переривання
Для векторного типу схема обробки така: електричний сигнал - запит на підтвердження - вектор - оброблювач
(наприклад, для шини VMEbus)
Для опитуваного схема обробки така: сигнал - запит на підтвердження - рівень пріоритету (наприклад, шина
ISA). Кожен рівень пов'язаний з декількома пристроями. Викликаються всі оброблювачі даного рівня. Один пізнає свій
пристрій.
Системні виклики
З поняттям переривань тісно зв'язане поняття системних викликів. Системний виклик дозволяє додатку
звернеться до процедури ОС, при цьому використається механізм програмних переривань. У результаті спрощується
структура додатка, дозволяються дії, заборонені в користувальницькому режимі.
У більшості ОС системних викликів здійснюються через диспетчер системних викликів
Наприклад для транслятора Сі системний виклик - це звичайний виклик функції. Транслятор має спеціальні
функції «заглушки» (Stab). У цих функціях присутня Сі-функція з викликом програмного переривання.
Системні виклики можуть виконаються синхронно й асинхронно.
Більшість виконуються синхронно
Операції вводу-виводу - асинхронно. У нових ОС кількість асинхронних викликів – збільшується
Взаємодіючі процеси
Взаємодіючі процеси
Для досягнення поставленої мети різні процеси (можливо, навіть приналежним різним користувачам) можуть
виконуватися псевдопаралельно на одній обчислювальній системі або паралельно на різних обчислювальних системах,
взаємодіючи між собою.
Для чого процесам потрібно займатися спільною діяльністю? Які існують причини для їхньої кооперації?
· Підвищення швидкості роботи. Поки один процес очікує настання деякої події (наприклад,
закінчення операції вводу-виводу), інші можуть займатися корисною роботою, спрямованої на рішення
загального завдання. У багатопроцесорних обчислювальних системах програма розбивається на окремі
шматочки, кожний з яких буде виконуватися на своєму процесорі.
· Спільне використання даних. Різні процеси можуть, приміром, працювати з однієї й тією же
динамічною базою даних або з поділюваним файлом, спільно змінюючи їхній уміст.
· Модульна конструкція якої-небудь системи. Типовим прикладом може служити мікроядерний
спосіб побудови операційної системи, коли різні її частини являють собою окремі процеси, взаємодіючі шляхом
передачі повідомлень через мікро ядро.
· Нарешті, це може бути необхідно просто для зручності роботи користувача, що бажає,
наприклад, редагувати й налагоджувати програму одночасно. У цій ситуації процеси редактори повинні вміти
взаємодіяти один з одним.
