Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Руководство по Borland Pascal.doc
Скачиваний:
81
Добавлен:
02.05.2014
Размер:
2.05 Mб
Скачать

Многозадачность

Windows позволяет пользователям выполнять несколько приложе-

ний параллельно, устраняя необходимость использования резидентных

в памяти программ (TSR). В Windows реализована не просто многоза-

дачность. Она поддержана набором средств и межпроцессорных комму-

никаций, таких как буфер вырезанного изображения Clipboard и ди-

намический обмен данными (DDE).

Windows управляет множеством приложений, ограничивая исполь-

зование экрана каждым приложением одной или более прямоугольной

областью, которые называются окнами. Эти окна можно перемещать,

изменять их размер и временно сворачивать в пиктограммы, позволяя

пользователю быстро переключаться от одной задачи к другой.

С точки зрения программиста это означает, что программа не

должна записывать текст или графику непосредственно по экранным

адресам, а должна выводить их в пользовательскую область окна -

область внутри рамки окна. Аналогично, прикладная программа долж-

на использовать память компьютера совместно с другими приложения-

ми. Хорошо построенное приложение Windows корректно соблюдает

правила Windows работы с экраном и управления памятью.

Управление памятью

В типичном сеансе работы с Windows множество приложений мно-

гократно открываются и закрываются, поэтому нерационально загру-

жать каждое приложение в память после предыдущего - Windows скоро

исчерпает память. Вместо этого Windows, чтобы удовлетворить пот-

ребности других приложений или самой Windows, может перемещать

память большинства приложений в другую часть памяти или на диск.

Таким образом, приложение Windows должно соответствовать ди-

намическому распределению памяти Windows и избегать прямого обра-

щения к адресам памяти. Например, традиционный указатель на ячей-

ку памяти может быстро стать недопустимым, когда Windows пере-

распределит память, так как может указывать на ячейку памяти, ко-

торая используется для чего-то еще.

Вместо указателей Windows использует описатели, которые по

существу представляют собой указатели на указатели. Описатели -

это номера, использующиеся в качестве индексов в обслуживаемой

Windows таблице указателей. Таким образом, приложения Windows

ссылаются на окно или содержимое экрана (область для отображения

на экране) по описателю. Имеются также указатели экземпляров при-

ложений, строк, средств отображения и ресурсов, таких как меню и

пиктограммы.

При обычной работе вам не потребуется иметь дело с самими

описателями. Вы можете выделять и освобождать память в динамичес-

ки распределяемой области с помощью обычных подпрограмм New,

Dispose, GetMem и FreeMem, а Borland Pascal будет взаимодейство-

вать с Windows и обеспечивать для нее информацию о том, на что

фактически ссылаются эти указатели.

Одним из основных преимуществ управления памятью в Windows

является возможность совместно использовать в приложениях скомпи-

лированный код. Например, если пользователь выполняет два экземп-

ляра одного и того же приложения, то эти приложения используют

один и тот же скомпилированный код в памяти. Аналогично, приложе-

ние может динамически загружать библиотечный модуль, совместно

используемый в нескольких прикладных программах. Это называется

динамически компонуемой библиотекой - DLL.

Соседние файлы в папке Delphi