Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sam_R_OS.doc
Скачиваний:
2
Добавлен:
19.11.2019
Размер:
5.27 Mб
Скачать

Засоби виклику підпрограм і задач

Операційна система, як однозадачна, так і багатозадачна, повинна надавати задачам виклику підпрограм операційної системи, бібліотечних підпрограм, а також мати засіб для запуску задач, а при багатозадачній роботі - засобу швидкого переключення з задачі на задачу. Виклик підпрограми відрізняється від запуску задачі тим, що в першому випадку адресний простір залишається таким же (таблиця LDT залишається колишньою), а при виклику задачі, адресний простір цілком міняється.

Виклик підпрограм без зміни кодового сегмента в захищеному режимі процесора і386 виробляється аналогічно виклику в реальному режимі за допомогою команд JMP і CALL.

Для виклику підпрограми, код якої знаходиться в іншому сегменті (який може належати бібліотеці, іншій задачі операційної системи), процесор і386 надає 2 варіанти виклику, причому обоє використовують захист за допомогою прав доступу.

Перший спосіб складається через безпосередню вказівцу в поле команди JMP чи САLL селектора сегмента, що містить код підпрограми, що викликають, а також зсув у цьому сегменті адреси початку підпрограми.

Мал. 2.25.Безпосередній виклик підпрограми

Схема такого виклику зображена на малюнку 2.25. Тут і далі показаний тільки етап одержання лінійної адреси у віртуальному просторі, а наступний етап (маємо на увазі те, що механізм підтримки сторінок включений) перетворення цієї адреси в номер фізичної сторінки пропущений, тому що він не містить нічого специфічного в порівнянні з доступом до сегмента даних, розглянутого вище. Дозвіл виклику відбувається в залежності від значення поля чи С у дескрипторі сегмента викликуваного коду. При С=0, викликуваний сегмент не вважається підлеглим і виклик дозволяється, за умови, що рівень прав зухвалого коду не менший рівня прав викликуваного сегмента. При С=1, викликуваний сегмент вважається підлеглим і допускає виклик із коду з будь-яким рівнем прав доступу, але при виконанні, підпрограма наділяється рівнем прав коду, що викликав.

Мал. 2.26. Формат дескриптора шлюзу виклику підпрограми

Мал. 2.27. Виклик підпрограми через шлюз виклику

Керування введенням - виведенням

Однією з головних функцій ОС є керування пристроями введення - виведення комп'ютера. ОС повинна передавати пристроям команди, перехоплювати переривання й обробляти помилки; вона також забезпечую інтерфейс між пристроями й частинами системи. З метою розвитку, інтерфейс повинен бути однаковим для всіх типів пристроїв (незалежно від них).

Фізична організація пристроїв введення-виведення

Пристрої введення - виведення поділяють на два типи: блок - орієнтовані пристрої і байт - орієнтовані пристрої. Блок - блок - орієнтовані пристрої зберігають інформацію в блоках фіксованого розміру, кожний з який має свою власну адресу. Найпоширеніший блок - блок - орієнтований пристрій - диск. Байт - байт – орієнтовані на адресовані пристрої, що і не дозволяють робити операцію пошуку. Вони генерують чи споживають послідовність байтів. Прикладами є термінали, рядкові принтери, мережні адаптери. Однак, деякі зовнішні пристрої не належать до класів, наприклад, годинник, що, з одного боку, не адресує, а з іншого боку, не породжує потоку байтів. Цей пристрій тільки видає сигнал переривання в певні моменти часу. Зовнішній пристрій, звичайно, складається з механічного й електронного компонента. Електронний компонент називається контролером чи адаптером пристрою. Механічний компонент є власне пристроєм. Деякі контролери можуть керувати декількома пристроями. Якщо інтерфейс між контролером і пристроєм

стандартизований, то незалежні виробники можуть випускати сумісні як контролери, так і пристрої.

Операційна система, звичайно, має справу не з пристроєм, а з контролером. Контролер, як правило, виконує прості функції, наприклад, перетворює потік бітів у блоки, що складаються з байт і здійснює контроль та виправлення помилок. Кожний контролер має кілька регістрів, що використовують для взаємодії з центральним процесором. У деяких комп'ютерах вони є частиною фізичного адресного простору. У таких комп'ютерах немає спеціальних операцій введення-виведення. В інших комп'ютерах адреси регістрів введення-виведення, названі портами, утворюють власний адресний простір за рахунок введення спеціальних операцій введення-виведення (наприклад, команди IN і ОUT у процесорах і86).

ОС виконує введення-виведення, записуючи команди в регістри контролера. Наприклад, контролер гнучкого диска ІВМ РС приймає 15 команд, таких як READ, WRITE, SEEK, FORMAT. За умови прийняття команди, процесор залишає контролер і займається іншою роботою. При завершенні команди, контролер організує переривання для того, щоб передати керування процесором операційній системі, що повинна перевірити результати операції. Процесор одержує результати і статус пристрою, читаючи інформацію з регістрів контролера.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]