- •Классификация системного программного обеспечения
- •Другая классификация
- •Требования к системному программному обеспечению
- •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: назначение, организация, доступ.
Х.2 Системы координат и единицы измерения
Все координаты, а также размеры (например, толщина линии инструментов) в GDI исчисляются в логических единицах (logical units). Величина логической единицы и соответствие ее физическим, а также направления отсчета координат составляют режим отображения (mapping mode). Помимо общего изменения единиц измерения в "квадратной" системе координат, можно установить различные коэффициенты пропорциональности по горизонтальной и вертикальной осям с целью устранения (компенсации) или, наоборот, целенаправленного внесения искажений "неквадратности" пикселов. Данная возможность особенно актуальна при работе с устройствами с подобными искажениями, например, принтером с различными вертикальным и горизонтальным разрешениями. Предусмотрены следующие режимы отображения:
– MM_TEXT – логическая единица соответствует 1 пикселу (pixel, pel – picture element) – одной физической экранной точке, направление координатных осей – вправо и вниз, т.е. в экранной системе координат; этот режим устанавливается по умолчанию;
– MM_LOENGLISH, MM_HIENGLISH – логическая единица равна соответственно 0,01 и 0,001 дюйма (inch), направление координатных осей – вправо вверх;
– MM_LOMETRIC, MM_HIMETRIC – логическая единица равна соответственно 0,1 и 0,01 миллиметра, направление координатных осей – вправо вверх;
– MM_TWIPS – логическая единица соответствует 1/20 стандартной печатной точки (1/72 дюйма), т.е. 1/1440 дюйма ("twip" – twentieth of a printer's point), направление координатных осей – вправо вверх; печатная точка, или пункт (pt), является типографской единицей измерения, принимается также как условное стандартное разрешение матричного принтера и экрана;
– MM_ISOTROPIC – единица измерения и направление отсчета координат устанавливаются дополнительно (см. ниже);
– MM_ANISOTROPIC – то же, но единица измерения может быть задана различной по вертикальной и горизонтальной осям.
Для изменения и получения режима отображения служат функции:
int SetMapMode(HDC hDC, int fnMapMode);
int GetMapMode(HDC hDC);
Коды возврата обоих функций и параметр fnMapMode принимают перечисленные выше значения. Функция установки режима возвращает его предыдущее значение.
Режимы MM_ISOTROPIC и MM_ANISOTROPIC требуют использования дополнительных функций для установки "разрешающей способности" логической системы координат. Данный параметр задается отдельно для окна (window), к которому относится контекст, и поля вывода (viewport) в целом:
BOOL SetWindowExtEx(
HDC hDC, int nXExtent, int nYExtent, LPSIZE lpSize
);
BOOL SetViewportExtEx(
HDC hDC, int nXExtent, int nYExtent, LPSIZE lpSize
);
Действие функций: установка соотношения вертикального и горизонтального масштабов логических единиц относительно физических для соответственно окна и поля вывода. Эффективны только для контекстов с режимами MM_ISOTROPIC и MM_ANISOTROPIC. В режиме MM_ISOTROPIC вызову SetViewportExtEx() должен предшествовать вызов SetWindowExtEx().
Возвращаемое значение: признак успешности выполнения и заполненная структура lpSize (если не NULL).
Параметры:
hDC – описатель контекста;
nXExtent, nYExtent – вертикальный и горизонтальный размеры.
lpSize – указатель на структуру SIZE (поля cx и cy типа LONG), в которую записываются предыдущие значения, может быть NULL.
Функции требуют определенных комментариев. Значение имеют не абсолютные величины параметров, а их соотношения, причем как разноименных в одной функции, так и одноименных в обоих вызовах. Фактически логические единицы задаются путем указания размера некоторого эталонного элемента (отрезка) в этих единицах. В типичном случае "разрешение" поля вывода учитывает физическую разрешающую способность и искажения реального устройства вывода, а окна – особенности построения изображения в этом окне, однако можно придерживаться и иной схемы.
Помимо соотношения размеров, задается также направление координатных осей: совпадение знаков разрешений окна и поля вывода задает направление осей, совпадающие с физической системой координат, противоположные знаки – противоположные направления. Напомним, что направление вертикальной оси экранной системы координат – сверху вниз, т.е. противоположно принятому стандартному "математическому" и "чертежному".
В качестве примера приведем значения разрешений поля вывода и окна, устанавливаемых в различных режимах (Windows NT, экранное разрешение 800600):
– MM_LOMETRIC – 800-600, 32002400;
– MM_HIMETRIC – 800-600, 3200024000;
– MM_LOENGLISH – 800-600, 1260945;
– MM_HIENGLISH – 800-600, 125989449;
– MM_TWIPS – 800-600, 1814213606;
– MM_TEXT – 11, 11;
– MM_ANISOTROPIC – изначально 11, 11 (соответствует MM_LOMETRIC);
– MM_ISOTROPIC – изначально 800-600, 32002400 (соответствует MM_TEXT).
Как видно из примера, разрешение поля вывода задается либо "единичным", либо в соответствии с текущим видеорежимом, отрицательное значение "разворачивает" вертикальную ось в привычном направлении.
За точку начало отсчета (origin) по умолчанию принимается верхний левый угол окна. При необходимости это можно изменить функциями SetWindowOrgEx() и SetViewportOrgExt(). Принцип действия функций аналогичен предыдущим. Позиция новой точки начала координат задается в действующей логической системе координат.
Текущие значения разрешений и начала отсчета могут быть получены с помощью функций GetWindowExtEx(), GetViewportExtEx(), GetWindowOrgEx(), GetViewportOrgEx().
При необходимости логические координаты точки (размеры) в данном контексте могут быть пересчитаны в физические (экранные, пиксельные, device-dependent) и обратно с помощью функций:
BOOL LPtoDP(HDC hDC, LPPOINT lpPoints, int nCount);
BOOL DPtoLP(HDC hDC, LPPOINT lpPoints, int nCount);
Возвращаемое значение: признак успешности выполнения; модификация структур в переданном массиве lpPoints.
Параметры:
hDC – контекст устройства
lpPoints – массив структур POINT (поля x и y типа LONG);
nCount – количество обрабатываемых структур в массиве.
При преобразовании координат учитывается их знак: меняется на противоположный, если изменяется направление соответствующей оси. Данное обстоятельство следует учитывать при работе не с координатами (векторами), а линейными размерами (абсолютными величинами).
По умолчанию началом координат во всех режимах является левый верхний угол окна, поэтому в режимах с "обычными" (не экранными) направлением осей положительные вертикальные координаты находятся за пределами видимой области (выше окна).
Реальная ориентация (угол поворота) символов (см. ниже) зависит от установленных направлений координатных осей, а линейные параметры инструментов (толщина линии, размер шрифта и т.п., см. ниже) при изменении текущего режима сохраняют свои числовые значения и автоматически не пересчитываются, вследствие чего видимые размеры элементов изображения изменяются. Порядок вывода строк развертки видеобразов символов (при любой ориентации) и битовых образов (см. ниже) не зависят от логической координатной системы, так как определяются физическими координатами.
Расположение и размеры самих окон от режима отображения не зависят!
Настройки как поля вывода, так и окна локальны для данного контекста и не затрагивают другие контексты, даже если они связаны с одним и тем же самым объектом "окно".