
- •1 Призначення та функції операційних систем.
- •2 Классификация ос:
- •3 Свойства ос:
- •4 Архитектура компьютерной системы Windows nt
- •5 Типы Windows-приложений:
- •6 Структура оконных вин приложений
- •7 Механизм сообщений Windows
- •9 Реєстрація класів вікон користувача та створення вікон у Windows.
- •10 Создание дочерних окон.
- •12 Сегментный способ адресации в Windows
- •13 Страничная организация памяти в Windows
- •14.Алгоритм управления страницами
- •15. При выделении памяти необходимо учитывать следующие ограничения:
- •18. Механизмы работы с памятью. Использование виртуальной памяти.
- •19. Механизмы работы с памятью. Отображение файлов на память.
- •20. Механизмы работы с памятью. Использование «кучи».
- •21. Исследование виртуальной памяти. Системная информация.
- •22. Исследование виртуальной памяти. Статус виртуальной памяти.
- •23. Исследование виртуальной памяти. Определение состояния адресного пространства.
- •25 Компоненты файловой системы
- •26 Монтирование и демонтирование файловой системы
- •Функциональные свойства fat
- •28 Ntfs
- •29 Поняття планування та диспетчеризації.
- •30 Алгоритм циклічного планування процесів.
- •31 Алгоритм пріоритетного планування процесів.
- •32 Алгоритм планування процесів з кількома чергами.
- •33 Алгоритм адаптивно-рефлекторного планування процесів.
- •34. Поняття політики планування процесів.
- •35. Класифікація процесів з погляду планування.
- •36. Поняття процесу. Пріоритети, порядок створення та завершення
- •37. Завдання. Обмеження, створення, статистична інформація.
- •38. Поняття потоку. Створення, призупинення, поновлення та завершення потоків.
- •39. Життєвий цикл процесу. Стан процесу. Переключення станів.
- •40. Абстрактне визначення та контекст процесу. Відносини між процесами.
- •41) Критичний ресурс. Критична секція. Використання спільної змінної.
- •42) Критичний ресурс. Критична секція. Почергове виконання критичної секції.
- •43) Критичний ресурс. Критична секція. Алгоритм Деккера.
- •44) Поняття синхронізації. Виявлення та запобігання тупиків (блокувань).
- •45) Синхронізація потоків. Функції та використання моніторів.
- •46) Синхронізація. Поняття та використання семафора для критичної секції.
- •53. Понятие параллельного исполнения.
- •57. Назовите и охарактеризуйте структуру сетевых операционных систем.
- •58. Взаимодействий компонентов ос при взаимодействии компьютеров в сети.
15. При выделении памяти необходимо учитывать следующие ограничения:
— некоторые процессоры старых образцов могут работать только с первыми 16 Мбайт памяти. Если ОС должна поддерживать работу таких процессоров, то это ограничение должно учитываться;
— для современных ОС недостаточно виртуального пространства 2^32 байт, может потребоваться объем виртуального пространства больше этой величины. Очевидно, что работа со старшими адресами этого виртуального пространства должна быть обеспечена особыми способами;
— аппаратные средства работают не с виртуальной, а с физической памятью, поэтому выделение памяти для буферов внешних устройств должно выполняться также особыми средствами.
В связи с вышеизложенными ограничениями вся память делиться на 3 зоны:
- зона памяти до 16 Мбайт — используется старыми устройствами
- зона памяти до (232 - 1) байт включительно, используется разными модулями ОС и приложениями;
-зона памяти, начиная с 232 байт, используется, если ОС и приложения поддерживает 36-битную или 64-битную адресацию.
18. Механизмы работы с памятью. Использование виртуальной памяти.
Механизмы работы с памятью:
Виртуальная память (используется для работы с большими объемами памяти);
Отображение файлов на память (используется для быстрой работы с файлом, если необходимо его записиобрабатывать в произвольном порядке, для создания разделяемой памяти между процессами)№
«Кучи» (используются для выделения небольших обьемов памяти в приложении).
Использование виртуальной памяти:
Функция VirtualAlloc предназначена для выделения региона. Так как размер региона и его кратность определена гранулярность (65536), то выделять регион для области памяти размером меньше 65536 не имеет смысла.
LPVOID VirtualAlloc(
LPVOID lpAddress,
DWORD dwSize,
DWORD flAllocationType,
DWORD flProject );
Где:
lpAddress – определяет начальный адрес выделенной области. Адрес виртуальной памяти выравнивается на границу 64 Кбайт. Если память уже связывается (выделяется физическая память), адрес выравнивается на границе страницы. При первом выделении памяти этот параметр = NULL.
DwSize – размер региона в байтах.
FlAllocationType – тип операции выделения. Можно задать флаг или комбинацию флагов.
-
Флаг
Назначение
MEM_COMMIT
Выделяет физическую память
MEM_RESERVE
Резервирует виртуальное адресное пространство заданного размера. Зарезервированный диапазон не может использоваться другими функциями
MEM_TOP_DOWN
Выделяется память в верхней области адресного пространства
FlProtect – тип защиты. Для физической памяти могут быть заданы флаги PAGE_GUARD и PAGE_NOCACHE совместно с флагами, определенными ниже.
Флаг |
Назначение |
PAGE_READONLY |
Страница только для чтения. Используется для физической памяти |
PAGE_READWRITE |
Чтение и запись |
PAGE_EXECUTE |
Только исполнение програмного кода |
PAGE_EXECUTE_READ |
Исполнение и чтение |
PAGE_EXECUTE_READWRITE |
Исполнение, чтение, запись |
PAGE_GUARD |
Защищенная страница. Любой доступ к странице – ошибка |
PAGE_NOACCESS |
Выключен доступ к странице, отраженной в физической памяти |
PAGE_NOCACHE |
Не кэшируется содержимое страницы. Используется в драйверах |
PAGE_WRITECOPY |
Запись в страницу приводит к тому, что процессу предоставляется личная копия этой страницы физической памяти |
PAGE_EXECUTE_WRITECOPY |
Любые действия приводят к формированию новой копии |
Возвращаемое значение:
Успех – адрес памяти.
Ошибка – NULL.
Обычно функция используется следующим образом. Сначала выделяется большой регион. Затем связывается с физической памятью один небольшой блок региона. Связь с физической памятью делается только для того участка, для которого необходимо.
Для возврата физической памяти используется функция VirtualFree.
BOOL VirtualFree(
LPVOID lpAddress,
SIZE_T dwSize,
DWORD dwFreeType); где:
lpAddress – адрес начала освобождаемой памяти;
dwSize – размер области;
dwFreeType – определяет, какая оперция произойдет с памятью (Флаг MEM_RELEASE – страница освобождена; MEM_DECOMMIT – страница зарезервирована, но не используемая). Если задан размер 0, то освобождается вся выделенная память.
В процессе выполнения программы может потребовать изменение атрибутов защиты. Для изменения атрибутов защиты связанной памяти в процессе выполнения программы используется функция VirtualProtect или VirtualProtectEx (последняя функция позволяет сделать изменение для заданного процесса).
BOOL VirtualProtect(
LPVOID lpAddress, //адрес
DWORD dwSize, //размер
DWORD flNewProtect, //новый атрибут защиты
PDWORD lpflOldProtect, //адрес переменной, куда записывается старый
Атрибут
);
Как правило, вытесняется страница, которая наиболее долго не использовалась. Некоторые из страниц можно заблокировать функцией VirtualLock.
BOOL VirtualLock (
LPVOID lpAddress, //адрес начала области
DWORD dwSize //раз мер области
);
Если для страниц задан режим PAGE_NOACCESS, блокирование невозможно. По умолчанию процесс может максимально блокировать 30 страниц.
Для разблокирования области используется функция VirtualUnlock. Заблокированные страницы автоматически разблокируются при завершении процесса.