
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 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 є завантажують модули, що, ядра ( loadable kernel modules, LKM ), що з'явилися у версії 1.2. Вони забезпечують ядру гнучкість і функціональність.
Частини (секції) коду ядра можуть компілюватися, завантажуватися й вивантажуватися, незалежно від іншої частини ядра.
Модуль ядра може реалізовувати драйвер пристрою, файлову систему або мережний протокол.
Модульний інтерфейс дозволяє стороннім розроблювачам реалізовувати й поширювати на своїх власних умовах драйвери або файлові системи, які не можуть поширюватися на основі GPL.
Модулі ядра дозволяють инсталлировать Linux у вигляді стандартного, мінімального ядра, без використання яких-небудь убудованих пристроїв.
Три компоненти модуля Linux підтримують:
Керування модулем
Реєстрацію драйвера
Дозвіл конфліктів.
Компонента керування модулем управляє завантаженням модуля на згадку і його взаємодію з іншою частиною ядра.
Керування модулем розбито на дві частини:
Керування частинами коду модуля в пам'яті ядра
Керування символами, на які модуль дозволяє посилатися.
Компонента module requestor управляє завантаженням запитаних, але ще не завантажених модулів. Вона також регулярно опитує ядро, щоб переконатися, що модуль дотепер використається, і вивантажує модуль, якщо він довгий час активно не використався.
Схема вихідного коду модуля ядра, що завантажує, Linux зображена рис. 25.3.
.
Рис. 25.3. Схема вихідного коду модуля ядра, що завантажує, Linux.
Компонента реєстрація драйверів надає модулю можливість повідомити ядру, що новий драйвер доступний.
Ядро підтримує динамічну таблицю всіх відомих драйверів і забезпечує набір підпрограм для додавання драйверів у ці таблиці або видалення з них у будь-який час.
Таблиці реєстрації включають наступні елементи:
Драйвери пристроїв
Файлові системи
Мережні протоколи
Двійкові формати.
Модуль дозволу конфліктів надає механізм, що дозволяє різним драйверам пристроїв резервувати апаратні ресурси й захищати ці ресурси від випадкового використання іншими драйверами.
Цілі модуля дозволу конфліктів:
Запобігти конфліктам, пов'язані з використанням апаратур
Запобігти автопроверки ( autoprobes) від перетинання із уже існуючими драйверами пристроїв
Дозволити конфлікти різних драйверів, що намагаються мати доступ до однієї й тим же апаратурам.
Керування процесами в Linux
У класичній системі UNIX засобу керування процесами розділяють створення процесу й запуск нової програми на дві різні операції:
Системний виклик fork створює новий процес
Нова програма запускається за допомогою систебагато виклику exec.
В UNIX процес містить всю інформацію, що ОС повинна підтримувати для реалізації концепції окремого виконання окремої програми.
У системі Linux властивості процесу діляться на три групи: ідентифікація процесу, його оточення й контекст.
Ідентифікатор процесу (PID) - унікальний ідентифікатор процесу (число); використається для вказівки процесів в операційній системі, коли додаток виконує системний виклик signal, modify або wait для іншого процесу.
Повноваження (Credentials). Кожен процес повинен мати пов'язаний з ним ідентифікатор користувача й один або більше ідентифікаторів груп, що визначають права процесу для доступу до системних ресурсів і файлів.
Ідентифікація особистості (Personality). Хоча це й нетрадиційно для систем типу UNIX, в Linux кожен процес має унікальний ідентифікатор особистості, за допомогою якого можлива деяка модифікація семантики ряду системних викликів. Він використовується головним чином у бібліотеках емуляції, для запиту про сумісність системних викликів з тим або іншим специфічним діалектом UNIX.
Оточення процесу успадковується від процесу-батька. Складається із двох векторів, що завершуються нулями:
Вектор аргументів містить список аргументів командного рядка, використаний при виклику виконує программы, що; традиційно починається з імені самої програми
Вектор оточення – список пара "NAME=VALUE", які зв'язують змінні оточення із заданими іменами і їх довільні текстові значення.
Передача змінні оточення між процесами й спадкування цих змінних дочірніми процесами - гнучкі засоби передачі інформації компонентам систебагато програбагато забезпечення, що працює в непривілейованому режимі.
Механізм змінні оточення забезпечує засобу настроювання ОС, які можуть установлюватися для кожного процесу окремо, а не шляхом конфігурування системи в цілому.
Контекст процесу – це що постійно змінюється стан виконує программы, що, у будь-який момент часу.
Контекст планування – найбільш важлива частина контексту процесу; це інформація, що використає планувальник для припинення й запуску процесу.
Ядро підтримує зберігання статистичної інформації про ресурси, споживаних у кожен момент кожним процесом і загальним обсягом ресурсів, використаним кожним процесом з моменту його створення по дійсний момент.
Таблиця файлів – це вектор покажчиків на системні файлові структури. При виконанні системних викликів для вводу-виводу процеси посилаються на ці структури за допомогою індексів у таблиці файлів.
У той час як таблиця файлів містить список відкритих файлів, контекст файлової системи застосовується для запитів про відкриття нових файлів. Тут зберігаються посилання на поточну кореневу ( root ) директорію й робочу ( default ) директорію для пошуку файлів.
Таблиця оброблювачів сигналів визначає підпрограми в адресному просторі процесу, які повинні бути викликані при виникненні відповідних сигналів.
Контекст віртуальної пам'яті процесу визначає весь уміст його персонального адресного простору.
Процеси й потоки.Linux використає те саме внутрішнє подання для процесів і потоків. Потік в Linux – це новий процес, що використає загальний адресний простір із процесом-батьком.
Различие проявляється тільки у випадку, коли новий потік створюється системним викликом clone:
класичний системний виклик fork створює новий процес зі своїм повністю новим контекстом;
системний виклик clone створює новий процес зі своїм новим ідентифікатором особистості, але такий, котрому дозволено спільно використати структури даних зі своїм батьком.
Використання систебагато виклику clone дає процесам можливість явного контролю над тим, які ресурси спільно використаються потоками.