ОС лекцiя-03ua

Содержание

Слайд 2

Тема лекції: Процеси та потоки в операційних системах

Л е к ц і я №

Тема лекції: Процеси та потоки в операційних системах Л е к ц
3 по курсу " Операційні системи"

Тема 2: Оперативна пам'ять, потоки і процеси ОС

18.09.2022

Лектор:
Доцент кафедри Інформаційних систем
кандидат технічних наук, доцент
Голубничий Дмитро Юрійович

Слайд 3

НАВЧАЛЬНІ ПИТАННЯ:

НАВЧАЛЬНІ ПИТАННЯ:

Слайд 4

1. Процеси

1. Процеси

Слайд 5

1. ПРОЦЕСИ.

Процес (process) - абстракція, що описує поточну програму

Процес (process) -

1. ПРОЦЕСИ. Процес (process) - абстракція, що описує поточну програму Процес (process)
це програма та системні ресурси, необхідні для її роботи.

Процес - програма, яка перебуває в режимі виконання.

Процес в Win32, Win64 - це об'єкт, який не виконується, а просто "володіє" виділеним йому адресним простором, іншими словами процес є структурою в пам'яті.

У виконавчій системі процеси - це об'єкти, що створюються і знищуються диспетчером об'єктів

Слайд 6

Ресурси операційної системи

Керуючі таблиці ОС

Образ процесу

процес 1

процес N

пам'ять

пристрої

файли

процеси

процес 1

процес 3

процес 2

процес N

процесор

Первинні

Ресурси операційної системи Керуючі таблиці ОС Образ процесу процес 1 процес N
таблиці процесів

Таблиці пам'яті

Таблиця введення-виведення

Таблиці файлів

Концепція процесів і потоків

Слайд 7

Завдання, процеси, потоки (thread), волокна

Завдання (JOB)

об'єкти

процес 2

процес N

процес 1
потік 2
Thread 2

потік k
Thread

Завдання, процеси, потоки (thread), волокна Завдання (JOB) об'єкти процес 2 процес N
k

потік 1
Thread 1

Волокна (Fibers)

Слайд 8

Взаємозв'язок між завданнями, процесами і потоками

процеси

T

T

P

T

завдання

Стек в режимі користувача

потоки

Таблиця процесу

Таблиця процесу

маркери доступу

Стеки

Взаємозв'язок між завданнями, процесами і потоками процеси T T P T завдання
потоків в режимі ядра

T

P

Слайд 9

1. ПРОЦЕСИ.

Процес та його ресурси (приклад)

1. ПРОЦЕСИ. Процес та його ресурси (приклад)

Слайд 10

1. ПРОЦЕСИ.

Об'єкт - процес

1. ПРОЦЕСИ. Об'єкт - процес

Слайд 11

1. ПРОЦЕСИ.

Атрибути об'єкта - процесу

1. ПРОЦЕСИ. Атрибути об'єкта - процесу

Слайд 12

1. ПРОЦЕСИ.

Образ процесу: програма, дані, стек і атрибути процесу

1. ПРОЦЕСИ. Образ процесу: програма, дані, стек і атрибути процесу

Слайд 13

2. КОНТЕКСТ ПРОЦЕСУ
Вміст регістрів процесора, доступних користувачеві (зазвичай 8 - 32 регістра

2. КОНТЕКСТ ПРОЦЕСУ Вміст регістрів процесора, доступних користувачеві (зазвичай 8 - 32
і до 100 регістрів в RISC - процесорах);
Вміст лічильника команд;
Стан регістрів і регістрів стану;
Коди умови, що відображають результат виконання останньої арифметичної або логічної операції (наприклад, рівність нулю, переповнення тощо);
Покажчики вершин стеків, що зберігають параметри і адреси виклику процедур і системних служб.

1. ПРОЦЕСИ.

1. ДЕСКРИПТОР ПРОЦЕСУ МІСТИТЬ
Інформацію щодо ідентифікації процесу (ідентифікатор процесу, ідентифікатор користувача, ідентифікатори батьківського і дочірніх процесів).
Інформацію про стан процесу
Інформацію, яку використовують для управління процесом

Слайд 14

1. ПРОЦЕСИ.

Інформація про стан і управління процесом

Стан процесу, що визначає його готовність

1. ПРОЦЕСИ. Інформація про стан і управління процесом Стан процесу, що визначає
до виконання (що виконується, готовий до виконання, що очікує події, який був загальмований);
Дані про пріоритет (поточний, за замовчуванням, максимально можливий);
Інформація про події - ідентифікація події, настання якого дозволить продовжити виконання процесу;
Покажчики, що дозволяють визначити розташування образу процесу в оперативній пам'яті і на диску;
Покажчики на інші процеси (що знаходяться в черзі на виконання);
Прапори, сигнали і повідомлення, що мають відношення до обміну інформацією між двома незалежними процесами;
Дані про привілеї, що визначають прав доступу до певної області пам'яті або можливості виконувати певні види команд, використовувати системні утиліти і служби;
Покажчики на ресурси, якими управляє процес;
Відомості щодо використання ресурсів і процесора;
Інформація, пов'язана з плануванням.

Слайд 15

1. ПРОЦЕСИ.

Структури Windows для управління процесами і потоками (узагальнена схема)

1. ПРОЦЕСИ. Структури Windows для управління процесами і потоками (узагальнена схема)

Слайд 16

1. ПРОЦЕСИ.

Структура EPROCESS

1. ПРОЦЕСИ. Структура EPROCESS

Слайд 17

1. ПРОЦЕСИ.

Порядок пошуку файлу виконуваної програми

1. В каталозі, в який завантажено

1. ПРОЦЕСИ. Порядок пошуку файлу виконуваної програми 1. В каталозі, в який
додаток

2. У поточному каталозі

3. У системному каталозі Windows (%SystemRoot%\)

4. У каталозі Windows, який повертає функція GetWindowDirectory()

5. У каталогах, перерахованих у змінній середовища PATH, яка визначає порядок пошуку в них

якщо немає , то

якщо немає , то

якщо немає , то

якщо немає , то

Слайд 18

1. ПРОЦЕСИ.

Проста модель процесу

диспетчеризація

пауза

Не виконується

Виконується

CPU

черга

пауза

диспетчеризація

Граф станів і переходів

tкв

Квантом процесорного часу називається час,

1. ПРОЦЕСИ. Проста модель процесу диспетчеризація пауза Не виконується Виконується CPU черга
після якого виконання потоку з алгоритмом планування SCHED_RR буде перервано, а управління буде передано іншому потоку з тим самим пріоритетом.
tкв можливо виміряти утилітою Clockres від sysinternals.com

Слайд 19

1. ПРОЦЕСИ.

Створюється

Готовий до виконання

Виконується

Вхід

до системи

Очікування

Завершується

Звільнення

події

Блокірований

Надходження процесу

Черга готових процесів

Тайм - аут ( tКВ

1. ПРОЦЕСИ. Створюється Готовий до виконання Виконується Вхід до системи Очікування Завершується
)

Очікування події

Загальна модель процесу

Граф станів і переходів

Слайд 20

2. Потоки

2. Потоки

Слайд 21

2. ПОТОКИ.

Потік (Thread) – це незалежний шлях виконання всередині процесу, що

2. ПОТОКИ. Потік (Thread) – це незалежний шлях виконання всередині процесу, що
розділяє разом з процесом загальний адресний простір, код і глобальні дані.

Порівняння багатопотокової системи з однопоточній

Переваги використання потоків:

1. Спрощення програми

2. Швидкість створення потоку

3. Підвищення продуктивності

Слайд 22

2. ПОТОКИ.

Способи реалізації пакету потоків:
в просторі користувача (user - level

2. ПОТОКИ. Способи реалізації пакету потоків: в просторі користувача (user - level
threads - ULT);
в ядрі (kernel - level threads - KLT).

Слайд 23

2. ПОТОКИ.

ПОТІК НА РІВНІ КОРИСТУВАЧА (ULT)

ПЕРЕВАГИ:

можна реалізувати в ОС, що

2. ПОТОКИ. ПОТІК НА РІВНІ КОРИСТУВАЧА (ULT) ПЕРЕВАГИ: можна реалізувати в ОС,
не підтримує потоки без будь-яких змін в ОС;
висока продуктивність, оскільки процесу не потрібно перемикатися в режим ядра і назад;
ядро про потоках нічого не знає і управляє однопоточними процесами;
є можливість використання будь-яких алгоритмів планування потоків з урахуванням їх специфіки;
управління потоками покладається на програму користувача.

НЕДОЛІКИ:

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

Слайд 24

2. ПОТОКИ.

ПОТІК НА РІВНІ ЯДРА (KLT)
ПЕРЕВАГИ:
можливо планування роботи декількох потоків одного

2. ПОТОКИ. ПОТІК НА РІВНІ ЯДРА (KLT) ПЕРЕВАГИ: можливо планування роботи декількох
і того ж процесу на декількох процесорах;
реалізується мультипрограмування в рамках всіх процесів (у тому числі одного);
при блокуванні одного з потоків процесу ядро ​​може вибрати інший потік цього ж (або іншого процесу);
процедури ядра можуть бути багатопоточними
НЕДОЛІКИ:
необхідність дворазового перемикання режиму користувач - ядро, ядро ​​- користувач для передачі управління від одного потоку до іншого в рамках одного і того ж процесу.

Слайд 25

2. ПОТОКИ.

2. ПОТОКИ.

Слайд 26

Резервний (3)

Виконується (2)

Готовий (1)

Очікування (5)

Транзит (6)

Завершений (4)

перемикання

витіснення

блокування / призупинення

розблокування / відновлення. ресурсів

Резервний (3) Виконується (2) Готовий (1) Очікування (5) Транзит (6) Завершений (4)
достатньо

розблокування.
ресурсів недостатньо

ресурсів достатньо

Вибір для виконання

завершення

Працездатні потоки

Непрацездатні потоки

ініціалізація (0)

2. ПОТОКИ.

Слайд 27

СХЕМА ПЛАНУВАННЯ З УРАХУВАННЯМ ЧЕРГ ЗАВДАНЬ (ПОТОКОВ)

Новий

Готовий / призупинений

Готовий в ОП

Виконується в

СХЕМА ПЛАНУВАННЯ З УРАХУВАННЯМ ЧЕРГ ЗАВДАНЬ (ПОТОКОВ) Новий Готовий / призупинений Готовий
ОП

Завершуюється

довгострокове планування

виклик ОС

Активація

призупинення

призупинення

активація

середньострокове планування

звільнення

Очікування події (переривання введення-виведення, повідомлення)

диспетчеризація (Короткострокове планування)

Тайм-аут (таймер)

Блокований / призупинений

Диск

Диск

Блокований в ОП

наступ події

Свопінг

наступ події

2. ПОТОКИ.

Слайд 28

2. ПОТОКИ.

2. ПОТОКИ.

Слайд 29

2. ПОТОКИ.

Атрибути об'єкта-потоку

2. ПОТОКИ. Атрибути об'єкта-потоку

Слайд 30

2. ПОТОКИ.

2. ПОТОКИ.

Слайд 31

4. СИСТЕМА ПРІОРИТЕТІВ

4. СИСТЕМА ПРІОРИТЕТІВ

Слайд 32

4. СИСТЕМА ПРІОРИТЕТІВ

ЗМІНА БАЗОВОГО ПРІОРИТЕТУ ПОТОКУ
збільшення пріоритету
+ 1 - завершення

4. СИСТЕМА ПРІОРИТЕТІВ ЗМІНА БАЗОВОГО ПРІОРИТЕТУ ПОТОКУ збільшення пріоритету + 1 -
введення-виведення по диску;
+2 - для послідовної лінії;
+ 6 - клавіатура;
+ 8 - звукова карта;
+ 2 - знімається блокування по семафора (для потоку переднього плану);
+ 1 - знімається блокування по семафора (для потоку непереднего плану); пріоритет 15 на 2 кванта процесора, якщо готовий до виконання потік простоює понад деякого директивного часу.
зменшення пріоритету
- 1 - якщо повністю використаний квант часу процесора (багаторазово, аж до базового пріоритету).

Слайд 33

3. Синхронізація потоків в режимі ядра

3. Синхронізація потоків в режимі ядра

Слайд 34

Види станів об'єктів синхронізації

Види станів об'єктів синхронізації

Слайд 35

3. СИНХРОНІЗАЦІЯ ПОТОКІВ В РЕЖИМІ ЯДРА

3. СИНХРОНІЗАЦІЯ ПОТОКІВ В РЕЖИМІ ЯДРА

Слайд 36

Конкуренція процесів в боротьбі за ресурси

Конкуренція - ситуація, коли два або більше

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

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

необхідність взаємовиключення:

3. СИНХРОНІЗАЦІЯ ПОТОКІВ В РЕЖИМІ ЯДРА

Слайд 37

Використання системних функцій входу в критичну секцію

Час блокування:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
параметр CriticalSectionTimeout

Використання системних функцій входу в критичну секцію Час блокування: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager параметр
= 2592000 секунд (30 діб)

3. СИНХРОНІЗАЦІЯ ПОТОКІВ В РЕЖИМІ ЯДРА

Слайд 38

4. Сінхронізація потоків в режимі користувача

4.1. Семафори

4. Сінхронізація потоків в режимі користувача 4.1. Семафори

Слайд 39

Взаємоблокування

4.1. СЕМАФОРИ

Взаємоблокування 4.1. СЕМАФОРИ

Слайд 40

Умови виникнення взаимоблокуванням (тупикової) ситуації:
Взаємне виключення. Кожен ресурс в даний момент або

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

Стратегії боротьби з взаимоблокуванням:
Нехтування проблемою в цілому.
Виявлення та усунення взаємоблокувань (відновлення).
Недопущення тупикових ситуацій за допомогою акуратного розподілу ресурсів.
Запобігати за допомогою структурного спростування одного з чотирьох умов, необхідних для взаємоблокування.

4.1. СЕМАФОРИ

Слайд 41

Семафор: змінна S, примітиви P (Proberen - перевірка; down) і V (Verhogen

Семафор: змінна S, примітиви P (Proberen - перевірка; down) і V (Verhogen
- збільшення, up)
V (S) - змінна S збільшується на 1 єдиним дією. Вибірка, нарощування і запам'ятовування не можуть бути перервані. До змінної S немає доступу під час виконання цієї операції.
P (S) - змінна S зменшується на 1, Якщо це можливо, складе в області невід'ємних значень. Якщо S зменшити неможливо, потік, що виконує операцію P, чекає, поки це зменшення стане можливим. Операція P неподільна.
В окремому випадку семафор S може приймати виконавчі значення 0 і 1, перетворюючись в блокуючу змінну (двійковий семафор).
Операція P укладає в собі потенційну можливість переходу процесу, який її виконує, в стан очікування (якщо S = 0).

4.1. СЕМАФОРИ

СЕМАФОРИ ДІЙКСТРИ (DIJKSTRA)

Семафор — це універсальний механізм для організації взаємодії процесів (в термінології операційних систем сімейства Windows — потоків). Визначення семафору зроблено нідерландським вченим Едсгером Дейкстрою, деякий час використовувався термін Семафор Дейкстри

Слайд 42

P (e)

V (f)
(f = f + 1)

P (f)

V (e)
(e = e +

P (e) V (f) (f = f + 1) P (f) V
1)

Початкові значення семафорів:

e = N
f = 0

Ресурс (буфер)

f

N

e

Використання семафорів для синхронізації потоків

потік-виробник

потік-споживач

4.1. СЕМАФОРИ

e - порожні буфери,
f - зайняті буфери

Слайд 43

4.2. М'ютекси і події

4. Сінхронізація потоків в режимі користувача

4.2. М'ютекси і події 4. Сінхронізація потоків в режимі користувача

Слайд 44

4.2.М'ЮТЕКСИ І ПОДІЇ

М'ютекс (mutex, mutual exclusion — взаємне виключення) призначено для захисту

4.2.М'ЮТЕКСИ І ПОДІЇ М'ютекс (mutex, mutual exclusion — взаємне виключення) призначено для
певного об’єкта у потоці від доступу інших потоків.
М'ютекс є одним із засобів синхронізації роботи потоків або процесів

М'ютекси — це прості двійкові семафори, які можуть перебувати в одному з двох станів - сигнальному або несигнальному (відкритий і закритий відповідно). Коли потік отримує м'ютекс, той переводиться в несигнальний стан.
Організація послідовного доступу до ресурсів з використанням м'ютексів стає нескладною, оскільки в кожен конкретний момент тільки один потік може володіти цим об'єктом. Для того, щоб об'єкт mutex став доступний потокам, що належать різним процесам, при створенні йому необхідно присвоїти ім'я. Потім це ім'я потрібно передати «у спадок» завданням, які повинні його використовувати для взаємодії.

Слайд 45

Схема використання подій

4.2.М'ЮТЕКСИ І ПОДІЇ

Схема використання подій 4.2.М'ЮТЕКСИ І ПОДІЇ
Имя файла: ОС-лекцiя-03ua.pptx
Количество просмотров: 27
Количество скачиваний: 0