
- •39. Адресний простір процесу.
- •40. Керування віртуальною пам'ятю. Vmm.
- •41. Архітектура інтерфейсів (api) управління пам'ятю.
- •42. Работа програм з віртуальною пам'ятью.
- •43.Файли, що відображаються в пам'ять
- •45. Визначення вікна. Компоненти та параметри вікон.
- •46. Ієрархія вікон.
- •47. Стилі вікон.
- •48. Повідомлення та черги повідомлень.
- •49. Обмін даними між процесами.
- •50. Синхронізація потоків.
- •51 Общий план обработки исключений.
- •52 Обработчики завершения. Локальная и глобальная раскрутка.
- •53 Фильтры и обработчики исключений.
- •54 Общая структура системного реестра.
- •55 Системный реестр Windows’95 имеет следующую структуру:
- •56 Работа приложений с системным реестром.
- •57. Файлові структури.
- •58. Робота з томами та каталогами.
- •59. Синхронна робота з файлами.
- •60. Асинхронна робота з файлами.
- •61. Файлова структура ntfs
- •62Система безопасности windows nt
39. Адресний простір процесу.
Адресний простір пам'яті використовується програмами користувачів і системи. Звернення до пам'яті необхідні для того, щоб виконувана програма могла викликати дані і розміщати їх в пам'яті, слідувати заданій послідовності команд або змінювати її, переходити на інші програми. Існують два типи адресних просторів: реальна і віртуальна пам'ять. Традиційне простір файлів, або наборів даних, яке розміщується в зовнішній пам'яті, має іншу схему адресації. Більш того, ці адреси не можуть бути запитані центральним процесором. Всі адресне простір пам'яті комп'ютера розділяється на декілька областей, що пов'язано, в першу чергу, з необхідністю забезпечення сумісності з першими комп'ютерами сімейства.
40. Керування віртуальною пам'ятю. Vmm.
Механізм керування пам’яттю є однією з найважливіших складових операційної системи. У комп’ютерах IBM-сумісної архітектури застосунки разом з оброблюваними даними розташовуються в оперативній пам'яті. Таким чином, виконання будь-якого процесу обов’язково супроводжується операціями з пам’яттю. Для реалізації схеми керування віртуальною пам’яттю, при якій кожен процес отримує власний закритий адресний простір, використовується диспетчер віртуальної пам’яті (virtual memory manager). Диспетчер пам’яті виконує два головних завдання: узгодження адрес віртуального адресного простору з наявними фізичними ресурсами пам’яті (трансляція віртуальних адрес) та керування використанням сторінкового файлу, який дозволяє компенсувати нестачу фізичної пам’яті.
41. Архітектура інтерфейсів (api) управління пам'ятю.
Диспетчер віртуальної пам'яті (Virtual Менеджер пам'яті - VMM) є складовою частиною ядра операційної системи. Він відображає віртуальні адреси на фізичні, використовуючи механізм підкачки сторінок пам'яті (стор. заміна). Крім того, він надає прикладним програмам різні інтерфейси (API) для роботи з віртуальною пам'яттю:
Віртуальний інтерфейс API пам'яті - набір функцій, що дозволяють додатком працювати з віртуальним адресним простором. Наприклад, функції VirtualAlloc і VirtualFree дозволяють процесу отримувати сторінки з пам'яті або повертати їх системі.
Пам'ять Підключення API файлу - набір функцій, що дозволяють працювати з файлами, що проектуються в пам'ять. Це новий механізм, що надається для Windows для роботи з файлами і взаємодії процесів.
API динамічної пам'яті - набір функцій, що дозволяють працювати з динамічно розподілюваними областями пам'яті (купами).
42. Работа програм з віртуальною пам'ятью.
Пам'ять є основним ресурсом при програмуванні в багатозадачному середовищі. Множина вільних фрагментів пам'яті називається хіп (від англійського слова HEAP). Програміст може виділити для своєї програми блок пам'яті будь-якої довжини, що не перевищує загальний об'єм вільної пам'яті. В Windows пам'ять виділяється в 2 етапи:
спочатку система виділяє фрагмент віртуальної пам'яті, який отримує свій хендл, але не отримує реальної адреси;
потім система розміщує (блокує) цей фрагмент у реальній пам'яті і фрагмент отримує початкову адресу.
Після того, як програміст отримує адресу початку виділеного блоку, він може її використовувати. Комірки з адресами до початку та після кінця блоку використовувати не можна, тому що вони належать іншим програмам або системі.
Після того, як програма використала блок пам'яті, його необхідно розблокувати. Таким чином, він знову стає віртуальним, і при необхідності може бути переміщений системою в інше місце або на диск. Якщо програма довго не розблоковує блок пам'яті, то це негативно відображається на продуктивності операційної системи в цілому. Отже, якщо після розблокування пам'яті її знову заблокувати, адреса початку блоку може бути іншою. Якщо програміст взагалі відмовляється від використання виділеного блоку пам'яті, він повинен звільнити блок, що веде до знищення його хендла. Очевидно, що перед звільненням блоку пам'яті його необхідно розблокувати.