Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Перемикання контексту й обробка переривань

Читайте также:
  1. Аналітична обробка матеріалів екологічної експертизи.
  2. Виписки банку, їх перевірка та обробка
  3. Двувидовые глаголы. Особенности их контекстуального употребления. Представление двувидовых глаголов в словарях русского языка.
  4. ДЕЗІНФЕКЦІЯ ТА СТЕРИЛІЗАЦІЯ ПРЕДМЕТІВ ДОГЛЯДУ ЗА ДІТЬМИ (ОБРОБКА МЕНЗУРОК, ГОРЩИКІВ, ІГРАШОК, ПЛЯШЕЧОК, СОСОК, ТЕРМОМЕТРІВ, СПОВИВАЛЬНИХ СТОЛІВ ПІСЛЯ КОРИТУВАННЯ НИМИ).
  5. Збір та обробка фактичного матеріалу.
  6. ОБРОБКА ВІДЕОЗОБРАЖЕНЬ, НЕОБХІДНА ДЛЯ НАКЛАДЕННЯ АНІМАЦІЙНИХ СПЕЦЕФЕКТІВ ДЛЯ ВІДЕОЗАПИСУ, НАУКОВА ВІЗУАЛІЗАЦІЯ
  7. Обробка результатів дослідження та формування матриці анкетного опитування
  8. Обробка ротової порожнини дитини при пліснявці.
  9. Перехоплення виключень. Обробка деяких виключень

3.5.1. Організація перемикання контексту

Найважливішим завданням операційної системи під час керування процесами і потоками є організація перемикання контексту - передачі керування від одного потоку до іншого зі збереженням стану процесора.

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

¨ зберегти стан процесора потоку в деякій ділянці пам’яті (області зберігання стану процесора потоку);

¨ визначити, який потік слід виконувати наступним;

¨ завантажити стан процесора цього потоку із його області зберігання;

¨ продовжити виконання коду нового потоку.

Перемикання контексту звичайно здійснюється із залученням засобів апарат­ної підтримки. Можуть бути використані спеціальні регістри та ділянки пам'яті, які дають можливість зберігати інформацію про поточну задачу (коли розгляда­ють апаратне забезпечення, аналогом поняття «потік» є поняття «задача»), а також спеціальні інструкції процесора для роботи з цими регістрами та ділянками пам'яті.

Розглянемо апаратну підтримку перемикання задач в архітектурі ІА-32. Для збереження стану процесора коленої задачі (вмісту пов’язаних із нею регістрів процесора) використовують спеціальну ділянку пам'яті — сегмент стану задачі TSS. Адресу цієї області можна одержати з регістра задачі TR (це сйстемний ад­ресний регістр).

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

Наступний потік для виконання вибирають відповідно до принципів плану­вання потоків, які ми розглянемо в розділі 4.

 

3.5.2. Обробка переривань

У процесі виконання потік може бути перерваний не лише для перемикання кон­тексту на інший потік, але й у зв'язку із програмним або апаратним перериванням (перемикання контексту теж пов'язане із перериваннями, власне, із перериванням від таймера). Із кожним перериванням надходить додаткова інформація (наприклад, його номер). На підставі цієї інформації система визначає, де буде розміщена ад­реса процедури оброблювача переривання (список таких адрес зберігають у спе­ціальній ділянці пам'яті і називають вектором переривань).

Наведемо приклад послідовності дій під час обробки переривання:

¨ збереження стану процесора потоку;

¨ встановлення стека оброблювача переривання;

¨ початок виконання оброблювача переривання (коду операційної системи); для цього з вектора переривання завантажується нове значення лічильника команд;

¨ відновлення стану процесора потоку після закінчення виконання оброблюва­ча і продовження виконання потоку.

Передача керування оброблювачеві переривання, як і перемикання контексту, може відбутися практично у будь-який момент. Основна відмінність полягає в то­му, що адресу, на яку передається керування, задають на основі номера перери­вання і зберігають у векторі переривань, а також у тому, що код оброблювача не продовжується з місця, де було перерване виконання, а починає виконуватися щораз заново.

Докладніше реалізацію обробки переривань буде розглянуто в розділі 15.

 

3.6. Створення і завершення процесів і потоків

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

 

3.6.1. Створення процесів

Базові принципи створення процесів

Процеси можуть створюватися ядром системи під час її ініціалізації. Наприклад, в UNIX-сумісних системах таким процесом може бути процес ініціалізації систе­ми і nit, у Windows ХР - процеси підсистем середовища (Win32 або POSIX). Та­ке створення процесів, однак, є винятком, а не правилом.

Найчастіше процеси створюються під час виконання інших процесів. У цьому разі процес, який створює інший процес, називають предком, а створений ним процес — нащадком.

Нові процеси можуть бути створені під час роботи застосування відповідно до його логіки (компілятор може створювати процеси для кожного етапу компіляції, веб-сервер — для обробки прибулих запитів) або безпосередньо за запитом кори­стувача (наприклад, з командного інтерпретатора, графічної оболонки або файло­вого менеджера).

 

Інтерактивні та фонові процеси

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

¨ Інтерактивні процеси взаємодіють із користувачами безпосередньо, прийма­ючи від них дані, введені за допомогою клавіатури, миші тощо. Прикладом інтерактивного процесу може бути процес текстового редактора або інтегро­ваного середовища розробки.

¨ Фонові процеси із користувачем не взаємодіють безпосередньо. Зазвичай вони запускаються під час старту системи і чекають на запити від інших застосу­вань. Деякі з них (системні процеси) підтримують функціонування системи (реалізують фонове друкування, мережні засоби тощо), інші виконують спе­ціалізовані задачі (реалізують веб-сервери, сервери баз даних тощо). Фонові процеси також називають службами (services, у системах лінії Windows ХР) або демонами (daemons, в UNIX).

 

«

3.6.2. Ієрархія процесів

Після того як процес-предок створив процес-нащадок, потрібно забезпечити їх­ній взаємозв'язок. Є різні варіанти розв’язання цього завдання.

Можна організувати на рівні ОС однозначний зв’язок «предок-нащадок» так, щоб для кожного процесу завжди можна було визначити його предка. Наприклад, якщо процеси визначені унікальними ідентифікаторами, то для реалізації цього підходу в керуючому блоці процесу-нащадка повинен завжди зберігатися іденти­фікатор процесу-предка або посилання на його керуючий блок.

Таким чином формується ієрархія (дерево) процесів, оскільки нащадки мо­жуть у свою чергу створювати нових нащадків і т. ін. У таких системах звичайно існує спеціальний вихідний процес (в UNIX-системах його називають і nit), з яко­го починається побудова дерева процесів (його запускає ядро системи). Якщо предок завершить виконання процесу перед своїм нащадком, функції предка бере на себе вихідний процес.

З іншого боку, зв'язок «предок-нащадок» можна не реалізовувати на рівні ОС. При цьому всі процеси виявляються рівноправними. Якщо зв’язок «предок-на­щадок» для конкретної пари процесів все ж таки потрібен, за його підтримку від­повідають самі процеси (процес-предок, наприклад, може сам зберегти свій іден­тифікатор у структурі даних нащадка у разі його створення).

Взаємозв’язок між процесами не обмежується лише відношеннями «предок- нащадок». Наприклад, у деяких ОС є поняття сесії (session). Така сесія поєднує всі процеси, створені користувачем за час інтерактивного сеансу його роботи із системою.

о и


Дата добавления: 2014-12-20; просмотров: 34 | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2021 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав