Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
putanya_do_kkr_i_isputy (1).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
134.66 Кб
Скачать
  1. Мультипрограмування на основі переривань

Мультипрограмування на основі переривань

Переривання - це спосіб перемикання процесора на виконання потоку команд, відмінного від того який

виконувався, з наступним поверненням.

Розрізняють наступні типи переривань:

· зовнішні (апаратні),

· внутрішні (виключення -exception),

· програмні

Зовнішні переривання відбуваються асинхронно, тобто відбуваються у випадковий момент часу в процесі

виконання програми (наприклад, від зовнішніх пристроїв), внутрішні - синхронно, тобто виникають із конкретної причини й

можна вгадати виникнення такого переривання (наприклад, при розподілі на нуль).

Програмні переривання не є "щирими" перериваннями. Вони виникають при виконанні певної команди

процесора й застосовуються в тому випадку, коли необхідно виконати деякі привілейовані дії (наприклад звернеться до

порту комп'ютера).

Перериванням рівного значення приписуються рівні пріоритетів (рівні - IRQ)

Кожне з переривань обслуговується оброблювачем переривань (Interrupt Service Routine).

Зовнішні - обробляються драйверами, внутрішні - модулями ядра, програмні - процедурами з API

  1. Механізм переривань, та системні виклики

Механізм переривань

Механізм переривань підтримується апаратними й програмними засобами ОС

Розрізняють векторний (vectored) і опитуваний (polled) типи переривань. В обох способах процесору передається

інформація про рівень пріоритету.

При векторному типі переривання в процесор передається також адреса оброблювача переривання

Для векторного типу схема обробки така: електричний сигнал - запит на підтвердження - вектор - оброблювач

(наприклад, для шини VMEbus)

Для опитуваного схема обробки така: сигнал - запит на підтвердження - рівень пріоритету (наприклад, шина

ISA). Кожен рівень пов'язаний з декількома пристроями. Викликаються всі оброблювачі даного рівня. Один пізнає свій

пристрій.

Системні виклики

З поняттям переривань тісно зв'язане поняття системних викликів. Системний виклик дозволяє додатку

звернеться до процедури ОС, при цьому використається механізм програмних переривань. У результаті спрощується

структура додатка, дозволяються дії, заборонені в користувальницькому режимі.

У більшості ОС системних викликів здійснюються через диспетчер системних викликів

Наприклад для транслятора Сі системний виклик - це звичайний виклик функції. Транслятор має спеціальні

функції «заглушки» (Stab). У цих функціях присутня Сі-функція з викликом програмного переривання.

Системні виклики можуть виконаються синхронно й асинхронно.

Більшість виконуються синхронно

Операції вводу-виводу - асинхронно. У нових ОС кількість асинхронних викликів – збільшується

  1. Взаємодіючі процеси

Взаємодіючі процеси

Для досягнення поставленої мети різні процеси (можливо, навіть приналежним різним користувачам) можуть

виконуватися псевдопаралельно на одній обчислювальній системі або паралельно на різних обчислювальних системах,

взаємодіючи між собою.

Для чого процесам потрібно займатися спільною діяльністю? Які існують причини для їхньої кооперації?

· Підвищення швидкості роботи. Поки один процес очікує настання деякої події (наприклад,

закінчення операції вводу-виводу), інші можуть займатися корисною роботою, спрямованої на рішення

загального завдання. У багатопроцесорних обчислювальних системах програма розбивається на окремі

шматочки, кожний з яких буде виконуватися на своєму процесорі.

· Спільне використання даних. Різні процеси можуть, приміром, працювати з однієї й тією же

динамічною базою даних або з поділюваним файлом, спільно змінюючи їхній уміст.

· Модульна конструкція якої-небудь системи. Типовим прикладом може служити мікроядерний

спосіб побудови операційної системи, коли різні її частини являють собою окремі процеси, взаємодіючі шляхом

передачі повідомлень через мікро ядро.

· Нарешті, це може бути необхідно просто для зручності роботи користувача, що бажає,

наприклад, редагувати й налагоджувати програму одночасно. У цій ситуації процеси редактори повинні вміти

взаємодіяти один з одним.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]