ЗНАЕТЕ ЛИ ВЫ?

Ефективність і продуктивність дискової пам'яті



Ефективність використання дискової пам'яті залежить від:

· Алгоритмів розподілу дискової пам'яті й керування директоріями;

· Типів даних, збережених в елементі директорії для файлу.

Для підвищення продуктивності роботи з диском використаються наступні методи:

· Кэшування диска– використання спеціальної області основної пам'яті для часто використовуваних блоків диска;

· Звільнення прочитаного (free-behind)і випереджальне зчитування (read-ahead)– методи оптимізації послідовного доступу до диска, які полягають у тім, що основна пам'ять, у якій зберігалися копії прочитаних блоків, звільняється, а разом із черговим блоком файлу зчитуються в основну пам'ять і кілька наступних блоків;

· Організація віртуальних дисків -поліпшення продуктивності ПК шляхом виділення області пам'яті під віртуальний диск (RAM-диск).

Кэшування диска

Буферна кеш-пам'ять.В операційних системах використаються різні методи кэшування диска (рис. 20.8).

Рис. 20.8. Різні методи розміщення кэша для диска.

В основній пам'яті зберігаються: віртуальні диски, буфери блоків оброблюваних файлів, таблиці відкритих файлів. У буферній пам'яті контролера диска зберігаються копії оброблюваних блоків файлу.

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

Рис. 20.9. Ввід-вивід без уніфікованої буферної кеш-пам'яті.

Рішення даної проблеми – використання уніфікованої буферної кеш-пам'яті.Уніфікована буферна кеш-пам'ять використає той самий кэш сторінок для кэшування й файлів, відображуваних в память, і звичайних операцій вводу-виводу через файлову систему. Схема вводу-виводу з використанням уніфікованої буферної кеш-пам'яті зображена на рис. 20.10.

Рис. 20.10. Ввід-вивід з використанням уніфікованої буферної кеш-пам'яті.


Лекція 16. Мережева файлова система NFS

План

· Опис NFS

· Специфікація NFS

· Список експорту

· Протокол NFS

· Три основних рівні архітектури

 

Система NFS (Network File System) -одна з найпоширеніших мережних файлових систем, розроблена фірмою Sun Microsystems і використовувана в системі Solaris.

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

Дана реалізація є частиною операційних систем Solaris й SunOS, що використають швидкий, але менш надійний асинхронний мережний протокол, заснований на датаграммах (UDP/IP), і мережа Ethernet.

У реалізації NFS використаються процеси-демони nfsd(обробка NFS-запитів клієнтів) і mountd(обробка запитів монтування), а також biod(асинхронний ввід-вивід блоків віддалених файлів на клієнті).

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

Віддалена директорія монтується на локальну директорію. Змонтована директорія трактується як повне піддерево локальної файлової системи, заміняючи під дерево локальної файлової системи.

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

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

NFS спроектована для роботи в неоднорідному оточенні різних машин, ОС і мережних архітектур; специфікація NFS від них не залежить.

Ця незалежність досягнута завдяки використанню примітивів RPC (Remote Procedure Call – віддалений виклик процедури),реалізованих поверх External Data Representation (XDR)– протоколу – машинно-незалежного подання даних для їхньої передачі через мережу.

Специфікація NFS

Специфікація NFS розрізняє сервіси, забезпечувані механізмом монтування, і фактичні віддалені файлові системи.

Протокол монтування в NFS установлює первісний логічний зв'язок між сервером і клієнтом.

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

Запит на монтування відображається на відповідний RPC і передається на mount-сервер, що виконує на серверній машині.

Список експорту

Список експорту(export list)указує список файлових систем, які сервер експортує для монтування, а також імена машин, на яких дозволено їх монтувати.

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

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

 

Протокол NFS надає набір RPC для віддалених операцій над файлами. Процедури підтримують наступні операції:

· Пошук файлу в директорії

· Читання набору елементів директорії

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

· Доступ до атрибутів файлів

· Читання й запис файлів

NFS – сервери не мають стану(stateless); кожен запит повинен мати повний набір аргументів.

Модифіковані дані повинні бути спрямовані на диск сервера до того, як результати повернуться до клієнта (губиться можливість кєшування).

NFS - протокол не підтримує механізми керування паралельним доступом.

Система NFS має три основних рівні архітектури:

· UNIX – інтерфейс файлової системи(заснований на викликах open, read, write й close calls і на дескрипторах файлів).

· Рівень Virtual File System(VFS) – розрізняє локальні й віддалені файли, і надалі локальні файли обробляються відповідно до типів їхніх файлових систем. VFS активізує операції, специфічні для конкретної файлової системи, для обробки локальних запитів відповідно до типів файлових систем. Рівень VFS викликає процедури NFS – протоколу для віддалених запитів.

· NFS – сервісний рівень– нижній рівень архітектури; реалізує NFS – протокол.

Схема архітектури NFS наведена на рис. 20.13.

Рис. 20.13. Схема архітектури NFS.

Трансляція імен шляхів в NFSвиконується шляхом розбивки імені шляхи на послідовність імен компонент і виконання окремого NFS - пошуку для кожної пари (компонента, vnode директорії).

Для прискорення пошуку на клієнтській машині організується кэш імен віддалених директорій.

Віддалені операції NFSзабезпечують майже однозначну відповідність між звичайними системними викликами UNIX і віддаленими викликами процедур протоколу NFS (за винятком відкриття й закриття файлів).

NFS заснована на парадигмі віддалених сервісів, але підтримує буферизацію й кэшування для підвищення ефективності.

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

Клієнти не звільняють затримувані блоки доти, поки сервер не підтвердить, що вони записані на диск.

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

 


Лекція 17. Системи вводу-виводу

План

· Присторої вводу-виводу

· Основні концепціїї

· Опитування пристроїв

· Переривання

· Ввод-вивід з прямим доступом до памяті (DMA)

· Інтерфейс вводу-виводу

· Блочні и Символьні пристрої

· Годинники и таймери

· Синхронний і асинхронний ввод-вивід

· Підсистема ввода-виводу в ядрі ОС

· Структури даних для ввода-виводу в ядрі ОС

· Життєвий цикл запросу на ввод-вивід

· Продуктивність вводу-виводу

Рис. 21.1. Типова структура загальної шини персонального комп'ютера.

Деякі пояснення до схеми.

IDE – типовий інтерфейс для підключення усередині корпуса комп'ютера через шлейфивнутрішніх жорстких дисків, пристроїв CD – і DVD-ROM.Шлейф має характерну плоску форму, шириною 2 -3 см, дуже малі товщини, із широким роз'ємом. У сучасних комп'ютерах для внутрішніх дисків замість IDE використається більше високошвидкісний інтерфейс SATA.

Контролер і шина SCSI – можливість підключення до одного SCSI-порту ланцюжка (гірлянди) SCSI-пристроїв(дисків, сканерів, пристроїв CD-ROM й DVD-ROM й ін.), кожне з яких має свій, унікальний у даному ланцюжку, номер – SCSI IDвід 0 до 9. Зручність інтерфейсу SCSI у тім, що ланцюжок організується із зовнішніх пристроїв, кожне з яких з'єднується SCSI-кабелем з наступної, а останній пристрій у ланцюжку містить включеного термінатора, що позначає кінець ланцюжка. Це зручно при нарощуванні обсягу зовнішньої пам'яті комп'ютера. У таблиці 1 наведено приклад адрес зовнішніх пристроїв персонального комп'ютера.

Таблиця 1. Приклад таблиці адрес зовнішніх пристроїв ПК (частково)
діапазон адрес пристроїв вводу-виводу пристрій
000-00F DMA-контролер
020-021 контролер переривань
040-043 таймер
200-20F ігровий контролер
2F8-2FF послідовний порт (вторинний)
320-32F контролер жорсткого диска
378-37F паралельний порт
3D0-3DF графічний контролер
3F0-3F7 контролер гнучких дисків (дискет)
3F8-3FF послідовний порт (первинний)

Опитування пристроїв

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

· command-ready - готово до виконання команд;

· busy - зайнято;

· error - помилка.

При виконанні вводу-виводу апаратури організує цикл busy-waitочікування вводу-виводу із пристроєм: якщо пристрій зайнятий, процес чекає його звільнення.

Переривання

Лінія запитів на переривання (interrupt request – IRQ)перемикається пристроєм вводу-виводу, що сигналізує за допомогою запиту на переривання про початок або закінчення вводу-виводу.

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

Вектор переривань– резидентний масив, що містить адреси оброблювачів переривань в операційній системі, - використається з метою переадресування переривання для обробки відповідним оброблювачем (handler).

Робота з вектором переривань заснована на пріоритетах зовнішніх пристроїв, що ініціювали переривання.

У таблиці 2 наведено номери переривань у процесорі Intel Pentium.

Таблиця 2. Tаблица номерів переривань у процесорі Intel Pentium
Номер переривання Опис
помилка при розподілі
виключення при налагодженні
переривання по null
крапка зупинки
переривання, виявлене INTO
виключення по виходу за межі
невірний код операції
пристрій недоступно
подвійне переривання
переповнення сегмента співпроцесора
невірний сегмент стану завдання
сегмент відсутній
помилка стека
загальне переривання по захисту
відмова сторінки
(зарезервовано Intel, не використати)
помилка в операції із плаваючою крапкою
контроль вирівнювання
контроль пристрої
19-31 зарезервовано Intel, не використати
32-255 маскуємі переривання

Ввід-вивід із прямим доступом до пам'яті (DMA)

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

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

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

Більше низький рівень, рівень драйверів пристроїв, приховує розходження між контролерами вводу-виводу конкретних пристроїв від ядра ОС.

Пристрою вводу-виводу розрізняються по багатьом параметрам у силу їхньої специфіки, наприклад:

· Пристрій для роботи з потоками символів або із блоками;

· Пристрій послідовного або прямого доступу;

· Поділюване або спеціалізоване (монополізуючий) пристрій;

· Розходження по швидкості виконання операцій пристроями;

· Пристрій для читання/запису, або тільки для читання, або тільки для запису.

Класифікація пристроїв вводу-виводу по різних характеристиках й їхніх прикладах наведені в таблиці 3.





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

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