Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 180


И Console

: Ш Control Panel :          i-- InstallLocationsMRU :         Ш keyboard layout i       Ш Network :        :•••• RemoteAccess ;          И Software В HKEY_CURRENT_CONFIG i   В Display

i    !•• • Fonts '•     i    '-•• Settings :    0 System

; В CurrentControlSet H HKEY_DYN_DATA Ш Config Manager В PerfStats

Рис. 20. Окно с деревом реестра, созданное программой

КОЕ-ЧТО О МНОГОЗАДАЧНОСТИ В WINDOWS

Одним из основных отличий Win32 от его предшественников явилась многозадачность. "Как это - разве в Windows 3.x не была реализована истинная многозадачность?" - может спросить кто-нибудь из неискушен­ных пользователей. "НЕ БЫЛА!" - отвечу я. И вот почему.

Мне Windows 3.x представляется чем-то вроде однорукого натурали­ста. У этого натуралиста есть зверинец, в каждой клетке которого сидит хищник - программа. Каждому хищнику (программе) натуралист подает корм (сообщение) рукой. Как только хищник (программа) съест корм (обработает сообщение), корм (сообщение) получает очередной хищник. И так далее по кругу. Но иногда один из хищников (программ) мертвой хваткой вцепляется в руку (зависает и не возвращает управление) и натуралист умирает (Windows зависает), после чего на смену умершему смотрителю зверинца приходит новый однорукий натуралист (производится перезагрузка системы). И все начинается сначала. Разве

217

вам не знакома эта ситуация, уважаемый читатель? В Windows 3.x была реализована ПСЕВДОМНОГОЗАДАЧНОСТЬ, т. е. управление передава­лось программе, возвращалось системе и передавалось следующей про­грамме, т. е. фактически программы работали последовательно, друг за другом. В случае зависания одной из задач средств завершить ее, не перезагружая систему, практически не было. Кроме этого, фактически все задачи разделяли одни и те же системные ресурсы, например, память. Не было никаких проблем для одной задачи затереть содержимое памяти, выделенной другой.

В Windows'95 и Windows NT дело обстоит не так. В этой системе реа­лизована истинная многозадачность, т. е. каждой программе системой выделяется квант времени, в течение которого программа обрабатывает поступившие в ее адрес сообщения. Вне зависимости от состояния про­граммы СИСТЕМА забирает управление у программы и передает его другой программе. Если программа зависла, то система от этого не по­страдает. Управление в любом случае будет передано другой программе. Кроме этого, в Windows'95 и Windows NT введено понятие процесса. Грубо говоря, процесс - это совокупность выполняющейся программы и выделенных ей системных ресурсов. Случай, при котором программа может вырваться из рамок своего процесса и повредить еще чьи-то ресурсы, практически не возможен.




Начало  Назад  Вперед



Книжный магазин