момент трансляції віртуального адресу ми попадаємо на сторінку, що знаходиться на НЖМД, то виникає апаратне переривання – відсутня сторінка в ОП.
Тут спрацьовує механізм ОС.
Реакція ОС на переривання ”відсутня сторінка в ОП”.
ОС завантажує сторінку в ОП на порожнє місце;
модифікує таблицю трансляції сторінки (адрес + колонка1);
передає управління задачі, що викликає переривання.
Як з’ясувати де знаходиться порожнє місце?
Для ідентифікації сторінки, що є зайнятою чи вільною ОС веде спеціальний вектор вільних сторінок, в якому зайняті сторінки позначаються як 1, а вільні як 0.
Якщо відсутня вільна сторінка, ОС повинна попередити про вивантаження деякої сторінки з ОП.
@ лекція 6 ( 21.03.03 )
Дії ОС по вивантаженню сторінок.
Стратегія робочої множини сторінок
ОС по кожній сторінці ОП веде лічильник.
На початку значення лічильника рівне 0
через квант часу ОС визначає ті сторінки, що є активними і збільшує значення лічильника для активних сторінок.
При визначенні сторінки, яку необхідно вивантажити ОС вибирає сторінку з найменшим значенням лічильника.
Через час , - фіксоване, ОС встановлює значення лічильника, які більше порогового значення, в порогове значення
1) серед сторінок, які знаходяться в ОП, є множина сторінок, які не можна вивантажити
2) є системні задачі, які теж не можна вивантажити
3) є прикладні задачі, які теж не можна вивантажити
Задачі реального часу та ядро ОС
Ядро ОС апріорі зафіксоване в реальній пам’яті
Існують системні задачі (драйвери), які вимагають фіксації в реальній ОП
Існують прикладні задачі(real time), які теж необхідно фіксувати в реальній пам’яті
Для фіксування в реальній памяті задачі існують відповідні API
Алгоритми управління ресурсами CPU
Управління CPU на основі апарату переривань.
Управління CPU на основі апарату переривань є неефективним.
Наприклад
виконання задачі, що не вимагає довгий час переривань, тому програма може тривати довгий час
Управління CPU на основі квантування часу
В архітектурі сучасних ЕОМ існує декілька лічильників часу (таймер, інтервальний таймер).
Інтервальний таймер відліковує проміжки часу(фіксовані проміжки часу(Intel) і
довільний(IBM mainframe)) Інтервальний таймер видає переривання коли
значення часу дорівнює „0”
Як системні так і прикладні задачі можуть виставляти до ОС запити на інтервал
часу. Диспетчер, що відповідає за призначення часу інтервального таймеру,
вибирає найменше значення часу, що встановлено на даний момент в ОС. Цей
лічильник і диспетчер зменшує час для кожної задачі в середовищі ОС. Задача, у
котрої значення інтервалу таймеру = 0, активується
Управління CPU на основі пріоритету
З кожною задачею, що функціонує в середовищі ОС, пов’язане додатнє число, що називається пріорітетом
Черга готових до виконання задач відсортована по пріоритету. При зміні контексту, ОС повертає задачу, що відпрацювала свій квант часу (коли вона не
затримана), в чергу готових до виконання задач з урахуванням пріоритету.
ОС побудована так, що системні задачі завжди мають більший пріоритет ніж
прикладні задачі.
Управління CPU на основі динамічного пріоритету
В момент запуску задачі, динамічні та статичні задачі мають однаковий пріоритет. В момент перепланування CPU динамічний пріоритет зростає на певне значення (на мал.: +5). Задача, в якої забрали CPU, вставляється в чергу готових до виконання з урахуванням її статичного пріоритету.
Управління CPU з урахуванням підзадач прикладної задачі
Прихована комірка зшиває список навпаки
В середовищі ОС з підзадачами (потоками) пріоритет підзадачі не перевищує пріоритет основної задачі.
Наприклад
100 мсек , що надається головній задачі, розподіляється з урахуванням її підзадач.
Реально в середовищі ОС існує єдиний список (або черга) задач. Цей список ієрархічний( на першому рівні – головна задача ).
Серед елементів цього списку є TCB(Task Kontrol Block)-блоки затриманих задач.
@ лекція 7 ( 28.03.03 )
Підсистема вводу / виводу
Канал – спеціальний процессор, що виконує операції вводу/виводу.
Пристрій управління ( на малюнку П/У ) враховує специфіку кінцевого пристрою.
Стандартизація інтерфейсу:
стандарт ISA : Intel
стандарт MCA ( мікро канальна архітектура ): IBM, Apple
Контролер НЖМД :
- стандартний IDE-контролер
Алгоритм роботи IDE-контролеру:
вибрати циліндр;
відшукати початок;
пропустити (n-1) сектор
прочитати n-й сектор
Всі ці команди виконує CPU через спеціальний порт (якщо драйвер відсутній - BIOS)
Для глобалізації дії IDE-контролера розробили SCSI-контролер.
SCSI-контролер :
CPU не виконує ніякої обробки, лише подає команди.
LUN (logic unit number): пристрій отримує дані, декодує і виконує.
Робота контролера в тому, що потрібно передати дані до „лунки” LUN.
Переглядаємо лунки до певного номера. Власне комп’ютеру відповідає LUN0.
SCSI-контролер в 5 разів швидше IDE-контролера. Але потрібно було забезпечити надійдість. Було запропоновано RAID-контролер.
RAID-контролер [0,1,2,3,4,5] – режими роботи
автоматично дублював диски
технологія ланцюжкового запису даних на n накопичувачах ( n>2 ) (якщо з трьох один диск вилітає, все зберігається)
Режим роботи RAID-контролера
Як правило, RAID – контролер будується як спеціфлізований комп’ютер (в нього має бути процессор, має досить великий об’єм ОП)
Компоненти підсистеми вводу/виводу
BIOS – базова система вводу/виводу, поставлена з ПЕОМ
фізична система вводу/виводу – базується на BIOS
Логічна система вводу/виводу:
логічний диск / том;
каталог;
файл;
операції вводу/виводу в межах файла.
Файл в ОС інтерпретуються як ресурси.
оpen() – регіструє файл як ресурс ОС.
Задача А
В ОС типу MS-DOS максимальна кількість файлів, які можна відкрити як ресурс, фіксована і описується в файлі confic.sys як:
file = ...
buffer = ... .
Для захисту файлів як ресурсів в деяких ОС будуються альтернативні списки відкритих файлів (недокументована можливість ОС).
Виконання операції виводу на накопичувач
список блоків
В момент роботи мультизадачної ОС формується множина записів для виводу на накопичувач. Кожен запис має свою адресу на накопичувачі(абсолютну чи відносну).
У фізичного пристрою час переміщення головки між циліндрами набагато більший за час оберту шпинделя. Таким чином ОС пробує за один оберт шпинделя записати всі записи в межах однієї доріжки. Запис, який перенесено на накопичувач, відмічається як умовно вільний. В подальшому при спробі прочитати