ЗНАЕТЕ ЛИ ВЫ?

Функціонування комп'ютерної системи



Перевага описаного модульного підходу до апаратур у тім, що центральний процесор, пам'ять і зовнішні пристрої можуть функціонувати паралельно. Роботою кожного пристрою управляє спеціальний контролер. При необхідності виконання вводу-виводу центральний процесор генерує переривання, у результаті якого викликається операційна система, у свою чергу, як реакція на переривання запускає драйвер пристрою, який відповідно активізує його контролер. Кожен контролер пристрою має локальний буфер – спеціалізовану пам'ять для обміну інформацією між комп'ютером і пристроєм. Для того, щоб контролер міг почати вивід на пристрій, попередньо центральний процесор (точніше, драйвер пристрою, запущений на ньому) повинен переслати інформацію із заданої області оперативної пам'яті в буфер пристрою. Далі контролер пристрою вже виконує вивід інформації з буфера на сам пристрій (наприклад, записує її в задану область жорсткого диска). По закінченні обміну інформацією, контролер генерує сигнал про переривання ( interrupt )по системній шині, цим інформуючи процесор про закінчення операції. Для того, щоб уникнути повторних пересилань більших обсягів інформації, у сучасних комп'ютерах застосовують DMA ( Direct Memory Access ) – контролери– контролери із прямим доступом до оперативної пам'яті. Такі контролери використають при обміні із пристроєм не свою спеціалізовану пам'ять, а прямо область оперативної пам'яті, у якій і розміщається буфер обміну.

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

Операційну систему можна розглядати як програму, керовану перериваннями ( interrupt - driven program ). Переривання центрального процесора передає керування підпрограмі обробки даного виду переривань, що є частиною ОС. У більшості комп'ютерів цей механізм реалізований через вектор переривань ( interrupt vector )– резидентний масив в оперативній пам'яті, у якому зберігаються доступні по номерах переривань адреси підпрограм-оброблювачів переривань (модулів ОС). При обробці переривання апаратури й ОС зберігають адресу перерваної команди При поновленні обчислень буде знову повторене виконання перерваної команди.

Є два різновиди режиму вводу-виводу – синхроннийй асинхронний.

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

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

Таблиця стану пристроїв

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

Архітектура синхронного (a) і асинхронного (b) вводу-виводу ілюструється на рис. 4.3.

Рис. 4.3. Архітектура синхронного й асинхронного вводу-виводу

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

На рис. 4.4 показано приклад стану таблиці пристроїв вводу-виводу, збереженою операційною системою. Для кожного пристрою зберігається інформація про його ім'я, стан, а для зайнятих пристроїв – адреса початку й довжина порції інформації, що підлягає обміну. Якщо для деякого пристрою (у прикладі – диск3 ) є кілька запитів на ввод-вивід, всі вони організуються в чергу й обслуговуються по черзі, у міру звільнення пристрою.

Рис. 4.4. Приклад стану таблиці зовнішніх пристроїв ОС

Прямий доступ до пам'яті (Direct Memory Access - DMA) - більше ефективний метод роботи контролерів пристроїв вводу-виводу, використовуваний для роботи високошвидкісних пристроїв, здатних передавати інформацію зі швидкістю, близької до швидкості роботи пам'яті

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

Структура пам'яті

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

Як вторинна пам'ять найчастіше використаються жорсткі диски (hard disks). Контролер диска визначає логіку взаємодії між пристроєм і комп'ютером.

Системи пам'яті організовані в ієрархію, виходячи з їхньої швидкодії, вартості й можливості збереження інформації (стійкості). Для оптимізації роботи пам'яті будь-якого виду використається асоціативна пам'ять (кэш – cache), розташована в більше швидкодіючих системах пам'яті й зберігаюча елементи, що найбільш часто використовувані у повільній пам'яті. Із цього погляду, оперативну пам'ять можна розглядати як кэш для зовнішньої пам'яті. Кеш-пам'ять – це, по суті справи, асоціативний список пар (Адреса, Значення), причому апаратний пошук у ній відбувається за адресою як по ключу. Таким чином, перед звертанням до повільної зовнішньої пам'яті спочатку відбувається пошук по заданій адресі в кеш-пам'яті, і тільки якщо він не привів до успіху, виконується стандартне звертання до зовнішньої пам'яті. Принцип кэшування дуже важливий і дозволяє істотно прискорити роботу із зовнішньою пам'яттю. Однак він вимагає реалізації спеціальної політики керування кеш-пам'яттю, тому що кеш вводить додатковий рівень в ієрархії пам'яті й вимагає погодженості даних, збережених одночасно на різних рівнях пам'яті. Апаратури й ОС підтримують кэш команд, кэш даних, кэш жорсткого дискай т.д. – для всіх видів пам'яті.

Ієрархія пристроїв пам'яті (у спрощеному виді) показана на рис. 4.6

Рис. 4.6. Ієрархія пристроїв пам'яті

Більше швидкі види пам'яті на схемі розташовані вище, більше повільні - нижче. Схема особливих коментарів не вимагає. Деякі часто використовувані види зовнішньої пам'яті:

· флэш-память (флэшка)– зовнішня пам'ять компактного розміру, модуль якої підключаються через USB-порт. Параметри: обсяг - до 128 гігабайт і більше; швидкість обміну через порт USB 2.0: 240 - 260 мегабіт у секунду;

· зовнішній жорсткий диск (ZIV driveй інші) – обсяг до 1 терабайта; працює також через порт USB;

· BluRay – диски– новий різновид компакт-дисків великої ємності (однобічні – 25 гігабайт, двосторонні – 50 гігабайт). Для порівняння, стандартна ємність диска DVD становить 4.7 гігабайт.

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

Використання базового регістра й регістра границі ілюструється на рис. 4.8.

Рис. 4.8. Використання регістра бази й регістра границі для захисту пам'яті

На схемі завданню 2 виділена область пам'яті, починаючи з адреси 300040 ( що зберігається в регістрі бази), довжиною 120900 ( що зберігається в регістрі границі), тобто по адресу 420939 включно. Обіг, наприклад, за адресою 420940 із програми завдання 2 приводить до переривання як неприпустиме - спрацьовує захист пам'яті.





Последнее изменение этой страницы: 2016-07-11; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.238.190.82 (0.005 с.)