
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 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
- •Нові тенденції в розвитку ос
- •Графічні оболонки ос
- •Підтримка паралельних обчислень
- •Розвиток бездротових мереж
- •Перспективи розвитку ос
Виконання й завантаження користувальницьких програм в Linux
Linux підтримує таблицю функцій для завантаження програм. Кожної функції надається можливість спробувати завантажити заданий файл, коли виконується системний виклик exec.
Реєстрація програм, що завантажують багаторазово, дозволяє Linux підтримувати як ELF-,так й a.out – формати коду.
Первоначально сторінки двійкового файлу завантажуються у віртуальну пам'ять; тільки якщо програма намагається звернутися до даної сторінки й виникає відмова сторінки, у результаті дана сторінка завантажується у фізичну пам'ять.
Двійковий файл формату ELF (Executable and Linkage Format) складається із заголовка, за яким ідуть трохи вирівняних до сторінки секцій ; ELF-завантажник читає заголовок і відображає секції файлу в окремі регіони віртуальної пам'яті.
Структура секцій файлу ELF для модуля ядра Linux показана в таблица 1.
Таблиця 1. Структура секцій файлу ELF для модуля ядра Linux |
|
.text |
інструкції |
.fixup |
зміни часу виконання |
.init.text |
інструкції ініціалізації модуля |
exit.text |
вихідні інструкції модуля |
.rodata.etrl.l |
рядка тільки для читання |
.modinfо |
текст макросів модуля |
_versions |
дані про версії модуля |
.data |
инициализированные дані |
.bss |
неинициализированные дані |
other |
|
Розподіл пам'яті для ELF-програм в Linux зображено на рис. 26.2.
Рис. 26.2. Розподіл пам'яті для ELF-програм.
Статична й динамічна линковка.Програма, бібліотечні функції якої убудовані безпосередньо у двійковий виконува код, що, статично линкуется зі своїми бібліотеками.
Основний недолік статичної линковки в тім, що будь-яка генерируемая програма повинна зберігати копії тих самих загальносистемних бібліотечних функцій.
Динамічна линковка більше ефективна в термінах як використання фізичної, так і дискової пам'яті, тому що вона завантажує системні бібліотеки на згадку тільки один раз.
Системи файлів Linux
З погляду користувача файлова система Linux являє собою ієрархічне дерево директорій, що підкоряється семантиці UNIX.
Із внутрішньої точки зору, ядро приховує деталі реалізації й управляє багатьма різними файловими системами через загальний рівень абстракції, тобто віртуальну файлову систему (VFS).
Linux VFS спроектована по объектно-ориентированным принципах і використає набір визначень, що задає структуру файлів. Системні структури inode-object й file-object представляють окремі файли. Об'єкт file system object представляє файлову систему в цілому. Існує рівень абстракції для маніпулювання цими об'єктами.
Файлова система Ext2fs – основна файлова системи Linux. Вона використає механізм, подібний з UNIX BSD Fast File System (ffs) для пошуку блоків даних, що належать деякому файлу.
Основні розходження між ext2fs й ffs стосуються їхній політик розподілу дискової пам'яті.
У системі ffs диск ділиться на файли, що складаються із блоків по 8Kb, а блоки розбиваються на фрагменти по 1Kb для зберігання маленьких файлів або частково заповнених блоків наприкінці файлу.
Система Ext2fs не використає фрагменти; вона розподіляє пам'ять більше дрібними одиницями. Розмір блоку за замовчуванням в ext2fs -1Kb, хоча блоки в 2Kb й 4Kb також підтримуються.
Система Ext2fs використає політики розподілу, спроектовані з метою розміщення логічно суміжних блоків файлу у фізично суміжних блоках на диску, так щоб можна було використати одну операцію вводу-виводу для декількох суміжних блоків.
Структурна схема системи файлів Ext2fs показана в таблица 2.
Таблиця 2. Структурна схема системи файлів Ext2fs в Linux |
Суперблок (Superblock) |
Описани групи блоків (Group Descriptors) |
Бітова карта блоків (Block Bitmap) |
Бітова карта індексних дескрипторів (Inode Bitmap) |
Таблиця індексних дескрипторів (Inode Table) |
Дані (Data) |
Групи блоків в Ext2fs.Всі блоки ext2 розділяються на групи блоків. Для кожної групи блоків створюється окремий запис у глобальної дескрипторной таблиці, у цьому записі зберігаються основні параметри:
номер блоку бітовий карти блоків
номер блоку бітової карти inode
номер блоку таблиці inode
число вільних блоків у групі
число inode, що містить каталоги.
Бітова карта блоків — це структура, кожен біт якої показує, чи відведений відповідний йому блок якому-небудь файлу. Якщо біт дорівнює 1, то блок зайнятий. Аналогічну функцію виконує бітова карта індексних дескрипторів, показуючи які саме індексні дескриптори зайняті, а які немає. Ядро Linux, використовуючи число inode, що містить каталоги, намагається рівномірно розподілити inode каталогів по групах, а inode файлів поміщає, якщо це можливо, у групу з батьківським каталогом.
Все місце, що залишилося, позначене в таблиці як дані, приділяється для зберігання файлів.
Адресація файлів в Ext2fs.Система адресації даних - одна із самих істотних складових частин файлової системи. Саме система адресації дозволяє знаходити потрібний файл серед безлічі як порожніх, так і зайнятих блоків на диску.
Файлова система ext2 використає наступну схему адресації блоків файлу. Для зберігання адреси файлу виділено 15 полів, кожне з яких складається з 4 байтів.
Якщо розмір файлу менше або дорівнює 12 блокам, то номера цих кластерів безпосередньо перераховуються в перших дванадцятьох полях адреси. Якщо розмір файлу перевищує 12 блоків, то наступне 13-і поле містить адреса кластера, у якому можуть бути розташовані номери наступних блоків файлу.
Таким чином, 13-й елемент адреси використається для непрямої адресації. При максимальному розмірі блоку, рівних 4096 байтів, 13-й елемент може містити до 1024 номерів наступних кластерів даних файлу. Якщо розмір файлу перевищує 12+1024 блоків, то використається 14-і поле, у якому перебуває номер блоку, що містить 1024 номерів блоків, кожний з яких зберігають 1024 номерів блоків даних файлу. Тут застосовується вже подвійна непряма адресація. І, нарешті, якщо файл включає більше 12+1024+1048576 = 1049612 блоків, то використається останнє 15-і поле для потрійної непрямої адресації.
Таким чином, описана вище система адресації, дозволяє при максимальному розмірі блоку 4 Кб мати файли розміру до 2 терабайт або більше.
Схема адресації файлів у системі Ext2fs зображена на рис. 26.3.
Рис. 26.3. Адресація файлів у системі Ext2fs.
Принципи розміщення блоків у системі Ext2fs ілюструються на рис. 26.4.
Рис. 26.4. Принципи розміщення блоків у системі Ext2fs.
Файлова система Linux Proc.Файлова система proc не зберігає дані; замість цього, їхній уміст обчислюється на вимогу, відповідно до користувальницьких запитів на ввід-вивід.
Система proc реалізує структуру директорій і файли, що перебувають усередині них; потім вона визначає унікальний і зберігати номер, що, inode для кожної директорії й файлів, які в ній утримуються. Вона використає цей номер inode для ідентифікації, яка операція потрібно, коли користувач намагається звернутися до конкретного inode файлу або виконати пошук у конкретному inode директорії.
Коли дані читаються з одного із цих файлів, система proc збирає відповідну інформацію, перетворить її в текстову форму й поміщає в буфер читання відповідного процесу.