Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsiya_1-10.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
528.38 Кб
Скачать

Загальні положення.

До будь-якої ОС входять програмні модулі, що забезпечують керування пристроями введення виведення ЕОМ. Ці програмні модулі називають драйверами пристроїв, а сукупність драйверів введення \ виведення утворить систему введення \ виведення, що входить складу ОС. Драйвер пристроїв – це програма, що забезпечує взаємодію ОС з фізичними пристроями. Система введення \ виведення (Input Output System) – це частина ОС, що забезпечує керування зовнішніми пристроями підключеними до ЕОМ. Основним завданням системи введення \ виведення є забезпечення безперервної організації, тобто планування й керування, і двосторонньої передачі даних між основною пам’яттю і зовнішніми пристроями з метою досягнення максимального перекриття в часі роботи цієї апаратури від процесора.

Склад систем введення \ виведення і отже й перелік драйверів пристроїв в різних ОС не співпадають, що пояснюється наявними відмінностями в апаратурі введення \ виведення, а також безліччю методів, які використовуються для керування цією апаратурою. Разом з тим. в більшості ОС існує деяке ядро системи введення \ виведення, що одержало назву базової системи вводу \ виводу.

Базова система вводу \ виводу (BIOS) – це частина програмного забезпечення ЕОМ, яка підтримує керування адаптерами зовнішніх пристроїв і яка представляє стандартний інтерфейс для забезпечення переносимостей ОС між ЕОМ з однаковим процесором. Базова система введення \ виведення як правило розробляється виготовлювачем ЕОМ, зберігається в постійному запам’ятовувальному пристрої і розглядається як частина ЕОМ. При побудові системи введення \ виведення апаратура вводу \ виводу розглядається як сукупність апаратних процесорів, які здатні працювати паралельно і незалежно один від одного, а також відносно центрального процесора. На таких процесора розвиваються так звані зовнішні процеси.

Зовнішні процеси, використовуючи апаратуру введення \ виведення, можуть взаємодіяти як між собою, так і з внутрішніми процесами, які розвиваються на центральному процесорі. Важливим фактором є те, що швидкості розвитку зовнішніх і внутрішніх процесів істотно розрізняються, причому ці розходження можуть досягати декількох порядків.

Система керування введенням \ виведенням являє собою один або кілька системних процесів, які належать ОС, які забезпечують інформаційну і керуючу взаємодію внутрішніх і зовнішніх процесів. Через цю систему відбувається ініціалізація, керування розвитку і знищення зовнішніх процесів. З погляду внутрішніх процесів користувачів система керування введення \ виведення представляє собою програмний інтерфейс із необхідними для цих процесів зовнішніми пристроями. У складі цього інтерфейсу, користувач має можливість виражати запити на виконання дії відносно зовнішніх пристроїв. При цьому розрізняють 3 типи дій:

1) Операції читання й запису даних

2) Операції керування пристроєм

3) Операції по перевірці стану пристроїв

При побудові системи керування введення \ виведення, керується прагненням зробити більшість її компонентів невидимими для користувачів, що досягається створенням розвинених драйверів зовнішніх пристроїв і зрозумілим інтерфейсом і доступними з будь-якої системи програмування. Для згладжування ефекту невідпорності швидкостей між внутрішніми і зовнішніми процесами, в системах керування введення \ виведення застосовують 3 основних методи:

1) Синхронізація по перериваннях введення \ виведення.

2) Буферизація введення \ виведення.

3) Блокування даних

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

Однією з головних функцій ОС є керування всіма пристроями введення \ виведення комп’ютера. ОС повинна передавати пристроям команди, перехоплювати переривання, і обробляти помилки. Вона також повинна забезпечувати інтерфейс між пристроями та іншою частиною системи. З метою розвитку інтерфейс повинен бути однаковий для усіх типів пристроїв.

ЛЕКЦІЯ 9

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

Пристрої введення \ виведення діляться на 2 типи:

1) Блок-орієнтовані

2) Байт-орієнтовані

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

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

Зовнішній пристрій зазвичай складається з механічно-електронного компонента. Електронний компонент називається контролером пристрою, або адаптером. Механічний компонент представляє власне пристрій. Деякі контролери можуть управляти декількома пристроями, якщо інтерфейс між контролером і пристроєм стандартизований, то незалежні виробники можуть випускати сумісні як контролери, так і пристрої.

ОС має справу не з пристроями, а з контролерами, які як правило виконують прості функції. Наприклад, перетворює потік біт у блоки, що складаються з байт, і здійснює контроль виправлення помилок. Кожний контролер має кілька регістрів, які використовуються для взаємодії між центральним процесором. В деякий комп’ютерах, ці регістри є частиною фізичного адресного простору. У такий комп’ютерах не має спеціальних операцій вводу \ виводу. В інших комп’ютерах адреси регістрів введення \ виведення, називані часто портами, утворять власний адресний простір за рахунок введення спеціальних операцій введення \ виведення (наприклад, команд in i out у процесорах I86). ОС виконує введення \ виведення .записуючи команди регістри в контролер, наприклад контролер гнучкого диску IBM PC приймає 15 команд.

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

ЛЕКЦІЯ 10

Організація програмного забезпечення вводу \ виводу

Основна ідея програмного забезпечення вводу \ виводу полягає в розбитті його на рівні, причому нижні рівні забезпечують екранування особливостей апаратури від верхніх, а ті у свою чергу забезпечують зручний інтерфейс для користувачів. Ключовим принципом є незалежність від пристрою. Вид програми не повинен залежати від того, чи читає вона дані з гнучкого диску, або з жорсткого диску. Дуже близькою до ідеї незалежності від пристроїв є ідея однакового іменування, тобто для іменування пристроїв повинні бути прийняті єдині правила. Іншим правилом є обробка помилок. Якщо контролер виявляє помилку читання, то він повинен спробувати її скорегувати. Якщо це не вдається, то виправленням помилок повинен зайнятися драйвер пристрою. Багато помилок можуть зникати при повторних спробах виконання операції введення \ виведення. Наприклад, помилки викликані наявністю порошин на головках читання або на диску, і тільки якщо нижній рівень не може впоратися з помилкою, він повідомляє про помилку на верхній рівень.

Ще одне ключове питання – це використання блокуючих (синхронних) і неблокуючих (асинхронних) передач. Більшість операцій фізичного введення \ виведення виконується асинхронно. Процесор починає передачу і переходить на іншу роботу, поки не настає переривання. Користувальницькі програми набагато легше писати, якщо операції введення \ виведення є блокуючими. Після команди Write програма автоматично припиняється доти, поки дані не попадуть у буфер програми. ОС виконує операцію введення \ виведення асинхронно, але представляє її для користувальницьких команд у синхронній формі. Остання проблема полягає в тому, що одні пристрої є поділюваними, а інші – виділеними. Диски – це поділювані пристрої тому, що одночасний доступ декількох користувачів до диска не є проблемою. Принтери – виділені.

Наявність виділених пристроїв створює для ОС деякі проблеми. Для рішення проблем доцільно розділити ПЗ введення \ виведення на 4 рівні:

  1. Обробка переривань

  2. Драйвери пристроїв

  3. Незалежний від пристроїв шар ОС

  4. Користувальницький шар ПЗ

Додатки

Системні визови

Обробка визовів

Система буферизації даних

Драйвери пристроїв

Обробка переривань

Запити переривань від пристроїв

Команди керування пристроями

Дані

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