
- •Системное по. Цели, задачи, классификация
- •Операционная система. Основные функции ос. Структура операционной системы.
- •Общая характеристика операционных систем Microsoft: семейства dos, Windows
- •Интерфейс прикладных программ (api). Apidos (программные прерывания) и Win32
- •Дисковая подсистема в архитектуре ibmpc
- •Низкоуровневая организация дисковой памяти. Сервис bios доступа к дисковой подсистеме.
- •Понятие файловой системы. Назначение, требования, функции. Способы организации фс.
- •Объекты файловой системы: файлы, директории, логические устройства, другие виды объектов.
- •Файловые системы на основе fat
- •X.2 Файловая система ntfs
- •Служебные структуры fat и их использование
- •Программный интерфейс файловой системы (функции для взаимодействия с фс, файлового ввода-вывода) – dos, Windows Функции общего назначения
- •Файловый ввод-вывод
- •14. Адресное пространство процесса (задачи).
- •15. Приложения Windows (Win 32), разновидности. Структура оконных приложений
- •1. Основные определения
- •2. Особенности приложений Win 32.
- •3. Событийное управление
- •4. Структура приложения
- •16. Окно Win32: назначение, виды, свойства. Оконные классы.
- •17. Создание и управление окнами.
- •18. Событийное управление в Win32. Сообщения и очереди сообщений Windows (Windowsmessages): назначение, структура, отсылка, доставка, обработка Сообщения и очереди сообщений.
- •19. Цикл обработки сообщений. Оконная процедура: назначение, выполнение, способы активизации и завершения.
- •20. Многозадачность, многозадачные операционные системы, особенности выполнения приложений в многозадачной среде. Модель многозадачности Win 32
- •21. Состояния процессов (многозадачная среда). Состояния процессов (потоков)
- •22. Многозадачность в win32. Планирование и выполнения программ в win32
- •23. Процессы win32. Атрибуты и состояния процессов. Порождение процессов и управление ими. Основы управления процессами Win32
- •24. Потоки и многопоточные приложения. Порождение потоков, состояние потоков, управление ими. Основы управления потоками Win32
- •25. Нити – альтернативное управление выполнением программы Управление нитями
- •26. Распределение времени выполнения программ в многозадачной системе. Приоритеты. Распределение времени между потоками (управление приоритетами)
- •27. Приоритеты процессов и потоков win32. Управление приоритетами.
- •28. Взаимодействие процессов/потоков, взаимное исключение, синхронизация (базовые сведения)
- •29. Реализация взаимного исключения. Механизм criticalsection.
- •30. Синхронизация при управлении процессами и потоками
- •31. Функция ожидания
- •32. Использование каналов и почтовых ящиков для обмена данными
- •33. Использование файловой системы для обмена данными
- •X.2.6. Использование сообщения wm_copydata
- •34. Графическая подсистема win32 – общая характеристика, основные принципы.
- •35. Основные объекты win32 gdi. Средства векторной и растровой графики
- •Растровая графика
- •36. Подсистема памяти. Основные задачи, функции, требования
- •37. Виртуальное адресное пространство, управление памятью.
- •38. Динамическое распределение памяти программами (heap). HeapApiWin32.
- •Функции работы с кучами (heap-область)
- •39. Подсистема памяти win32. Регионы(области) памяти. Группы функций api подсистемы памяти. Адресное пространство процесса.
- •40. Управление на уровне менеджера вирнуальной памяти. (vmm)
- •41. Отображение файлов в память Проецирование файлов в память
- •42. Системный реестр windows: назначение, организация, доступ
2. Особенности приложений Win 32.
1) Многозадачная среда выполнения
2) Подконтрольность операционной системе.
Как следствие:
определенная регламентируемая структура;
составные части программы и объекты, с которыми она работает, известны системе и контролируются ею;
унифицированный механизм взаимодействия программ внутри себя и друг с другом;
выполнение всех операций ввода-вывода и управления любыми объектами и ресурсами посредством вызовов ОС.
3. Событийное управление
Сообщения и события. Их функция и обработка в Win 32.
Источник, получатель и обработчик сообщений.
4. Структура приложения
Головной модуль
Цикл обработки сообщений: извлечение, трансляция, обработка.
Генерация сообщений.
Примеры использования сообщений
16. Окно Win32: назначение, виды, свойства. Оконные классы.
Окно (window) –представляет собой прямоугольную (специальными методами можно задать иную форму) часть экрана, в которой приложение производит отображение выводимой информации и из которой получает вводимую информацию. Кроме того, окно является получателем сообщений.
При загрузке Windows всегда создается окно, занимающее весь экран – Desktop window. Каждое Windows-приложение, использующее стандартные интерфейсы Windows (Windows-based приложение), создает хотя бы одно окно, называемое главным окном приложения (возможно, невидимое). Многие приложения создают еще дополнительные окна. Окно приложения может состоять из ряда компонент:
В каждый момент времени только одно окно в системе может получать вводимую информацию – т.н. активное окно. Пользователь может использовать клавиатуру, мышь или другое устройство ввода для взаимодействия с окном.
...
Приложения могут использовать различные типы окон:
– элементы управления (controls)
– окна диалога (dialog boxes)
– окна сообщений (message boxes)
Windows управляет каждым окном в зависимости от отношений этого окна с другими окнами системы. Информация о взаимоотношениях окон хранится в списке диспетчера окон (window manager's list). Каждое окно в этом списке определяется специальной структурой, внутри которой нам интересны четыре поля:
– описатель родительского окна
– описатель окна - хозяина
– описатель дочернего окна
– описатель следующего окна в списке братьев
При загрузке Windows создает окно рабочего стола (Desktop window). Это окно занимает весь экран. Это окно всегда лежит в начале списка диспетчера окон. Следующий уровень иерархии составляют окна верхнего уровня (top-level windows). К таким окнам относятся все не-дочерние окна. Окна верхнего уровня соединяются с окном рабочего стола следующим образом:
– каждое окно ссылается на окно рабочего стола как на родительское
– окно рабочего стола ссылается на самое верхнее окно из окон верхнего уровня
– все окна верхнего уровня, кроме самого нижнего, ссылаются друг на друга, образуя однонаправленный связный список братьев. Порядок расположения окон в этом списке определяет очередность перекрытия окон.
Окна верхнего уровня могут так же вступить в отношения владения. Если при порождении окна указать в качестве окна владельца окно не верхнего уровня, то система поднимется по цепочке родительских окон и назначит в качестве хозяина соответствующее окно верхнего уровня. Окно диалога всегда принадлежит породившему его окну, за исключением тех случаев, когда оно порождается как дочернее.
Любые окна могут иметь дочерние окна. При этом каждое окно содержит указатель на начало списка дочерних окон. В системе могут образовываться весьма сложные и разветвленные структуры.
Окна, существующие в любой момент в системе, образуют определенную иерархию.
Отношение предок-потомок (родитель-ребенок)
Окно может иметь родительское окно (parent window). В таком случае оно называется дочерним окном или окном-потомком (child window) по отношению к родительскому. Дочернее окно никогда не выходит за границы родительского, по умолчанию имеет только клиентскую область, но дополнительно дополнительно можно задать любые элементы, кроме меню. Действия, производимые с родительским окном, имеют влияние также и на дочерние:
– уничтожение – уничтожение перед родительским;
– скрытие – скрытие перед родительским;
– перемещение – перемещение вместе с родительским;
– отображение – отображение после родительского.
Окна-потомки обычно используются при организации т.н. многодокументного интерфейса (multi-documentinterface – MDI)
Отношение владелец-подчиненный
Окно также может иметь окно-хозяина, или владельца (ownerwindow). Это другой тип отношений между окнами. Окно всегда располагается поверх хозяина и сворачивается и уничтожается вместе с ним.
Особенности передачи сообщений владельцу и подчиненному.
Каждое окно в системе относится к какому-либо оконному классу. Окна одного класса однотипны и работают одинаково. Это связано с тем, что класс окна определяет, во-первых, ряд внешних атрибутов (форму курсора, параметры фона, пиктограмму), а, во-вторых, все окна одного класса работают с одной и той же функцией окна.
Функция окна – специальная функция, которая назначается классу окна. Для посылки окну сообщения операционная система вызывает эту функцию и передает ей в качестве параметров код сообщения и другую уточняющую информацию.
Существует три типа оконных классов:
1) Системные глобальные классы – классы, которые регистрируются при загрузке операционной системы. К таким классам относятся классы элементов управления (кнопки, списки, полосы прокрутки и т.д.)
2) Прикладные глобальные классы – классы, которые регистрируются динамически связываемыми библиотеками (DLL) и доступны всем приложениям системы
3) Прикладные локальные классы – классы, которые приложения регистрируют для своего внутреннего использования.
Для регистрации классов используются функции RegsterClass или RegisterClassEx. В функцию регистрации передается адрес структуры типа WNDCLASS, содержащей следующую информацию:
lpszClassName – имя класса окна;
style – стиль окна, именованная константа, задающая дополнительные параметры окна внутри класса; так, например, окно класса “полоса прокрутки” может иметь стили SBS_HORZ или SBS_VERT, определяющие направление прокрутки. Константы стилей могут объединяться по ИЛИ.
hInstance – описатель программы – владельца окна;
lpfnWndProc – указатель на оконную процедуру;
hIcon – описатель значка приложения (стандартного или загружаемого), или NULL (значок по умолчанию);
hCursor – описатель курсора приложения (стандартного или загружаемого), или NULL (курсором можно и нужно будет управлять самостоятельно);
hbrBackground – описатель кисти фона (см. описание графической подсистемы), константа (одна из стандартных) или создается программой;
lpszMenuName – имя меню (??)
cbClsExtra – дополнительная информация класса;
cbWndExtra – дополнительная информация окна.
3) Окно-родитель или окно-владелец – описатель окна, которому подчинено данное окно, или NULL, если окно независимо.
4) Размеры окна и координаты в пикселах, отсчитываемые от левого верхнего угла экрана, место в порядке расположения
5) Позиция (место) окна при перекрытии.
6) Идентификатор дочернего окна (если создаваемое окно является дочерним).
7) Описатель меню для окна, не являющегося дочерним.
Дочернее окно может иметь уникальный идентификатор, который позволяет выделять дочернее окно из множества дочерних окон. Не дочернему окну можно назначить меню.
8) Описатель экземпляра программы, создающей окно.
9) Дополнительные данные. Определяемый приложением блок данных, который будет передан процедуре окна при порождении в качестве одного из параметров. В случае Windows 95 размер корректно обрабатываемого блока ограничен 40 байтами.