
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 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
Для організації віртуальної пам'яті використаються наступні функції Win32:
VirtualAlloc резервує або погодить для резервування віртуальну пам'ять.
VirtualFree звільняє віртуальну пам'ять.
Ці функції дають можливість додатку запам'ятати віртуальна адреса, по якому була виділена віртуальна пам'ять.
Додаток може використати пам'ять, відобразивши файл у свій адресний простір. Два процеси можуть спільно використати пам'ять, відображаючи той самий файл у свою віртуальну пам'ять.
Купа (heap) в оточенні Win32 - це область (region) зарезервованого адресного простору. Для процесу Win32 створюється купа, розмір якої за замовчуванням дорівнює 1 MB .Доступ до купи синхронізований, з метою захисту структур даних, пов'язаних з розподілом пам'яті в купі, від руйнування при спільному доступі з декількох потоків.
Оскільки функції, які засновані на глобальні або статичних даних, неправильно працюють у многопоточном оточенні, наданий механізм виділення глобальної, але пов'язаної з конкретним потоком пам'яті ( thread-local storage - TLS ). Даний механізм надає як статичні, так і динамічні методи виділення пам'яті, пов'язаної з потоком.
Для керування фізичною пам'яттю підтримується традиційна концепція робочого набору (безлічі) – working set.Робочий набір — всі фізичні сторінки, якими "володіє" процес. Власне кажучи, це все сторінки, до яких процес може звернутися, не викликавши збою сторінки. Межа робочого набору — максимальне число сторінок, який процес може володіти. При досягненні межі додавання кожної нової сторінки повинне супроводжуватися виключенням однієї сторінки з набору ( заміна в робочому наборі ).
Верхня межа розміру набору для кожного процесу за замовчуванням - максимальне значення для всієї системи - обчислюється й зберігається в MmMaximumWorkingSetSize. Це приблизно обсяг основної пам'яті мінус 512 сторінок (2 мегабайти в архітектурі x86) і мінус мінімальний розмір системного робочого набору (1.5 мегабайта в x86). Це цікаві дані, оскільки вони дають подання, скільки пам'яті реально губиться на потреби ОС. Реальна верхня межа становить 2 гігабайти мінус 64 мегабайта для 32-бітової ОС Windows.
Процес завжди запускається з порожнім робочим набором. Потім він викликає відмови сторінок при звертанні до сторінки, що не входить у його робочий набір. Багато відмов сторінок можуть бути дозволені з використанням пам'яті.
Коли розмір робочого набору досягає максимуму (або виконується підстроювання робочого набору), виконується викид сторінок, щоб визволити місце для нових. В Windows використається політика локальної заміни сторінок (для порівняння, у більшості систем типу UNIX реалізована глобальна заміна). Це означає, що один процес не може зайняти всю фізичну пам'ять, крім випадку, коли інші процеси не використають неї. Алгоритм заміни заміщає найбільш давні по використанню сторінки (ведеться облік віку сторінок).
В Windows 2000 подібна схема реалізована тільки для однопроцесорних систем, в Windows XP й Windows Server 2003 — для будь-яких, у тому числі – для многопроцессорных систем. У системах Windows XP й Windows Server 2003 для керування пам'яттю реалізований новий прапор VirtualAlloc — MEM_WRITE_WATCH.
В Windows розрізняються наступні типи відмов сторінок основної пам'яті:
Сторінки можуть бути повернуті шляхом механізму відмови в процес зі списків резервних і змінених сторінок;
Загальна сторінка, припустима для одного процесу, може виявитися збійної в інші.
Деякі відмови сторінок диска неминучі, наприклад, при запуску нового процесу (і відповідному завантаженню EXE- або DLL-файлів). Крім того, нормальна файлова операція вводу-виводу виконується за допомогою підкачування. При цьому кэшированные файли додаються збоєм у системний робочий набір.
Системний робочий набір.Подібно тому, як всі процеси мають робочі набори, що підкачують код і дані системного простору Windows розміщаються в системному робочому наборі. Він складається з 4 компонентів:
пул, що підкачує;
підтримуюче підкачування код і дані у виконавчому сегменті ядра;
підтримуюче підкачування код і дані в драйверах режиму ядра, Win32K.Sys, графічних драйверах і т.д.;
глобальний кэш даних файлової системи.
Щоб підрахувати фізичний (резидентний) розмір цих компонентів за допомогою системної утиліти PerfMon, варто з'ясувати значення наступних показників:
Пам'ять | число подкачанных у пул резидентних байтів
Пам'ять | число резидентних байтів системного коду
Пам'ять | число резидентних байтів системних драйверів
Пам'ять | число резидентних байтів системного кэша.
Показник лічильника байтів у пам'яті | кэше являє собою суму показників цих чотирьох "резидентних" (фізичних) лічильників.
Керування фізичною пам'яттю.Система зберігає не призначені фізичні сторінки в одному з декількох списків:
Список вільних сторінок
Список змінених сторінок
Список резервних сторінок
Список нульових сторінок
Список поганих сторінок - сторінки, не минулий тест пам'яті при завантаженні системи.
Списки реалізовані як записи в базі даних PFN. Вони обслуговуються як списки FIFO, або черги.
Динаміка підкачування.Нові сторінки розподіляються по робочих наборах з початку списку вільних або нульових сторінок. Сторінки, виключені з робочого набору в ході операції заміни, містяться в кінець одного з наступних списків:
Список змінених сторінок (якщо вони були змінені в робочому наборі)
Список резервних сторінок (якщо зміни не вносилися).
Рішення приймається на основі значенні біта D (dirty = змінена) у записі таблиці сторінки. Поки фізична сторінка перебуває в одному із цих списків, між нею й процесом як і раніше підтримується зв'язок.
У міру того як процеси викликають відмови сторінок, сторінки вилучаються зі списку вільних або резервних сторінок і включаються до складу робочого набору процесу. Загальна сторінка може бути одночасно резидентної в робочих наборах декількох процесів.