
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 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
- •Нові тенденції в розвитку ос
- •Графічні оболонки ос
- •Підтримка паралельних обчислень
- •Розвиток бездротових мереж
- •Перспективи розвитку ос
Рограммный інтерфейс Windows
Доступ до об'єктів ядра.Процес одержує доступ до об'єкта ядра, називаному XXX, шляхом виклику функції CreateXXX для одержання (відкриття) посилання ( handle ) на XXX. Посилання унікальне для даного процесу.
Посилання може бути закрита викликом функції CloseHandle. Система може видалити даний об'єкт, якщо лічильник посилань на нього став рівним нулю.
Windows 2000 застосовує три способи спільного використання об'єкта декількома процесами:
Дочірній процес успадковує посилання на об'єкт
Один процес дає об'єкту ім'я при його створенні, а інший процес відкриває дане ім'я
Функцію DuplicateHandle, що забезпечує, якщо відомо посилання на процес і значення посилання, одержання для іншого процесу посилання на той же об'єкт.
Програмний інтерфейс Windows: Керування процесами
Процес запускається функцією CreateProcess, що завантажує всі динамічно линкуемые бібліотеки, використовувані процесом, і створює первинний потік ( primary thread ). Додаткові потоки можуть створюватися функцією CreateThread. Кожна DLL або exe-файл, що завантажують в адресний простір процесу, ідентифікуються посиланням на екземпляр ( instance handle
Планування в Win32 використає чотири класи пріоритетів:
IDLE_PRIORITY_CLASS (рівень пріоритетів 4)
NORMAL_PRIORITY_CLASS (рівень 8 — типовий для більшості процесів)
HIGH_PRIORITY_CLASS (рівень 13)
REALTIME_PRIORITY_CLASS (рівень 24).
Для забезпечення рівнів продуктивності, необхідних для інтерактивних програм, Windows 2000 використає спеціальне правило планування для процесів класу NORMAL_PRIORITY_CLASS. Windows 2000 розрізняє основний процес ( foreground process),що у цей момент обраний на екрані, і фонові процеси ( background processes ), які не обрані в цей момент. Коли процес стає основним, Windows 2000 збільшує його квант планування, як правило, у три рази.
Ядро динамічно змінює пріоритет потоку, залежно від того, чи зв'язаний він з висновком-виводом-вводом-виводом або із процесором.
Для синхронізації доступу до загальних об'єктів декількома потоками ядро надає синхронізуючі об'єкти, такі як семафори й мьютексы (mutexes). Крім того, потоки можуть синхронізуватися з використанням функцій WaitForSingleObject або WaitForMultipleObjects. Інший метод синхронізації в Win32 API - критична секція.
Волокна (fibers) – ще один різновид паралельних процесів. Волокно (fiber) – це код користувальницького режиму, виконання якого планується по алгоритму, певному користувачем. Волокно відрізняється від потоку тим, що розроблювач додатка сам явно планує перемикання процесора між волокнами. Волокна виконуються спільно. У кожен момент часу дозволено виконуватися тільки одному волокну, навіть на многопроцессорной апаратурам.
Windows 2000 підтримує концепцію волокон з метою переносу успадкованих UNIX-додатків, написаних на основі моделі виконання волокон. Є механізм перетворення потоку у волокно – ConvertThreadToFiber.
Взаємодія процесів.Win32 - додатка можуть виконувати взаємодія між процесами шляхом спільного використання поділюваних об'єктів ядра.
Альтернативний спосіб взаємодії процесів - передача повідомлень; він найбільш популярний для Windows GUI - додатків. При цьому один потік посилає повідомлення іншому потоку або вікну. Разом з повідомленням потік може також посилати дані.
Кожен потік Win32 має свою вхідну чергу, з якої даний потік одержує повідомлення. Це більш надійно, ніж загальна вхідна черга, застосовувана в 16-бітовій версії Windows, тому що при використанні окремих черг одне подвисшее додаток не може блокувати інші.