для курсача.pptx
- Количество слайдов: 12
ПРЕЗЕНТАЦІЯ НА ТЕМУ: “КЕРУВАННЯ ПРОЦЕСАМИ В ОПЕРАЦІЙНИХ СИСТЕМАХ” Підготував: Студент 2 курсу, 7 групи Блискун Михайлович
Вступ Процес — одне з найважливіших понять у архітектурі операційних систем та програмуванні. Процес — об'єкт операційної системи, контейнер системних ресурсів, призначених для підтримки виконання програми. Коли в середовищі операційної системи запускається прикладна програма, система створює спеціальний об’єкт – процес, – який призначений для підтримки її виконання.
Створення процесу Коли операційна система збирається додати новий процес до тих, які вже перебувають на обліку, вона створює структури даних, що використовуються при управлінні цим процесом і розміщує його адресний простір в основній пам'яті. За допомогою цих дій і створюється новий процес. У середовищі пакетної обробки процес створюється у відповідь на надходження завдання; в інтерактивному середовищі процес створюється при спробі нового користувача увійти в систему
Завершення процесів У будь-якій комп'ютерній системі повинні бути засоби, що дозволяють визначити, закінчилося виконання процесу чи ні. Пакетна обробка завдання має включати в себе команду типу halt (зупин. ) або якийсь явний виклик служби операційної системи, що приводить до завершення процесу.
Помилки, які можуть виникнути при виконанні процесу Перевищення ліміту відведеного програмі часу Недостатній об'єм пам’яті Вихід за межі відведеної області пам'яті Помилка захисту Арифметична помилка Помилка вводу-виводу Невірна команда
Неправильне використання даних Втручання оператора або операційної системи Завершення батьківського процесу Запит з боку батьківського процесу
Планування процесів включає в себе вирішення наступних завдань: • визначення моменту часу для зміни виконуваного процесу; • вибір процесу на виконання з черги готових процесів; • переключення контекстів «старого» і «нового» процесів.
Існує безліч різних алгоритмів планування процесів, які по різному вирішують перераховані вище завдання, переслідують різні цілі і забезпечують різну якість мультипрограмування. Є дві групи найбільш часто використовуваних алгоритмів: алгоритми, засновані на квантуванні, і алгоритми, засновані на пріоритетах.
Багатопоточність Багатопоточністю (multithreading) називається здатність операційної системи підтримувати в рамках одного процесу виконання декількох потоків. Традиційний підхід, при якому кожен процес являє собі єдиний потік виконання, називається одно поточним підходом. MS DOS є приміром операційної системи, здатної підтримувати не більше одного однопоточного користувача процесу. Інші операційні системи, такі, як різноманітні різновиди UNIX, підтримують процеси безлічі користувача, але в кожному з цих процесів може міститися тільки один потік.
У однопоточній моделі процесу в його уявлення входить керуючий блок цього процесу і призначене для користувача адресний простір, а також стеки ядра і користувача, за допомогою яких здійснюються виклики процедур і повернення з них при виконанні процесу. Коли виконання процесу переривається, вміст регістрів процесора зберігається в пам'яті. У багатопотоковому середовищі з кожним процесом теж звязаний керуючий блок і адресний простір, але тепер для кожного потоку створюються свої окремі стеки, а також свій керуючий блок, в якому містяться значення регістрів, пріоритет і інша інформація про стан потоку.
Потоки на рівні користувача У програмі, повністю складається з ULTпотоків, всі дії з управлінням потоками виконуються самим додатком; ядро по суті і не знає про існування потоків. Щоб додаток був багатопоточним, його слід створювати із застосуванням спеціальної бібліотеки, що представляє собою пакет програм для роботи з потоками на рівні ядра. Така бібліотека для роботи з потоками містить код, з допомогою якого можна створювати і видаляти потоки, проводити обмін сповіщеннями і даними між потоками, планувати їх виконання, а також зберігаючи та відновлювати їх контекст.
Потоки на рівні ядра У програмі, робота якої повністю заснована на потоках, працюючих на рівні ядра, всі дії з управління потоками виконуються ядром. В області додатків відсутній код, призначений для управління потоками. Замість нього використовується інтерфейс прикладного програмування (application programming interface - API) засобів ядра, керуючих потоками. Прикладами такого підходу є операційні системи OS / 2, Linux і W 2 K.