
- •Питання контролю спз
- •Класифікація програмного забезпечення обчислювальних систем. Предмет та задачі спз.
- •Еволюція спз.
- •Призначення та склад операційних систем.
- •Основні принципи розробки системного програмного забезпечення.
- •Стратегії планування.
- •Дисципліни диспетчеризації.
- •3. Алгоритми в диспетчеризації з витісненням та без.
- •4. Способи забезпечення гарантованого обслуговування процесів.
- •6. Вплив планування на ефективність обчислювальних систем.
- •7. Використання динамічних пріоритетів.
- •1. Незалежні та взаємодіючі обчислювальні процеси.
- •2. Види задач синхронізації паралельних процесів.
- •3. Синхронізація за допомогою блокування пам’яті.
- •5. Команда “перевірка” та “встановлення”.
- •6. Використання семафорів для синхронізації та впорядкування паралельних процесів.
- •7. Монітороподібні засоби синхронізації паралельних процесів.
- •8. Поштові ящики.
- •9. Конвеєри.
- •10. Черги повідомлень.
- •Підходи до керування реальною пам’яттю.
- •Неперервний розподіл оперативної пам’яті.
- •Розподіл з перекриттям.
- •Статичний розподіл пам’яті.
- •Динамічний розподіл пам’яті.
- •Структура, основні принципи віртуалізації пам’яті.
- •1. Реальний і захищений режими роботи процесора.
- •Мал. 3.1 Схема визначення фізичної адреси для процесора 8086.
- •2. Нові системні регістри мікропроцесорів і80x86.
- •Мал. 7.2 Основні системні регістри мікропроцесорів і80x86.
- •4. Підтримка сторінкового способу організації віртуальної пам'яті.
- •Мал. 7 Дескриптор сторінки.
- •6. Захист адресного простору задач.
- •Якщо цільовий сегмент є сегментом стека, то правило перевірки має вид
- •1. Основні поняття і визначення процесу вводу/виводу.
- •2. Режими керування вводом/виводом.
- •Керування вводом/виводом.
- •3. Закріплення пристроїв, загальні пристрої вводу/виводу.
- •4. Основні системні таблиці вводу/виводу.
- •Процес управління вводом/виводом.
- •Синхронний і асинхронний ввід/вивід.
- •6. Кешування операцій вводу/виводу при роботі з накопичувачами на магнітних дисках.
- •Файлові системи fat, vfat, fat32, hpfs.
- •Структура системи файлів.
- •Файлова система ntfs (New Technology File System)
2. Режими керування вводом/виводом.
Я
к
відомо, є два основних режими вводу/виводу:
режим
обміну з опитуванням
готовності пристрою вводу/виводу і
режим обміну з перериваннями.
Розглянемо
рис.
Керування вводом/виводом.
Нехай для простоти керуванням вводом/виводом здійснює центральний процесор (у цьому випадку часто говорять про наявність програмного каналу обміну даними між зовнішнім пристроєм і оперативною пам'яттю, на відміну каналу прямого доступу до пам'яті, при якому керування вводом/виводом здійснює спеціальне додаткове устаткування; ці питання ми обговоримо трохи пізніше). Центральний процесор посилає пристрою керування команду виконати деяку дію пристрою вводу/виводу. Останній виконує команду, транслюючи сигнали, зрозумілі центральному пристрою, пристрою керування в сигнали, зрозумілі пристрою вводу/виводу. Але швидкодія пристрою вводу/виводу набагато менша швидкодії центрального процесора (часом на кілька порядків). Тому сигнал готовності (трансльований чи згенерований пристроєм керування і сигналізуючий процесору про те, що команда вводу/виводу виконана і можна видати нову команду для продовження обміну даними) приходиться дуже довго очікувати, постійно опитуючи відповідну лінію інтерфейсу на наявність чи відсутність потрібного сигналу. Посилати нову команду, не дочекавшись сигналу готовності, що повідомляє про виконання попередньої команди, безглуздо. У режимі опитування готовності драйвер, керуючий процесом обміну даними з зовнішнім пристроєм, саме і виконує в циклі команду «перевірити наявність сигналу готовності». Доти поки сигнал готовності не з'явиться, драйвер нічого іншого не робить. При цьому, природно, нераціонально використовується час центрального процесора. Набагато вигідніше, видавши команду введення/виведення, на час забути про пристрій вводу/виводу і перейти на виконання іншої програми. А появу сигналу готовності трактувати як запит на переривання від пристрою вводу/виводу. Саме ці сигнали готовності і є сигналами запиту на переривання.
Режим обміну з перериваннями по своїй суті є режимом асинхронного керування. Для того щоб не втратити зв'язок із пристроєм (після того як процесор видав чергову команду по керуванню обміном даними і переключився на виконання інших програм), може бути запушений відлік часу, протягом якого пристрій обов'язково повинен виконати команду і видати таки сигнал запиту на переривання. Максимальний інтервал часу, протягом якого пристрій введення/виведення чи його контролер повинні видати сигнал запиту на переривання, часто називають вставкою тайм-ауту. Якщо цей час минув після видачі пристрою чергової команди, а пристрій так і не відповів, то робиться висновок про те, що зв'язок із пристроєм загублений і керувати ним більше неможливо. Користувач і/чи задача одержують відповідне діагностичне повідомлення.
Драйвери, що працюють у режимі переривань, являють собою складний комплекс програмних модулів і можуть мати кілька секцій: секцію запуску, одну чи декілька секцій продовження і секцію завершення. Секція запуску ініціює операцію вводу/виводу. Ця секція запускається для включення пристрою вводу/виводу або просто для ініціації чергової операції вводу/виводу.
Секція продовження (їх може бути декілька, якщо алгоритм керування обміном даними складний і потрібно кілька переривань для поповнення однієї логічної операції) здійснює основну роботу по передачі даних. Секція продовження, власне кажучи, і є основним оброблювачем переривання. Використовуваний інтерфейс може вимагати для керування вводом/виводом кілька послідовностей керуючих команд, а сигнал переривання в пристрої, як правило, тільки один. Тому, після виконання чергової секції переривання, супервізор переривань при наступному сигналі готовності повинний передати керування іншій секції. Це робиться за рахунок зміни адреси обробки переривання після виконання чергової секції, якщо ж є тільки одна секція переривань, то вона сама передає керування тому чи іншому модулю обробки.
Секція завершення звичайно виключає пристрій вводу/виводу або просто завершує операцію.
Керування операціями вводу/виводу в режимі переривань вимагає великих зусиль з боку системних програмістів — такі програми створювати складніше, ніж ті, що працюють у режимі опитування готовності. Прикладом тому може служити ситуація з драйверами, що забезпечують друк. Так, в ОС Windows (і Windows 9x, і Windows NT) драйвер друку через паралельний порт працює не в режимі з перериваннями, як це зроблено в інших ОС, а в режимі опитування готовності, що приводить до 100%-го завантаження центрального процесора на весь час друку. При цьому, природньо, виконуються й інші задачі, запущені на виконання, але винятково за рахунок того, що ОС Windows реалізує витісняючу мультизадачність і час від часу перериває процес керування друком і передає центральний процесор іншим задачам.