- •Классификация системного программного обеспечения
- •Другая классификация
- •Требования к системному программному обеспечению
- •2. Операционная система. Основные функции ос. Структура операционной системы.
- •3. Интерфейс прикладных программ (api) ос. Api Win32 (системные функции).
- •Api операционных систем.
- •Структура api-программ
- •4. Дисковая подсистема в архитектуре ibm pc.
- •5. Низкоуровневая организация дисковой памяти. Сервис bios доступа к дисковой подсистеме.
- •Емкость Диска
- •Оглавление Диска (Каталог)
- •Основные Положения На Память
- •6. Понятие файловой системы. Назначение, требования, функции. Способы организации фс.
- •7. Объекты файловой системы: файлы, директории, логические устройства, другие виды объектов. Файловая система
- •Имена файлов
- •Типы файлов
- •Логическая организация файла
- •Физическая организация и адрес файла
- •Права доступа к файлу
- •Кэширование диска
- •Общая модель файловой системы
- •Отображаемые в память файлы
- •Современные архитектуры файловых систем
- •8. Файловые системы на основе fat (либо по желанию ntfs, s5fs, ufs, ext и т.Д.).
- •9. Служебные структуры файловых систем fat и их использование.
- •1.3.2. Файловые системы
- •Файловая система fat Краткие теоретические сведения
- •Обзор файловой системы fat
- •Имена файлов в fat
- •Преимущества файловой системы fat
- •Недостатки файловой системы fat
- •Обзор файловой системы hpfs
- •Суперблок
- •Запасной блок
- •Преимущества файловой системы hpfs
- •Недостатки файловой системы hpfs
- •Обзор файловой системы ntfs
- •Надежность
- •Дополнительные функции
- •Поддержка posix
- •Устранение ограничений
- •Преимущества файловой системы fat
- •Недостатки файловой системы ntfs
- •Соглашения именования в ntfs
- •10. Программный интерфейс файловой системы (функции для взаимодействия с фс, файлового ввода-вывода) - dos, Win32.
- •12. Вычислительный процесс. Состояния вычислительного процесса.
- •[Править]Создание программ
- •[Править]Использование программ
- •[Править]Правовые аспекты
- •13. Адресное пространство процесса (задачи).
- •20. Адресное пространство процесса
- •14. Приложения Windows (Win 32), разновидности. Структура оконных (windowed) приложений.
- •2. Особенности приложений Win 32.
- •17. Событийное управление в Win32. Сообщения и очереди сообщений Windows (Windows messages): назначение, структура, отсылка, доставка, обработка.
- •18. Цикл обработки сообщений. Оконная процедура: назначение, выполнение, способы активизации и завершения. Краткие теоретические сведения
- •19. Многозадачность, многозадачные операционные системы, особенности выполнения приложений в многозадачной среде.
- •Краткие теоретические сведения поток
- •Краткие теоретические сведения
- •27. Взаимодействие процессов/потоков, взаимное исключение, синхронизация (базовые сведения)
- •Синхронизация субъектов взаимодействия
- •Сравнительная характеристика механизмов взаимодействия
- •33. Графическая подсистема Win32 (gdi) - общая характеристика, основные концепции, объекты (инструменты).
- •Х.1 Общие сведения
- •Х.2 Системы координат и единицы измерения
- •Х.3 Цвета и палитры
- •Х.4 Основные инструменты графической подсистемы
- •Х.4 Растровая графика
- •Х.5 Управление областями вывода и отсечением
- •Х.6 Некоторые аспекты использования графической подсистемы
- •34. Подсистема памяти. Основные задачи, функции, требования. 35. Виртуальное адресное пространство, управление памятью с использованием виртуального адресного пространства.
- •37. Подсистема памяти Win32. Регионы (области) памяти. Группы функций api подсистемы памяти.
- •38. Распределение памяти на уровне менеджера виртуальной памяти (vmm api - Win32). In (35) 3. Архитектура памяти в Win32® api. 3.2. Управление виртуальной памятью. Vmm.
- •39. Отображение файлов в память (File mapping - Win32).
- •4.1 Адресное пространство процесса.
- •4.2 Функции работы с виртуальной памятью.
- •4.3 Проецирование файлов в память
- •4.4.1 Запуск исполняемых файлов и динамически связываемых библиотек
- •4.4.2 Проецирование файлов данных
- •4.4.3 Взаимодействие процессов через общую область данных
- •4.4 Функции работы с кучами (heap-область)
- •4.5 Глобальные и локальные объекты "память"
- •4.6 Функции crt Memory api
- •X.2. Структура подсистемы памяти Win 32 и группы функций
- •40. Системный реестр Windows: назначение, организация, доступ.
4.3 Проецирование файлов в память
Проецирование файлов, подобно виртуальной памяти, позволяет резервировать регион адресного пространства и передавать ему физическую память. Различие между ними состоит лишь в том, что в случае проецирования файла физическая память выделяется из проецируемого заданного существующего файла, а не файла подкачки (тем не менее, есть возможность не указывать конкретный файл, при этом используется пространство файла подкачки).
С точки зрения программы проецирование файла выглядит как создания объекта “проецируемый файл” и далее создание его отображения на адресное пространство как региона. К файлу, спроецированному в память, можно обращаться так, как будто он загружен целиком. Проецируемый файл является объектом ядра, следовательно, может быть глобальным и доступным нескольким процессам. Объект “проецируемый файл” идентифицируется его описателем (handle), который подчиняется обычным правилам: может дублироваться, наследоваться, передаваться и т.д. Действие описателей объекта “проецируемый файл” прекращается универсальной функцией CloseHandle(). Объект удаляется после закрытия последнего (или единственного) его описателя. Кроме того, объекту “проецируемый файл” при создании может быть присвоено глобальное имя, которое также можно использовать для его идентификации при последующем повторном подключении.
Регион, на который отображен объект “проецируемый файл”, идентифицируется его базовым (начальным) адресом.
Для работы с проецируемыми файлами предназначены следующие функции.
Функция CreateFileMapping
Действие: создание именованного или безымянного объекта “проецируемый файл”
Формат функции:
HANDLE CreateFileMapping(
HANDLE hFile, //описатель (handle) файла
LPSECURITY_ATTRIBUTES lpSecurityAttr, //параметры доступа
DWORD flProtect, //параметры защиты
DWORD dwMaxSizeHigh, //размер объекта – старшая часть (32 бита)
DWORD dwMaxSizeLow, //размер объекта – старшая часть (32 бита)
LPCTSTR lpName //имя объекта
);
Возвращаемое значение: Ненулевой описатель объекта или NULL при неуспехе.
Параметры:
hFile – описатель существующего файла, для которого создается отображение. Может быть задано значение ‑1 (0xFFFFFFFF), в этом случае вместо конкретного файла будет использоваться часть пространства системного файла подкачки (paging file).
lpSecurityAttr – "параметры безопасности", в первую очередь возможность наследования описателя (можно задавать NULL).
flProtect – требуемые права доступа, должны быть согласованы с правами доступа к файлу. Возможны значения: PAGE_READONLY, PAGE_READWRITE, PAGE_WRITECOPY, а также дополнительные флаги, комбинируемые по ИЛИ: SEC_COMMIT (отобразить и выделить память, установлен по умолчанию), SEC_IMAGE (для исполняемых файлов, с другими флагами не сочетается), SEC_NOCACHE, SEC_RESERVE (только при отображении файла подкачки).
dwMaxSizeHigh, dwMaxSizeLow – размер региона (двойное длинное целое, что очевидно перекрывает текущие запросы). Обязательно должно быть установлено при использовании файла подкачки, при использовании же специфицированного файла по умолчанию устанавливается его размер.
lpName – имя объекта “проецируемый файл”. Имя регистро-чувствительное, без символов ‘\’. При совпадении имен вместо создания нового объекта может быть выполнено повторное подключение к существующему в пределах заданных прав. Если указано значение NULL, объект создается безымянным.
Функция OpenFileMapping
Действие: Открытие существующего именованного объекта “проецируемый файл”.
Формат функции:
HANDLE OpenFileMapping(
DWORD dwDesiredAccess, BOOL bInheritable, LPSTR lpName
)
Возвращаемое значение: Ненулевой описатель объекта или NULL при неуспехе.
Параметры:
dwDesiredAccess – желаемые права доступа к объекту, сравниваются системой с правами, установленными для оригинала: FILE_MAP_WRITE, FILE_MAP_READ, FILE_MAP_ALL_ACCESS, FILE_MAP_COPY (сопоставляется с PAGE_WRITECOPY). Windows 95 контроль прав доступа к объектам “проецируемый файл” не поддерживает.
bInheritable – флаг разрешения порождаемым процессам наследовать описатель данного объекта.
lpName – имя существующего объекта.
Функция MapViewOfFile
Действие: отображение объекта “проецируемый файл” на адресное пространство.
Формат функции:
LPVOID MapViewOfFile(
HANDLE hFileMapping, //описатель объекта “проецируемый файл”
DWORD dwDesiredAccess, //режим доступа
DWORD dwOffsetHigh, //смещение – старшая часть (32 бита)
DWORD dwOffsetLow, //смещение – младшая часть (32 бита)
DWORD dwBytesNumber //размер отображения
)
Возвращаемое значение: базовый (начальный) адрес региона, выделенного для данного отображения, или NULL при неуспехе.
Параметры:
hFileMapping – описатель существующего, в т.ч. разделяемого объекта “проецируемый файл”.
dwDesiredAccess – требуемые права (режим) доступа, должны быть согласованы с параметрами объекта: FILE_MAP_WRITE, FILE_MAP_READ, FILE_MAP_ALL_ACCESS, FILE_MAP_COPY.
dwOffsetHigh, dwOffsetLow – смещение начала области отображения, должно быть согласовано с величиной гранулярности памяти системы.
dwBytesNumber – количество байт, входящих в отображение. Может быть задано нулевое значение, тогда в отображение входит весь объект “проецируемый файл”
Функция MapViewOfFileEx
Действие: аналогично предыдущей.
Формат функции:
LPVOID MapViewOfFile(
HANDLE hFileMapping, //описатель объекта “проецируемый файл”
DWORD dwDesiredAccess, //режим доступа
DWORD dwOffsetHigh, //смещение – старшая часть (32 бита)
DWORD dwOffsetLow, //смещение – младшая часть (32 бита)
DWORD dwBytesNumber, //размер отображения
LPVOID lpBaseAddr, //требуемый базовый адрес региона
)
Возвращаемое значение: базовый (начальный) адрес региона, выделенного для данного отображения, или NULL при неуспехе.
Параметры: аналогичны предыдущей, за исключением
lpBaseAddr – требуемый (suggested) базовый (начальный) адрес региона отображения, округляется вниз на границу 64 К и должен быть согласован с величиной гранулярности памяти. При отсутствии необходимого свободного адресного пространства в заданной области функция завершается неуспехом. Если NULL, система выбирает адрес самостоятельно.
Функция UnmapViewOfFile
Действие: Прекращает действие отображения объекта “проецируемый файл” на адресное пространство. При необходимости выполняется сохранение модифицированного содержимого региона.
Формат функции: BOOL UnmapViewOfFile(LPVOID lpBaseAddr).
Возвращаемое значение: TRUE при успешном завершении, иначе FALSE (например, отображение на данный базовый адрес не существует).
Параметры: lpBaseAddr – базовый (начальный) адрес региона.
Существует (по крайней мере, в Windows 95) ограничение на применимость функций ввода-вывода к файлам, которые в настоящий момент отображены в память, но описатель открытого файла после того, как он был успешно отображен, может быть закрыт.
Механизм проецирования файлов в Win32 имеет три основных применения:
– для запуска исполняемых файлов и динамических библиотек;
– для работы с файлами;
– для одновременного использования одной области данных двумя процессами.
Использование его следует считать предпочтительным по сравнению с функциями работы с глобальной памятью, унаследованными из Win 16, использующей существенно иные базовые методы управления ресурсами.