- •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 // начальный адрес отображаемого представления файла, отображение которого должно быть прекращено
);
