Операционные системы. Учебное пособие. Марапулец Ю.В. - 29 стр.

UptoLike

Составители: 

Еще одной особенность Windows является многозадачность, причем поддержива-
ется два типа многозадачности: основанная на процессах и основанная на потоках. Да-
лее идеология многозадачности будет рассмотрена более подробно.
Во многих операционных системах взаимодействие между системой и программой
инициализирует программа. Например, в DOS программа запрашивает разрешение на
ввод и вывод данных. Говоря другими словами, не- Windows-программы сами вызывают
операционную систему. Обратного процесса не происходит. В Windows все совершенно
наоборот: именно система вызывает программу. Это осуществляется следующим обра-
зом: программа ожидает получения сообщения от Windows. Когда это происходит, то
выполняется некоторое действие. После его завершения программа ожидает следующе-
го сообщения.
Windows может посылать программе сообщения множества различных типов. На-
пример, каждый раз при щелчке мышью в окне активной программы посылается соот-
ветствующее сообщение. Другой тип сообщений посылается, когда необходимо обно-
вить содержимое активного окна. Сообщения посылаются также при нажатии клавиши,
если программа ожидает ввода с клавиатуры. Необходимо запомнить одно: по отноше-
нию к программе сообщения появляются случайным образом. Вот почему Windows-
программы похожи на программы обработки прерываний: невозможно предсказать, ка-
кое сообщение появиться в следующий момент.
Функция окна. Все Windows-программы должны содержать специальную функ-
цию, которая не используется в самой программе, но вызывается самой операционной
системой. Эту функцию обычно называют функцией окна, или процедурой окна. Она
вызывается Windows, когда системе необходимо передать сообщение в программу.
Именно через нее осуществляется взаимодействие между программой и системой.
Функция окна передает сообщение в своих аргументах. Согласно терминологии Win-
dows, функции, вызываемые системой, называются функциями обратного вызова. Та-
ким образом, функция окна является функцией обратного вызова. Помимо принятия со-
общения от Windows, функция окна должна вызывать выполнение действия, указанного
в сообщении. Конечно, программа не обязана отвечать на все сообщения, посылаемые
Windows. Поскольку их могут быть сотни, то большинство сообщений обычно обраба-
тывается самой системой, а программе достаточно поручить Windows выполнить дейст-
вия, предусмотренные по умолчанию.
Цикл сообщений. Как объяснялось выше, Windows взаимодействует с програм-
мой, посылая ей сообщения. Все приложения Windows должны организовать так назы-
ваемый цикл сообщений. В этом цикле каждое необработанное сообщение должно быть
извлечено из очереди сообщений данного приложения и передано назад в Windows, ко-
торая затем вызывает функцию окна программы с данным сообщением в качестве аргу-
мента.
Класс окна. Как будет показано далее, каждое окно в Windows-приложении харак-
теризуется определенными атрибутами, называемыми классом окна. (Здесь понятие
класс не идентично используемому в С++. Оно, скорее, означает стиль или тип.) В
традиционной программе класс окна должен быть определен и зарегистрирован прежде,
чем будет создано окно. При регистрации необходимо сообщить Windows, какой вид
должно иметь окно и какую функцию оно выполняет. В то же время регистрация класса
окна еще не означает создание самого окна. Для этого требуется выполнить дополни-
тельные действия.
Структура Windows-программ отличается от структуры программ других типов.
Это вызвано двумя обстоятельствами: во-первых, способом взаимодействия между про-
граммой и Windows, описанным выше; во-вторых, правилами, которым следует подчи-
няться для создания стандартного интерфейса Windows-приложения (т.е. чтобы сделать
программупохожейна Windows-приложение).
31
      Еще одной особенность Windows является многозадачность, причем поддержива-
ется два типа многозадачности: основанная на процессах и основанная на потоках. Да-
лее идеология многозадачности будет рассмотрена более подробно.
      Во многих операционных системах взаимодействие между системой и программой
инициализирует программа. Например, в DOS программа запрашивает разрешение на
ввод и вывод данных. Говоря другими словами, не- Windows-программы сами вызывают
операционную систему. Обратного процесса не происходит. В Windows все совершенно
наоборот: именно система вызывает программу. Это осуществляется следующим обра-
зом: программа ожидает получения сообщения от Windows. Когда это происходит, то
выполняется некоторое действие. После его завершения программа ожидает следующе-
го сообщения.
      Windows может посылать программе сообщения множества различных типов. На-
пример, каждый раз при щелчке мышью в окне активной программы посылается соот-
ветствующее сообщение. Другой тип сообщений посылается, когда необходимо обно-
вить содержимое активного окна. Сообщения посылаются также при нажатии клавиши,
если программа ожидает ввода с клавиатуры. Необходимо запомнить одно: по отноше-
нию к программе сообщения появляются случайным образом. Вот почему Windows-
программы похожи на программы обработки прерываний: невозможно предсказать, ка-
кое сообщение появиться в следующий момент.
      Функция окна. Все Windows-программы должны содержать специальную функ-
цию, которая не используется в самой программе, но вызывается самой операционной
системой. Эту функцию обычно называют функцией окна, или процедурой окна. Она
вызывается Windows, когда системе необходимо передать сообщение в программу.
Именно через нее осуществляется взаимодействие между программой и системой.
Функция окна передает сообщение в своих аргументах. Согласно терминологии Win-
dows, функции, вызываемые системой, называются функциями обратного вызова. Та-
ким образом, функция окна является функцией обратного вызова. Помимо принятия со-
общения от Windows, функция окна должна вызывать выполнение действия, указанного
в сообщении. Конечно, программа не обязана отвечать на все сообщения, посылаемые
Windows. Поскольку их могут быть сотни, то большинство сообщений обычно обраба-
тывается самой системой, а программе достаточно поручить Windows выполнить дейст-
вия, предусмотренные по умолчанию.
      Цикл сообщений. Как объяснялось выше, Windows взаимодействует с програм-
мой, посылая ей сообщения. Все приложения Windows должны организовать так назы-
ваемый цикл сообщений. В этом цикле каждое необработанное сообщение должно быть
извлечено из очереди сообщений данного приложения и передано назад в Windows, ко-
торая затем вызывает функцию окна программы с данным сообщением в качестве аргу-
мента.
      Класс окна. Как будет показано далее, каждое окно в Windows-приложении харак-
теризуется определенными атрибутами, называемыми классом окна. (Здесь понятие
“класс” не идентично используемому в С++. Оно, скорее, означает стиль или тип.) В
традиционной программе класс окна должен быть определен и зарегистрирован прежде,
чем будет создано окно. При регистрации необходимо сообщить Windows, какой вид
должно иметь окно и какую функцию оно выполняет. В то же время регистрация класса
окна еще не означает создание самого окна. Для этого требуется выполнить дополни-
тельные действия.
      Структура Windows-программ отличается от структуры программ других типов.
Это вызвано двумя обстоятельствами: во-первых, способом взаимодействия между про-
граммой и Windows, описанным выше; во-вторых, правилами, которым следует подчи-
няться для создания стандартного интерфейса Windows-приложения (т.е. чтобы сделать
программу “похожей “ на Windows-приложение).


                                        31