
- •1. Основні складові системного програмного забезпечення.
- •2. Охарактеризуйте узагальнену структуру програмного забезпечення обчислювальних систем.
- •3. Типова структура системного програмного забезпечення.
- •4. Основні функції операційної системи.
- •5. Охарактеризуйте основні типи операційних систем.
- •1. За призначенням.
- •4. За способом побудови
- •6. Основні концепції побудови операційних систем.
- •7. Класифікація ос, за призначенням.
- •8. Класифікація ос, за режимом обробки задач.
- •9. Класифікація ос, за способами взаємодії із системами.
- •10. Класифікація ос, за способами побудови.
- •11. Охарактеризуйте підсистему керування ресурсами.
- •12. Охарактеризуйте підсистему керування введенням-виведенням.
- •13. Охарактеризуйте підсистему керування файлами та файлові системи.
- •14. Призначення та особливості ядра операційної системи
- •15. Основні функції ядра операційної системи.
- •16. Основні види архітектури операційних систем.
- •17. Операційні системи з монолітним ядром.
- •18. Багаторівневі операційні системи.
- •19. Операційні системи з мікроядром.
- •20. Концепція віртуальних машин в побудові операційних систем.
- •21. Засоби апаратної підтримки операційних систем
- •22. Інтерфейс прикладного програмування.
- •23. Варіанти реалізації інтерфейсу прикладного програмування
- •24. Особливості базової архітектури ос unix.
- •25. Призначення ядра ос Linux та його особливості
- •26. Концепція модулів ядра в ос Linux
- •27. Основні компоненти архітектури ос Windows
- •28. Призначення рівня абстрагування від апаратури в ос Windows
- •29. Основні компоненти підсистеми виконання в ос Windows
- •30. Об’єктна модель архітектури ос Windows
- •31. Розкрийте поняття „обчислювальний процес”.
- •32. Основні стани обчислювального процесу.
- •33. Умови переходу обчислювального процесу із стану в стан.
- •34. Призначення та основні функції блоку керування процесами (pcb).
- •35. Потоки („нитки”), призначення та застосування.
- •36. Поняття „переривання” та їх призначення.
- •37. Основні групи „переривань” та події, що їх викликають
- •38. Обробка „переривань” та механізм перемикання контексту „переривань”.
- •39. Механізми, що використовуються для планування процесорів
- •40. Інтервальний таймер, призначення та застосування у плануванні процесорів
- •41. Пріоритети, призначення та застосування у плануванні процесорів.
- •42. Планування процесорів за принципом fifo
- •43. Циклічне планування завантаження процесорів
- •44. Планування завантаження процесорів за принципом „найкоротше завдання-перший”.
- •45. Планування завантаження процесорів за „найменшим часом, що залишився”.
- •46. Планування процесорів із використанням багаторівневих черг зі зворотними зв’язками.
- •47. Витісняючі та невитісняючі алгоритми планування процесів.
- •48. Рівні планування процесів
- •49. Задачі, що вирішуються на кожному з рівнів планування процесів.
- •50. Основні вимоги до планування процесов.
- •51. Планування процесів з переключенням та без переключення.
- •52. Особливості процесів в ос unix.
- •53. Недоліки традиційної багато потоковості в Linux.
- •54. Особливості нової реалізації багато потоковості в Linux.
- •55. Особливості планування процесів у ос Windows
- •56. Створення потоків у ос Windows
- •57. Особливості планування потоків у ос Windows.
- •58. Планування потоків у ос Windows: пріоритети.
- •59. Планування потоків у ос Windows: вибір кванту часу.
- •60. Планування потоків у ос Windows: динамічна зміна пріоритету та кванту часу.
34. Призначення та основні функції блоку керування процесами (pcb).
Для того, щоби ОС могла керувати процесами, вона повинна володіти всією необхідною інформацією. Для цього для кожного процесу створюється спеціальна інформаційна структура, яка називається – блоком керування процесом (ProgramControlBlock, PCB), або дескриптором процесу, або описувачем задачі. В загальному випадку РСВ вміщує таку інформацію:
1. Ідентифікатор процесу (PID – processidentifier).
2. Тип (або клас) процесу, який визначає для ОС деякі правила надання ресурсів.
3. Пріоритет процесу, відповідно до якого ОС надає ресурси. В рамках одного класу процесів у першу чергу обслуговуються процеси з вищим пріоритетом.
4. Змінну стану, яка визначає, в якому стані знаходиться процес (стані готовності, стані виконання, стані блокування).
5. Адресу захищеної ділянки пам’яті, в якій зберігаються біжучі значення регістрів процесора, якщо процес призупиняється (або переривається) не завершивши роботи. Ця інформація називається контекстом задачі.
6. Інформація про ресурси, якими володіє процес або має право користуватись.
7. Адреса місця для організації спілкування з іншими процесами.
8. Параметри часу запуску (момент часу, коли процес повинен активізуватись та періодичність цієї процедури).
9. Для диск–резидентних задач, які постійно знаходяться у зовнішній пам’яті і завантажуються в основну пам’ять тільки на час виконання зберігається адреса задачі на диску в її вихідному стані.
РСВ, як правило, з метою пришвидшення роботи ОС постійно розташовані в основній пам’яті. ОС організовує їх у черги, в залежності від змінної стану переносить процеси з черги в чергу. Для кожного стану ОС підтримує список процесів, що знаходяться в цьому стані.
Таким чином, РСВ – це об’єкт, який визначає процес для ОС.
35. Потоки („нитки”), призначення та застосування.
Багатозадачність — найважливіша властивість ОС. Для підтримки цієї властивості ОС визначає і створює для себе ті внутрішні одиниці роботи, між якими і буде розділятись процесор і інші ресурси комп’ютера.
ОС підтримує відокремленість процесів. У кожного процесу є свій віртуальний адресний простір, кожному процесу призначаються свої ресурси: файли, вікна, семафори і т.ін. це для того, щоби захистити один процес від іншого.
При мультипрограмуванні підвищується пропускна здатність системи в цілому, але окремий процес ніколи не може бути виконаний швидше, ніж у випадку його виконання в одно програмному режимі (йде час на очікування ресурсу, що розділяється).
Але задачі, яка розв’язується в рамках одного процесу, може бути притаманний внутрішній паралелізм, який в принципі дозволяє прискорити її розв’язок. Наприклад, в ході виконання задачі відбувається звертання до зовнішнього пристрою і на час цієї операції можна не блокувати повністю виконання процесу, а продовжити виконання іншої „гілки” процесу.
Для цього пропонується механізм багато-ниткової обробки (multithreading). Вводиться нове поняття „нитка” (thread). Мультипрограмування тепер реалізується на рівні ниток. Наприклад: якщо електронна таблиця була розроблена з врахуванням можливостей багато-ниткової обробки, то користувач може запросити перерахунок своєї таблиці і одночасно продовжувати її заповнювати. Багато-нитковий сервер може паралельно виконувати запити одразу декількох клієнтів.
Оскільки всі нитки одного процесу завжди належать одній прикладній програмі, між ними досить легко організувати тісну взаємодію. Програміст може завчасно продумати роботу множини ниток процесу таким чином, щоби вони могли взаємодіяти, а не боротись за ресурси.
Нитки в багатьох відношеннях потрібні процесам, але в рамках одного процесу не є такими незалежними, як процедури:
- всі нитки мають один адресний простір;
- вони розділяють одні і ті самі глобальні змінні;
- кожна нитка має доступ до довільної віртуальної адреси, але одна нитка може використовувати стек іншої;
- між нитками немає повного захисту, всі нитки розділяють один набір відкритих файлів, таймерів, сигналів і т. ін.
Таким чином нитки мають власні:
- програмний лічильник;
- стек;
- регістри;
- нитки-нащадки;
- стани.
Нитки розділяють:
- адресний простір;
- глобальні змінні;
- відкриті файли;
- таймери;
- семафори;
- статистичну інформацію.
Приклад. Керування сигналами, наприклад, переривання з клавіатури (delete або break).
Замість обробки сигналу переривання одна нитка призначається для постійного очікування надходження сигналів. Таким чином, нитки можуть скоротити необхідність в перериваннях рівня користувача.