
- •1. Windows-как объектно-ориентированная операционная система (трпс)
- •2. Общая схема взаимодействия приложения и ядра Windows. (трпс)
- •3. Общая схема Windows приложения. Цикл обработки сообщения, функция окна, ресурсы. (трпс)
- •4. Синхронные и асинхронные Windows сообщения. Сходства и отличия. Области применения. (трпс)
- •5. Классы и стили окон. Иерархия окон. (трпс)
- •6. Особенности отрисовки для Windows приложения. Контекст устройства, недействительная область, обработка сообщений. (трпс)
- •7. Типы клавиатурных сообщений. Особенности обработки. (трпс)
- •8. Типы сообщений от манипулятора мышь. Особенности обработки. (трпс)
- •9. Реализация корпоративной и вытесняющей многозадачности на Windows платформах. (трпс)
- •10. Основные понятия процесса, потока, фибера (трпс)
- •11. Схема создания рабочего потока (трпс)
- •12. Синхронизация потоков, события, критические секции. (трпс)
- •13. Особенности использования памяти на Windows платформах. Проблема ipc (трпс)
- •14. Общая схема печати документов приложением на Windows платформах. (трпс)
- •2 Создание немодального диалога для отмены печати.
- •16. Типы и области применимости dll. Особенности программной реализации. (трпс)
- •17. Наборы символов для Windows платформ. Сходства и отличия. Области применимости. (трпс)
- •18. Типы диалогов для Windows платформ. Сходства и отличия. Особенности реализации. (трпс)
- •Int DialogBox(hinstance hInst,lpctstr pTemplate, hwnd hWndParent, dlgproc pDlgFunc)
- •Int MessageBox(hwnd hWnd, lpctstr szText, lpctstr szCaption, uint uType);
- •If (!IsDialogMessage(hDlgModaless,&msg)){
- •19. Элементы управления. Общая характеристика и области применимости. (трпс)
- •20. Функции crt и функции ядра Windows для работы с файлами. Особенности применения. (трпс)
9. Реализация корпоративной и вытесняющей многозадачности на Windows платформах. (трпс)
Процесс – это исполняемый модуль, которому Windows выделяет память и другие системные ресурсы. Поток – это последовательность исполняемых команд. Процесс может состоять из единственного потока, а может содержать их несколько. Окно обязательно принадлежит какому-либо потоку. Однако поток может владеть одним или несколькими окнами или вообще не одним. В однопоточных ОС наименьшей единице выполнения является задача или процесс. Механизм распределения задач в этих системах заключается в переключении между этими задачами. В многопоточной системе наименьшей единицей выполнения является поток, а не процесс. Задача или процесс могут состоять из более чем одного потока, при этом один из них определяется как главный поток.
Win16 не является системой с вытесняющей многозадачностью, т.к. она не «забирает» управление процессором у приложений, а ждет пока приложение не освободит процессор – корпоративная многозадачность. Если процессор занят неправильно работающим приложением, то система может «зависнуть». Для того, чтобы обеспечить более равномерное распределение ресурсов в Win16, функция GetMessage() автоматически передает управление системе, если в очереди не сообщений, то есть система передает управление другому приложению, если текущее в данный момент не задействовано. Но если приложение проводит большую вычислительную работу, то другие задачи работать не будут. Правильная работа Win16 зависит от поведения приложений, от того, часто ли они вызывают оконную функцию.
В Win32 реализована вытесняющая многозадачность - способность системы выполнять несколько программ одновременно, когда система сама производит переключение процессов, вне зависимости от текущего состояния приложения, на основе использования аппаратного таймера для выделения квантов времени для каждого из процессов.
10. Основные понятия процесса, потока, фибера (трпс)
Win32 поддерживает многопоточность - это возможность программы быть многозадачной. Программа разделена на отдельные потоки выполнения, которые выполняются параллельно.
Многопотоковость подразумевает использование нескольких параллельных потоков вычислений, относящихся к одной программе.
Итак, программа – это совокупность одного процесса и нескольких потоков. Процесс – это исполняемый модуль, которому система выделяет память и другие ресурсы. Процесс может содержать один поток, либо иметь их несколько. В Win32 реализован сложный механизм диспетчеризации, обеспечивающий принудительное прерывание одного потока, в момент, когда наступает очередь другого. Основным фактором при диспетчеризации служит приоритет выполнения каждого потока (число от 0 до 31, чем выше число, тем выше приоритет).
Архитектура приложения включает главный поток, который создает все окна и их процедуры и обрабатывает все сообщения для этих окон. Все остальные потоки являются рабочими и служат для решения фоновых задач. Они не имеют оконных процедур и не обрабатывают сообщения системы. Все потоки являются частями одного процесса, а значит разделяют все его ресурсы. Но каждый поток должен иметь свой стек и свое собственное состояние процессора.
Фибер – (волокна) это облегченный поток. Он запускается в контексте потока, который его создал. Поток может создавать множество фиберов. Фибер не содержит в себе всю информацию о состоянии, которая имеется у потока. Применяются тогда, когда нужна миграция win32 в win16 для постоянного запуска какого-либо потока.