МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
Національний університет “Львівська політехніка”
МЕТОДИЧНІ ВКАЗІВКИ
до виконання контрольних робіт №1,2,3
з курсу “Системне програмування та операційні системи” для студентів базового напрямку 6.08.04 “Комп'ютерні науки” (Заочна форма навчання)
ЛЬВІВ 2001
Методичні вказівки до виконання контрольних робіт №1,2,3 з курсу “Системне програмування та операційні системи” для студентів базового напрямку 6.08.04 “Комп'ютерні науки”/Укл. В.В.Мазур, А.Б.Романюк - Львів:НУЛП, 2001 - 8с.
Укладачі: А.Б.Романюк к.т.н., асистент
Контрольні роботи виконуються студентами протягом навчального семестру і повинні бути здані до початку екзаменаційної сесії.
Кожна контрольна робота повинна містити відповіді на контрольні запитання згідно Таблиці№1 та тексти програм для завдань згідно Таблиці№2
Таблиця№1
Контрольна робота №1
Контрольна робота №2
Контрольна робота №3
1
2
3
4
5
6
7
8
1
1
4
9
16
5
1
3
6
2
2
5
10
17
6
2
4
7
3
3
6
11
18
7
3
5
8
4
4
7
12
1
1
4
6
9
5
5
8
13
2
2
5
7
10
6
6
9
14
3
3
6
8
11
7
7
10
15
4
4
7
9
12
8
8
11
16
5
5
8
10
1
9
9
12
17
6
6
9
11
2
10
10
13
1
7
7
10
1
3
11
1
1
2
8
1
11
2
4
12
2
2
3
9
2
12
3
5
13
3
3
4
10
3
1
4
6
14
4
4
5
11
4
2
5
7
15
5
2
6
12
5
3
6
8
16
6
3
7
13
6
4
7
9
17
7
4
8
14
7
5
8
10
18
8
5
9
15
1
6
9
11
1. Основні поняття
Контрольні запитання
Поясніть, в чому полягає відмінність між такими поняттями, як процес і завдання.
Зобразіть діаграму станів процесу, поясніть всі можливі переходь з одного стану в інший
Поясніть значення наступних термінів: task (задача), process (процес), thread (потік, нитка). Як вони між собою співвідносяться?
Для чого кожна задача отримує відповідний дескриптор? Які поля, як правило, містяться в дескрипторі процесу (задачі)? Що таке «контекст задачі»?
Поясніть поняття ресурсу. Чому поняття ресурсу є однією з фундаментальних при розгляді ОС? Які бач і типи ресурсів ви знаєте?
Як ви вважаєте: скільки і яких списків дескрипторів задач може бути в системі? Від чого повинне залежати це число?
Перерахуєте дисципліни обслуговування переривань; поясните, як можна реалізувати кожну з цих дисциплін.
З якою метою до ОС вводитися спеціальний системний модуль - супервізор переривань?
У чому полягає відмінність між повторно - що входять (re-entrance) і повторно - що перериваються (re-enterable) програмними модулями,? Як вони реалізуються?
Що таке привілейований програмний модуль? Чому не можна створити мультипрограмну ОС, в якій би не було привілейованих програмних модулів?
2. Управління задачами і пам'яттю в операційних системах
Контрольні запитання
Які дисципліни диспетчеризації завдань ви знаєте? Опишіть їх.
Що таке „гарантія обслуговування”? Як її можна реалізувати?
Порівняєте механізми диспетчеризації завдань в ОС Windows NT і OS/2. У чому полягають основні відмінності?
Опишіть механізм динамічної диспетчеризації, реалізований в UNIX-системах.
Що таке «віртуальна адреса», «віртуальний адресний простір»? Чим (у загальному випадку) визначається максимально можливий об'єм віртуального адресного простору програми?
Що таке «фрагментація пам'яті»? Який метод розподілу пам'яті дозволяє добитися мінімальної фрагментації?
Що таке «ущільнення пам'яті»? Коли воно застосовується?
Поясните сегментний спосіб організації віртуальної пам'яті. Що є (у загальному випадку) дескриптором сегменту?
Порівняєте сегментний і сторінковий способи організації віртуальної пам'яті. Перерахуєте достоїнства і недоліки кожного.
Які дисципліни застосовуються для вирішення завдання заміщення сторінок? Які з них є найбільш ефективними і як вони реалізуються?
Що таке «робоча множина»? Що дозволяє вирішити реалізація цього поняття?
Викладете принципи розподілу пам'яті в MS-DOS.
Що означає термін «плоска модель пам'яті»? У чому полягають достоїнства (і недоліки, якщо вони є) використання цієї моделі?
3. Особливості архітектури мікропроцесорів і80x86
Контрольні запитання
Як в реальному режимі роботи мікропроцесорів i80x86 здійснюється перетворення віртуальної адреси у фізичну?
Які механізми віртуальної пам'яті використовуються в захищеному режимі роботи мікропроцесорів і80x86?
Для чого в мікропроцесори i80x86 введений регістр-покажчик завдання TR? Якої він розрядності?
Як в мікропроцесорах і80x86 реалізована підтримка сегментного способу організації віртуальної пам'яті?
Що розуміємо під терміном «лінійна адреса»? Як здійснюється претворення лінійної адреси у фізичну? А чи може лінійна адреса дорівнювати фізичній?
Що дало введення двокрокової сторінкової трансляції в механізмі сторінкового способу реалізації віртуальної пам'яті? Як розробники мікропроцесора i80386 вирішили проблему уповільнення доступу до пам'яті, яке при двокроковому перетворенні адрес дуже істотне?
Що дало введення віртуального режиму? Як в цьому режимі здійснюється обчислення фізичної адреси?
Що мають мікропроцесори i80x86 для забезпечення захисту адресного простору завдань?
Що таке «рівень привілеїв »? Скільки рівнів привілеїв є в мікропроцесорах і80x86? Для яких цілей введена така кількість рівнів привілеїв?
Що таке поточний рівень привілеїв? Що таке ефективний рівень привілеїв?
Поясніть правила роботи з рівнями привілеїв для різних типів сегментів.
Поясніть механізм шлюзування: для чого він призначений, як здійснюється передача управління на сегменти коду з іншими рівнями привілеїв.
Розкажіть про роботу системи переривань мікропроцесорів 180x86 в реальному режимі.
У чому полягають основні принципові відмінності роботи системи переривань мікропроцесорів і80x86 в захищеному режимі в порівнянні з реальним режимом?
Як здійснюється перехід на програму обробки переривань, якщо дескриптор переривань є комутатором переривань?
Як здійснюється перехід на програму обробки переривань, якщо дескриптор переривань є комутатором перехоплення?
Як здійснюється перехід на програму обробки переривань, якщо дескриптор переривань є комутатором завдання?
4. Управління вводом/виводом і файлові системи
Контрольні запитання
Чому створення підсистеми вводу/виводу вважається однією з найскладніших областей проектування операційних систем?
Чому операції вводу/виводу в ОС оголошуються привілейованими?
Перерахуєте основні завдання, що покладаються на супервізор вводу/виводу.
У яких випадках пристрій вводу/виводу називається ініціативним?
Які режими управління вводом/виводом ви знаєте? Опишіть кожний з них.
Що означає термін «spooling» і що означає термін «swapping»?
Чим забезпечується незалежність призначених для користувача програм від пристроїв вводу/виводу, підключених до комп'ютера?
Що таке синхронний і асинхронний ввід/вивід?
Розкажіть про кешування операцій вводу/виводу при роботі з накопичувачами на магнітних дисках.
Що таке «файлова система»? Що забезпечує використання тієї або іншої файлової системи? Які файлові системи, що використовуються в ОС для ПК, ви знаєте?
Опишіть структуру магнітного диска (розбиття дисків на розділи). Скільки (і яких) розділів може бути на магнітному диску?
Як в загальному випадку здійснюється завантаження ОС після включення комп'ютера? Що таке системний і позасистемний завантажувачі? Де вони розташовуються?
Поясните загальні принципи файлової системи FAT. Що таке кластер, від чого залежить його розмір?
Порівняєте файлові системи FAT16 і FAT32. У чому полягають їх достоїнства і недоліки?
За рахунок чого у файловій системі HPFS забезпечена висока продуктивність?
Що означає «журнал» файлових операцій? Що це дає?
Розкажіть про правила, які визначають стан прав доступу при переміщенні або копіюванні об'єктів, якщо використовується NTFS.
Проведіть порівняльний аналіз файлових систем HPFS і NTFS; перерахуєте достоїнства і недоліки кожній.
5. Архітектура операційних систем і інтерфейси прикладного програмування
Контрольні запитання
Перерахуєте і поясните основні принципи побудови операційних систем.
Розкажіть про основні моменти, характерні для мікроядерних ОС. Які основні функції повинне виконувати мікроядро ОС?
Перерахуєте основні вимоги, операційних систем реального часу.
Які завдання покладаються на інтерфейс прикладного програмування (API)?
Якими можуть бути варіанти реалізації API? У чому полягають достоїнства і недоліки кожного варіанту?
Що таке бібліотека часу виконання (RTL)?
Що таке POSIX? Якими перевагами володіють програми, створені з використанням тільки стандартних функцій, передбачених POSIX?
6. Проектування паралельних взаємодіючих обчислювальних процесів
Контрольні запитання
Які послідовні обчислювальні процеси ми називаємо паралельними і чому? Які паралельні процеси називаються незалежними, а які — такими що взаємодіють?
Опишіть алгоритм Деккера, який дозволяє вирішити проблему взаємного виключення шляхом використання блокування пам'яті.
Поясніть команду «перевірка і установка».
Розкажіть про семафори Дейкстри. Чим забезпечується взаємне виключення при виконанні Р- і V-примітивів?
Викладете, як можуть бути реалізовані семафорні примітиви для мультипроцесорної системи.
Опишіть поняття мьютекс (mutex)?
Викладете алгоритм рішення задачі «постачальник — споживач» при використанні семафорів Дейкстри.
Викладете алгоритм рішення задачі «читачі — письменники» при використанні семафорів Дейкстри
Опишіть «монітор Хоара»? Приведіть приклад такого монітора.
Опишіть поняття «поштові скриньки»?
Опишіть поняття «конвеєри» (програмні канали)?
Опишіть поняття «черги повідомлень»? Чим відрізняються черги повідомлень від поштових скриньок?
7. Проблема тупиків і методи боротьби з ними
Контрольні запитання
Що таке тупиковий стан? Перерахуєте умови, при яких виникає тупик.
Що є причиною виникнення тупиків на SR- pecypcaх ?
Приведіть приклад графа ресурсів, що повторно використовуються. Що дозволяє зробити ця модель Холта?
Приведіть приклад теоретико-множинного опису мережі Петрі.
Що таке маркування мережі Петрі? Що є простором можливих станів мережі Петрі?
Приведіть приклад графічного представлення мережі Петрі.
Опишіть поняття «запобіганням тупиками»? Як його можна реалізувати?
Опишіть поняття «обхід тупика»? Приведіть алгоритм банкіра Дейкстри.
Опишіть поняття «небезпечний стан»? Приведіть приклад небезпечного стану на моделі станів системи.
Опишіть метод виявлення тупика за допомогою редукції графа ресурсів, що повторно використовуються .
Опишіть алгоритм виявлення тупика по наявності замкнутого ланцюжка запитів.
8. Сучасні операційні системи
Контрольні запитання
Опишіть основні архітектурні особливості ОС UNIX.
Перерахуєте і поясніть основні поняття системи UNIX.
Що робить системний виклик fork()? Яким чином здійснюється в UNIX запуск нової задачі?
Опишіть основні моменти, пов'язані із захистом файлів в UNIX.
Розкажіть про особливості семафорів в UNIX. Навіщо в семафорних операціях дії здійснюються відразу над безліччю семафорів?
Що означає виклик віддаленої процедури (RPC)?
Які механізми використовує OS/2, щоб зменшити потреби в оперативній пам'яті і збільшити продуктивність системи?
Чому про QNX часто говорять «мережева» ОС?
Опишіть мережевий протокол FLEET?
Які функції реалізує ядро QNX?
В чому ви бачите принципові відмінності між ядром Windows NT 4.0, яке вважають побудованим за мікроядерними принципами, від ядра QNX?
Розкажіть про основні механізми, які є в QNX для організації розподілених обчислень.
Таблиця№1
Контрольна робота №1
Контрольна робота №2
Контрольна робота №3
Лабораторна робота №4
Лабораторна робота №6
Лабораторна робота№8
1
1,2
1
3
2
1,2
2
4
3
1,2
3
5
4
1,2
4
6
5
1,2
5
7
6
1,2
6
8
7
1,2
7
9
8
1,2
8
10
9
1,2
9
1
10
1,2
10
2
11
1,2
11
3
12
1,2
12
4
13
1,2
1
5
14
1,2
2
6
15
1,2
3
7
16
1,2
4
8
17
1,2
5
9
18
1,2
6
10