
- •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: динамічна зміна пріоритету та кванту часу.
55. Особливості планування процесів у ос Windows
Розглянемо базові складові елементи процесу.
• Адресний простір процесу складається з набору адрес віртуальної пам'яті, які він може використати. Ці адреси можуть бути пов'язані з оперативною пам'яттю, а можуть — з відображеними у пам'ять ресурсами. Адресний простір процесу недоступний іншим процесам.
• Процес володіє системними ресурсами, такими як файли, мережні з'єднання, пристрої введення-виведення, об'єкти синхронізації тощо.
• Процес містить деяку стартову інформацію для потоків, які в ньому створюватимуться. Наприклад, це інформація про базовий пріоритет і прив'язання до процесора.
• Процес має містити хоча б один потік, я к ий система скеровує на виконання. Без потоків у Windows ХР наявність процесів неможлива.
Розглянемо структури даних, пов'язані із процесом у Windows ХР. Зазначимо, що у роботі з цими структурами система використовує об'єктну модель. Для виконавчої системи Windows ХР кожний процес зображається об'єктом-процесом виконавчої системи (executive process object); його також називають керуючим блоком процесу (executive process block, EPROCESS). Для ядра системи процес зображається об'єктом-процесом ядра (kernel process object), його також називають блоком процесу ядра (process kernel block, KPROCESS). У режимі користувача доступним є блок оточення процесу (process environment block, РЕВ), що перебуває в адресному просторі цього процесу.
Розглянемо структури даних процесу докладніше. Зазначимо, що EPROCESSі KPROCESS, на відміну від РЕВ, доступні тільки із привілейованого режиму. Керуючий блок процесу містить такі основні елементи:
• блок процесу ядра (KPROCESS);
• ідентифікаційну інформацію;
• інформацію про адресний простір процесу;
• інформацію про ресурси, доступні процесу, та обмеження на використання цих ресурсів;
• блок оточення процесу (PEB );
• інформацію д ля підсистеми безпеки.
До ідентифікаційної інформації належать:
• ідентифікатор процесу (pid);
• ідентифікатор процесу, що створив цей процес (незважаючи на те, що Windows ХР не підтримує відносини «предок-нащадок» автоматично, вони можуть бути задані програмним шляхом, тобто нащадок може сам призначити собі предка, задавши цей ідентифікатор);
• ім'я завантаженого програмного файла.
Блок процесу ядра містить усю інформацію, що належить до потоків цього процесу:
• покажчик на ланцюжок блоків потоків ядра, де кожний блок відповідає потоку;
• базову інформацію, необхідну ядру системи для планування потоків.
Блок оточення процесу містить інформацію про процес, яка призначена для доступу з режиму користувача;
• початкову адресу ділянки пам'яті, куди завантажився програмний файл;
• покажчик на динамічну ділянку пам'яті, доступну процесу.
Цю інформацію може використати завантажувач програм або процес підсистеми Win32.
56. Створення потоків у ос Windows
Основним засобом створення потоків у Windows ХР є функція CreateThreadO Win32 АРІ. Назвемо етапи виконання цієї функції.
1. В адресному просторі процесу створюють стек режиму користувача для потоку.
2. Ініціалізують апаратний контекст потоку (у процесор завантажують дані, що визначають його стан). Цей крок залежить від архітектури процесора.
3. Створюють об'єкт-потік виконавчої системи у призупиненому стані, для чого в режимі ядра:
а) створюють та ініціалізують структури даних потоку (блоки ETHREAD, KTHREAD, ТЕВ);
б) задають стартову адресу потоку (використовуючи передану як параметр адресу процедури потоку);
в) задають інформацію для підсистеми безпеки та ідентифікатор потоку;
г) виділяють місце під стек потоку ядра.
4. Підсистемі Win32 повідомляють про створення нового потоку.
5. Дескриптор та ідентифікатор потоку повертають у процес, що ініціював створення потоку (викликав CreateThreadO).
6. Починають виконання потоку (виконують перехід за стартовою адресою).