Операционная система Microsoft Windows 3.1 для программиста -том 3


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


2.1.

2.2.

2.3.

2.4.

2.5.

2.6.

2.7.

2.8.

В этой главе мы рассмотрим механизм управления памятью в операционной системе Windows и функции программного интерфейса Windows, предназначенные для работы с оперативной памятью. Если вы раньше составляли программы только для операционной системы MS-DOS, система управления памятью, реализованная в Windows, может показаться вам очень сложной и запутанной. Однако в отличие от MS-DOS, операционная система Windows является мультизадачной и к тому же использует защищенный режим работы процессора. Все это не может не оказать влияние на сложность системы управления памятью.

До сих пор в наших приложениях мы почти не использовали функции управления памятью. Там же где это было абсолютно необходимо, мы получали у Windows буфер памяти с помощью хорошо знакомой вам из MS-DOS функции malloc. В некоторых случаях вы можете продолжать использовать эту функцию, однако для приложений Windows предусмотрены и другие, более мощные средства.

Защищенный режим работы процессора накладывает на приложения свои ограничения. Если программа, составленная для MS-DOS, имеет доступ к любому участку основной, расширенной или дополнительной памяти, а также к любому оборудованию компьютера (через порты ввода/вывода), приложение Windows поставлено в жесткие рамки. Например, приложение может работать только с теми блоками памяти, которые ей принадлежат или получены от операционной системы. Приложение не может выполнять запись в сегмент кода и не может передавать управление в сегмент данных. Что же касается портов ввода/вывода, то в расширенном режиме работы приложение, как правило, не имеет к ним непосредственного доступа. Если приложение попытается вывести данные в порт, это приведет к переключению задачи. Операционная система Windows проверит номер порта и, возможно, предоставит вам возможность что-нибудь в него записать. А возможно, что и не предоставит, выполнив вашу команду ввода/вывода как команду NOP.

Все указанные выше ограничения необходимы в мультизадачной среде.


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