Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мороз-відповіді.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
694.33 Кб
Скачать

34. Призначення та основні функції блоку керування процесами (pcb).

Для того, щоби ОС могла керувати процесами, вона повинна володіти всією необхідною інформацією. Для цього для кожного процесу створюється спеціальна інформаційна структура, яка називається – блоком керування процесом (ProgramControlBlock, PCB), або дескриптором процесу, або описувачем задачі. В загальному випадку РСВ вміщує таку інформацію:

1. Ідентифікатор процесу (PID – processidentifier).

2. Тип (або клас) процесу, який визначає для ОС деякі правила надання ресурсів.

3. Пріоритет процесу, відповідно до якого ОС надає ресурси. В рамках одного класу процесів у першу чергу обслуговуються процеси з вищим пріоритетом.

4. Змінну стану, яка визначає, в якому стані знаходиться процес (стані готовності, стані виконання, стані блокування).

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

6. Інформація про ресурси, якими володіє процес або має право користуватись.

7. Адреса місця для організації спілкування з іншими процесами.

8. Параметри часу запуску (момент часу, коли процес повинен активізуватись та періодичність цієї процедури).

9. Для диск–резидентних задач, які постійно знаходяться у зовнішній пам’яті і завантажуються в основну пам’ять тільки на час виконання зберігається адреса задачі на диску в її вихідному стані.

РСВ, як правило, з метою пришвидшення роботи ОС постійно розташовані в основній пам’яті. ОС організовує їх у черги, в залежності від змінної стану переносить процеси з черги в чергу. Для кожного стану ОС підтримує список процесів, що знаходяться в цьому стані.

Таким чином, РСВ – це об’єкт, який визначає процес для ОС.

35. Потоки („нитки”), призначення та застосування.

Багатозадачність — найважливіша властивість ОС. Для підтримки цієї властивості ОС визначає і створює для себе ті внутрішні одиниці роботи, між якими і буде розділятись процесор і інші ресурси комп’ютера.

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

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

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

Для цього пропонується механізм багато-ниткової обробки (multithreading). Вводиться нове поняття „нитка” (thread). Мультипрограмування тепер реалізується на рівні ниток. Наприклад: якщо електронна таблиця була розроблена з врахуванням можливостей багато-ниткової обробки, то користувач може запросити перерахунок своєї таблиці і одночасно продовжувати її заповнювати. Багато-нитковий сервер може паралельно виконувати запити одразу декількох клієнтів.

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

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

- всі нитки мають один адресний простір;

- вони розділяють одні і ті самі глобальні змінні;

- кожна нитка має доступ до довільної віртуальної адреси, але одна нитка може використовувати стек іншої;

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

Таким чином нитки мають власні:

- програмний лічильник;

- стек;

- регістри;

- нитки-нащадки;

- стани.

Нитки розділяють:

- адресний простір;

- глобальні змінні;

- відкриті файли;

- таймери;

- семафори;

- статистичну інформацію.

Приклад. Керування сигналами, наприклад, переривання з клавіатури (delete або break).

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