Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПЗ_лекції.docx
Скачиваний:
148
Добавлен:
23.02.2016
Размер:
136.33 Кб
Скачать

2.Переривання персональної кс.

Структуру переривань показано на рисунку 7.1.

Рис.7.1. Схема переривань комп’ютерів. З’єднання між пристроями і контролером переривань в дійсності є спеціальними лініями шини, а не виділеними провідниками.

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

Номер пристрою використовуються в якості індексу в таблиці вектора переривань з якої береться нове значення лічильника команд. Новий лічильник команд вказує на початок відповідної процедури обробки переривання.

Переривання, які залишають машину в строго визначеному стані називаються точними. Вони мають чотири властивості:

  1. Лічильник команд зберігається у відомому місці;

  2. Всі команди до тієї, на яку вказує лічильник команд, виконані повністю;

  3. Стан команди, на яку вказує лічильник команд - відомий.

Лекція 8.

Програмне забезпечення вводу-виводу.

1.Задачі програмного забезпечення вводу-виводу.

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

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

Більшість операцій вводу-виводу на фізичному рівні є асинхроними. Центральний процесор запускає перенесення даних і займається іншими задачами, поки не прийде переривання.

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

Рис.8.1. Програмні рівні введеня-виведення

Ще одним аспектом програмного забезпечення вводу-виводу є буферизація. Часто дані, які поступають з пристрою не можуть бути збережені там, куди вони направляються. Операційна система повина вміти керувати як пристоями загального глобального доступу, так і вітділеними пристроями.

2.Способи здійснення операцій вводу-виводу.

Існує три фундаментально різних способи здійснення операцій вводу-виводу. Розглянемо програмне введення-виведення. Всю роботу при такому способі виконує центральний процесор.

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

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

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

Один з найкращих способів полягає в блокувані драйвера, який розпочав операцію вводу-виводу до самого закінчення цієї операції і отримання переривання. Драйвер може заблокувати себе сам, виконавши на симафорі процедури down, write, reseive на повідомленні.

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

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

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

Для керування кожним пристроєм вводу-виводу підключеним до персонального комп’ютера потрібна спеціальна програма, яку називають драйвером пристрою.

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

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

Обмін інформацією між драйверами і контролерами пристроїв йде по шині.

Рис.8.2. Логічне розміщення драйверів пристроїв.

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

Починаючи з MS-DOS перейшли до моделі динамічного підвантаження драйверів під час роботи системи.

  1. Способи здійснення введення-виведення.

  • Програмоване введення-виведення. Процесор відправляє необхідні команди контролеру введення-виведення; після цього процес знаходиться в стані очікування закінчення операції введення-виведення.

  • Прямий доступ до пам'яті. Модуль прямого доступу до пам'яті керує обміном даними між основною пам’яттю і контролером введення-виведення. Процесор відправляє запит на передачу блоку даних модулю прямого доступу до пам'яті, а переривання відбувається тільки після передачі всього блоку даних.

Зв'язок між перерахованими способами відображено в таблиці 8.1

Таблиця 8.1

В більшості комп’ютерних систем основним способом передавання даних , який підтримується операційною системою, є прямий доступ до пам'яті.

  1. Еволюція функцій введення-виведення.

Етапи розвитку функціонування пристроїв введення-виведення:

  1. Процесор безпосередньо керує периферійними пристроєм.

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

  3. Модуль введення-виведення отримує можливість безпосередньої роботи з пам’яттю з використанням DMA. З’являється можливість переміщення блоків даних в пам'ять або без неї без використання процесора (за виключенням моментів початку і кінця передачі даних).

  4. Модуль введення-виведення удосконалює і стає окремим процесором, що має спеціалізовану систему команд, призначених для введення-виведення. Центральний процесор дає завдання процесору введення-виведення виконати програму введення-виведення, яка знаходиться в основній пам'яті. Процесор введення-виведення здійснює вибірку і виконання відповідних команд без участі центрального процесора. Така процедура дозволяє центральному процесору визначити послідовність виконуваних функцій введення-виведення і бути перерваними тільки при виконанні всієї послідовності.

  5. Модуль введення-виведення володіє своєю локальною пам’яттю і є, по суті, окремим комп’ютером.