
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 5: Архітектура ос. Управління процессами: Основні поняття. Семафори і монітори План
- •2. Керування процесами
- •Віртуальні машини - інший розповсюджений підхід до розробки операційних систем й їхніх користувальницьких інтерфейсів
- •Механізми й політики
- •Реалізація операційних систем
- •Генерація операційної системи
- •Перемикання з одного процесу на інший
- •Планувальники, що виконують диспетчеризацію процесів
- •Лекція 10. Методи синхронізації процесів План
- •Алгоритм рішення проблеми критичної секції
- •Алгоритм «в пиріжковій» (bakery algorithm)
- •Синхронізація на основі загальних семафорів
- •Реалізація семафорів
- •Рішення за допомогою семафорів завдання
- •Рішення за допомогою семафорів завдання "читачі - письменники"
- •Рішення за допомогою семафорів завдання " філософи, що обідають,"
- •Монітори
- •Лекція № 11. Управління памяттю План
- •Динамічне завантаження й динамічна лінковка
- •Оверлейна структура програми
- •Відкачка й підкачування
- •Лекція 13. Сегментна організація пам’яті. Віртуальна пам’ять
- •Оптимальний алгоритм заміщення сторінок
- •Сторінкова організація на вимогу в Windows nt
- •Лекція № 14. Системи файлів План
- •Типова організація файлової системи зображена на мал. 19.3.
- •Логічна організація директорій
- •Монтування файлових систем
- •Структура файлової системи
- •Лекція № 15. Віртуальні файлові системи План
- •Лекція 17. Системи вводу-виводу План
- •Опитування пристроїв
- •Переривання
- •Ввід-вивід із прямим доступом до пам'яті (dma)
- •Блокові й символьні пристрої
- •Мережні пристрої істотних відрізняються від блоків і символьних; мають свій власний інтерфейс і систему команд
- •Годинники й таймери
- •Блокуємий (синхронний) і не блокуємий (асинхронний) ввід-вивід
- •Структури даних для вводу-виводу в ядрі ос
- •Життєвий цикл запиту на ввід-вивід
- •Продуктивність вводу-виводу
- •Лекція 18. Мережі й мережеві структури. Класичні и сучасні мережеві комунікаційні протоколи План
- •Мережі Ethernet
- •Протокол tcp/ip
- •Функционирование Ethernet-мереж
- •Лекція 19: Безпека операційних систем і мереж. План
- •Лекція 20. Огляд архітектури й можливостей системи Linux: архітектура, ядро, поширення й ліцензування, принципи проектування, керування процесами План
- •Історія Linux
- •Ядро Linux
- •Сучасний стан Linux, дистрибутиви й ліцензування
- •Принципи проектування й компоненти системи Linux
- •Модулі ядра, що завантажують, Linux
- •Керування процесами в Linux
- •Планування завдань ядра й синхронізація в ядрі
- •Лекція 21. Огляд архітектури й можливостей системи Linux: керування пам'яттю, ресурсами, файлові системи, драйвери пристроїв, мережі, безпека План
- •Керування фізичною пам'яттю в Linux
- •Віртуальна пам'ять в Linux
- •Виконання й завантаження користувальницьких програм в Linux
- •Системи файлів Linux
- •Ввод й вивід в Linux
- •Взаємодія процесів в Linux
- •Структура мережі в Linux
- •Безпека в Linux
- •Розвиток і використання Linux
- •Лекція 22. Огляд архітектури й можливостей систем Windows 2000/xp/2003/Vista/2008/7 План
- •Система Windows 2000
- •Історія Windows
- •Принципи проектування Windows 2000 - розширюваність, переносимость, надійність, безпека, сумісність, продуктивність, підтримка інтернаціоналізації й локалізації.
- •Архітектура Windows 2000
- •Ядро Windows 2000
- •Обработка переривань у ядрі
- •Виконавча підсистема (executive) ос Windows 2000
- •Підсистеми оточення в Windows 2000
- •Лекція 23. Системні механізми Windows План
- •Система файлів Windows
- •Рограммный інтерфейс Windows
- •Програмний інтерфейс Windows: Керування процесами
- •Керування віртуальною й фізичною пам'яттю й робочими наборами в Windows
- •Лекція 24. Ос для мобільних пристроїв. Windows Mobile План
- •Особливості ос для мобільних пристроїв
- •Ринок ос для мобільних пристроїв
- •Перспективи ос для мобільних пристроїв
- •Лекція 25. Перспективи операційних систем і мереж План
- •Операційні системи інших великих фірм
- •Solaris - операційна система розробки фірми Oracle / Sun
- •Сучасні тенденції в розвитку ос
- •Нові ос сімейства Windows
- •Нові тенденції в розвитку ос
- •Графічні оболонки ос
- •Підтримка паралельних обчислень
- •Розвиток бездротових мереж
- •Перспективи розвитку ос
Структура файлової системи
Файл - логічна одиниця розподілу пам'яті. Він є також сукупністю логічно взаємозалежної інформації. Файлова система розташовується в зовнішній пам'яті (на дисках) і організована по рівнях. Структура багаторівневої файлової системи зображена на рис. 19.11.
Рис. 19.11. Багаторівнева файлова система.
На верхньому рівні абстракції працюють користувальницькі програми, що використають високорівневі примітиви виду WriteLine(F, X). Рівнем нижче розташовуються модулі інтерфейсу логічних файлів - логічних записів, блоків й операцій обміну. Ще нижче випливають модулі організації файлів, потім - операції базової системи файлів. На нижніх рівнях розташовуються драйвери пристроїв (керування вводом-виводом) і апппратура (пристрої вводу-виводу і їхні контролери).
Блок керування файлом (File control block - FCB) – структура в пам'яті, що містить інформацію про файл. Типова структура блоку керування файлом представлена в таблица 3.
Таблиця 3. Типова структура блоку керування файлом |
повноваження для роботи з файлом |
дати створення, доступу й модифікації файлу |
власник файлу, група, список керування доступом |
розмір файлу |
блоки даних файлу |
Системні структури в пам'яті для керування файловою системою
При відкритті файлу й при подальшому виконанні операцій над ним ОС зберігає в пам'яті цілий ряд системних структур, зображених на рис. 19.12.
Рис. 19.12.
Структури ОС у пам'яті для керування
файловою системою.
При відкритті файлу, при виконанні операції, де вказується шлях доступу до файлу в структурі директорій, система знаходить посилання на блок керування файлом. При виконанні операцій обміну ОС зчитує на згадку блоки даних файлу, над якими виконуються операції. Крім того, ОС зберігає загальносистемну таблицю відкритих файлів. Для кожного процесу також зберігається таблиця файлів, відкритих тільки цим процесом.
Лекція № 15. Віртуальні файлові системи План
Віртуальні файлові системи
Реалізація директорій
Методи розміщення файлів
Файлові системи, засновані на розширеннях
Посилальне розміщення файла
Індексуєме розміщення
Ефективність и продуктивність дискової пам'яті
Кеширування диска
Віртуальні файлові системи (VFS) забезпечують об’єктно-орієнтований спосіб реалізації файлових систем.
VFS забезпечує єдиний інтерфейс системних викликів (API) для різних типів файлових систем, які можуть бути дуже різними по своїй реалізації, включаючи мережні файлові системи.
Даний API є набором операцій над самої VFS, а не над яким-небудь специфічним типом файлових систем.
Схема організації віртуальної файлової системи зображена на рис. 20.1.
Рис.
20.1. Схема організації
віртуальної файлової системи.
Реалізація директорій
Директорія - центральна системна структура у файловій системі, на якій заснований пошук файлів. Тому ефективна реалізація директорій особливо важлива.
Найбільш простий метод реалізації директорій - лінійний список імен з покажчиками на блоках даних. Така реалізація просто програмується, однак вимагає великого часу виконання.
Більше ефективний метод реалізації - хеш-таблица – лінійний список з хеш-оглавлением і підрозділом на (невеликі) списки елементів з тим самим значенням хеш-функции. Такий метод зменшує час пошуку в директорії.
При використанні хеш-таблиці можливі колізії – ситуації, коли два імена хешируются в той самий адреса. Дана проблема вирішується використанням методу ланцюжків – подання хеш-таблицы, при якому для кожного значення хеш-функции зберігається список елементів, що мають дане значення хеш-функции.
Методи розміщення файлів
Суміжне розміщення. Термін метод розміщення означає метод, за допомогою якого розміщаються блоки файлу в зовнішній пам'яті. Розрізняються наступні основні методи розміщення файлів:
Суміжне розміщення
Посилальне розміщення
Індексоване розміщення.
При суміжному розміщенні кожен файл займає набір суміжних блоків на диску. Перевага даного методу - простота: потрібно зберігати тільки одне посилання (номер блоку) і довжину (число блоків). Іншою перевагою є можливість довільного доступу.
Недоліки даного методу наступні:
можливі втрати дискової пам'яті через фрагментацію (метод аналогічний загальному завданню динамічного розподілу пам'яті, розглянутої раніше);
неможливість збільшення розміру файлу.
Суміжне розміщення файлів ілюструється на рис. 20.2.
Рис. 20.2.
Суміжне розміщення файлів.
Файлові системи, засновані на розширеннях
Багато сучасних файлових систем, - наприклад, Veritas File System, або Vx-FS – основна файлова система в ОС HP-UX фірми Hewlett-Packard, - використають модифіковане суміжне розміщення файлів. Дискові блоки в такій системі розміщаються в розширеннях (extents). Розширення - це суміжний блок на диску. Файл складається з одного або декількох розширень. Таким чином, якщо довжина файлу не збільшується, він зберігається у вигляді однієї суміжної області зовнішньої пам'яті, що забезпечує максимальну ефективність доступу. У випадку збільшення довжини файл представляється списком з основної частини й розширень.
Посилальне розміщення файлу
При посилальному розміщенні кожен файл представляється у вигляді зв'язаного списку дискових блоків, які можуть бути розкидані по диску. Переваги даного методу:
Простота - необхідно зберігати тільки початкову адресу;
Відсутність втрат дискового простору; система зберігає списки вільної пам'яті.
Недолік - відсутність довільного доступу: для доступу до даних файлу в загальному випадку необхідно виконати перегляд частини списку блоків файлу.
При посилальному розміщенні адреса по файлі представляється у вигляді (Q, R), де Q – номер блоку, до якого виконується доступ, у зв'язаному списку блоків, що представляє файл; R - cміщення в блоці.
Посилальне розміщення файлів зображене на рис. 20.3.
Рис. 20.3.
Посилальне розміщення файлів.
До файлових систем, що використають посилальне розміщення, ставиться файлова система File-allocation table (FAT), використовувана в MS-DOS й OS/2 і дотепер використовувана в Windows (рис. 20.4).
Рис. 20.4. Файлова система File Allocation Table (FAT).
У системі FAT елемент директорії містить ім'я файлу й адреса його початкового блоку (кластера) на диску. Кожен блок посилається на наступний, крім останнього. Система FAT розроблена творцем корпорації Microsoft Біллом Гейтсом в 1976 р. Тепер читачеві повинне бути зрозуміло, чому операція видалення файлу в Windows не "фатальна": вона означає лише видалення елемента директорії з посиланням на початковий кластер файлу. Незважаючи на це, список кластерів, що представляє файл, можна виявити й відновити посилання з директорії на його початок, хоча й під іншим ім'ям. В MS DOS дану функцію виконувала системна утиліта unerase (скасувати видалення).
Індексування розміщення
При індексованому розміщенні, на відміну від попередні, всі покажчики на блоки файлу зібрані разом в індексний блок (i-node, superblock). Використається індексна таблиця, що посилається на блоки даних файлу. Подібна система використається в системах UNIX, Linux, Solaris.
Приклад індексуємого розміщення наведений на рис. 20.5.
Рис. 20.5. індексоване розміщення файлів.
Як видно зі схеми, при індексованому розміщенні блоки файлу можуть бути розташовані як завгодно розрізнено, але індексний блок містить всі посилання на них. Посилання на блок даних можуть бути обрані безпосередньо з індексного блоку, без якого-небудь пошуку.
Певна небезпека такого розміщення в тім, що на індексний блок лягає критичне навантаження: якщо його цілісність буде порушена, файл відновленню не підлягає. Саме тому в UNIX команда rm, що видаляє файл, "фатальна" для нього.
Таким чином, при індексованому розміщенні файлів необхідна індексна таблиця. Перевага такого методу розміщення - можливість довільного доступу; відсутність зовнішньої фрагментації. Накладними витратами є індексний блок.
При відображенні логічної адреси у фізичний, якщо обмежити максимальний розмір файлу 256 K словами, а розмір блоку - 512 слів, то для індексної таблиці потрібно тільки один блок. Логічна адреса буде мати вигляд (Q, R), де Q - зсув в індексній таблиці, R - зсув у блоці.
При відображенні логічної адреси у фізичний для файлу необмеженої довжини (при розмірі блоку - 512 слів) може використатися посилальна схема - у список зв'язуються блоки індексної таблиці. У цьому випадку логічна адреса буде мати вигляд (Q1, R1), де Q1 = номер блоку індексної таблиці; R1 = (Q2, R2), де Q2 - зсув у блоці індексної таблиці, R2 зсув у блоці файлу.
У системі UNIX використається комбінована схема індексного розміщення файлів: можлива однорівнева адресація даних через індексні блоки, дворівнева (індексні блоки адресують інші індексні блоки, а ті, у свою чергу, - блоки даних),трьох рівнева й т.д. Дана схема ілюструється на рис. 20.6.
Рис. 20.6. Комбінована індексна схема розміщення файлів в UNIX.
Ефективність і продуктивність дискової пам'яті
Ефективність використання дискової пам'яті залежить від:
Алгоритмів розподілу дискової пам'яті й керування директоріями;
Типів даних, збережених в елементі директорії для файлу.
Для підвищення продуктивності роботи з диском використаються наступні методи:
Кэшування диска – використання спеціальної області основної пам'яті для часто використовуваних блоків диска;
Звільнення прочитаного (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 і т.д. У такому випадку рекомендується видалити ці файли звичайним образом і продовжити роботу.