
- •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. Взаимодействий компонентов ос при взаимодействии компьютеров в сети.
19. Механизмы работы с памятью. Отображение файлов на память.
Механизмы работы с памятью:
Виртуальная память (используется для работы с большими объемами памяти);
Отображение файлов на память (используется для быстрой работы с файлом, если необходимо его записиобрабатывать в произвольном порядке, для создания разделяемой памяти между процессами)№
«Кучи» (используются для выделения небольших обьемов памяти в приложении).
В отличие от виртуальной памяти, которой всегда соответствует страничный файл, отображаемой памяти соответствует реальный файл. Используется при интенсивном обращении к файлу. Как только файл отображен на память, можно считать, что он весь в памяти.
Когда нужно использовать:
Загрузка и выполнение исполняемых файлов – время уменьшается за счет того, что не требуется копирование исполняемого файла в память.
Доступ к файлу как к обычной памяти – время уменьшается, так как ОС выполняет управление памятью в наиболее эффективном режиме.
Разделение данных между несколькими процессами.
Объект «Отображаемый файл File Mapping» является объектом ядра, хранится в памяти, доступной всем процессам, и может иметь имя, по которому процессы обращаются к нему.
Общий набор функций по работе с отображаемыми файлами:
Сначала файл открывается с помощью CreateFile(), и если открытие прошло успешно, то идентификатором файла можно воспользоваться для создания отображенного файла CreateFileMapping(), после которой мы получим идентификатор отраженного файла, на основе которого мы можем проецировать файл в память с помощью функции MapViewOfFile(). Эта функция даст нам указатель LPVOID, который используется для последующих операций, в том числе и по отмене проецированного файла UnmapViewOfFile() или принудительной записи на диск FlushViewOfFile(). В том случае, если с отображенным файлом будут работать несколько приложений одно приложение создает файл проецированный на память CreateFileMaping(), а остальные открывают эту проекцию OpenFileMapping().
HANDLE CreateFile
(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDistribution,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
lpFileName – имя файла.
dwDesiredAccess – атрибут доступа к файлу. Принимает значения:
0 – получить атрибут;
GENERIC_READ – чтение;
GENERIC_WRITE – запись;
GENERIC_READ|GENETIC_WRITE – чтение и запись.
dwShareMode – режим совместного использования файла. Принимает значения:
0 – совместный доступ запрещен; FILE_SHARE_READ; FILE_SHARE_WRITE; FILE_SHARE_READ|FILE_SHARE_WRITE.
lpSecurityAttributes – атрибут защиты.
dwCreationDistribution – способ открытия файла. Атрибуты:
CREATE_NEW – создать новый файл, если такой файл уже существует, то функция вернет ошибку;
CREATE_ALWAYS – создать новый файл, если он уже существует – стереть;
OPEN_EXISTING – открыть уже существующий файл, если файла нету – ошибка;
OPEN_ALWAYS – открыть уже существующий файл, если такого файла не найдено – то создать его.
dwFlagsAndAttriutes – атрибут создаваемого файла (скрытый, системный и т.д.). Если указать 0 или FILE_ATTRIBUTE_NORMAL, то будет открыт обычный файл.
hTemplateFile – файл шаблона, равен 0.
CreateFileMapping(
hFile: THandle; //дескриптор файла
IpFileMapping-Attributes: PSecurityAttributes; //указатель на структуру, в котором указывается, может ли создаваемый объект порождать дочерние объекты (обычно не может = 0)
flProtect, //определяет тип защиты.
dwMaximumSize-High, dwMaximumSizeLow: DWord; // старшие и младшие 32 разряда размера файла
IpName: PChar; // имя объекта отображения или null
): THandle;
Атрибуты flProtect:
PAGE_READONLY – созданное файловое отображение доступно только для чтения.
PAGE_READWRITE – доступно для чтения и записи.
PAGE_WRITECOPY: разрешается копирование при записи
Также в комбинацию могут включаться следующие константы:
SEC_COMMIT: для страниц секции выделяется физическое место в памяти или файле подкачки
SEC_IMAGE: файл является исполняемым
SEC_RESERVE: для страниц секции резервируется виртуальная память без фактического выделения.
LPVOID MapViewOfFile(
HANDLE hFileMappingObject, // дескриптор объекта
DWORD dwDesiredAccess, // режим доступа
DWORD dwFileOffsetHigh, // старшее DWORD смещения
DWORD dwFileOffsetLow, // младшее DWORD смещения
SIZE_T dwNumberOfBytesToMap // число отображаемых байтов
);
Атрибуты dwDesiredAccess:
FILE_MAP_WRITE - доступ к операциям чтения-записи.
FILE_MAP_READ - доступ только для чтения.
FILE_MAP_ALL_ACCESS - то же самое, что и FILE_MAP_WRITE.
FILE_MAP_COPY - копирование при доступе для записи.
FILE_MAP_EXECUTE - доступ к исполнению кода (программы).
BOOL UnmapViewOfFile(
LPCVOID lpBaseAddress // начальный адрес отображаемого представления файла, отображение которого должно быть прекращено
);