Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.372


Таненбаум Э.- Архитектура компьютера. стр.372

Win32 API имеется и в системе Windows 95/98 (а также в операционной системе Windows СЕ, предназначенной для установки в разного рода электронных устройствах), правда, с некоторыми исключениями. Например, Windows 95/98 не имеет защиты, поэтому те вызовы, которые связаны с защитой, просто возвращают код ошибки. Кроме того, для имен файлов в Windows ХР используется набор символов Unicode, который не поддерживается в Windows 95/98. Существуют различия в параметрах некоторых вызовов API. В Windows ХР, например, все экранные координаты являются 32-разрядными числами, а в Windows 95/98 используются только младшие 16 бит (для совместимости с Windows 3.1). Поддержание набора функций Win32 API на разных операционных системах упрощает перенос программ между ними, но при этом кое-что в реальной системе вызовов остается недоступным.

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

В этом подразделе мы поговорим о виртуальной памяти в UNIX и Windows ХР. С точки зрения программиста они во многом сходны.

Виртуальная память UNIX

Модель памяти UNIX довольно проста. Каждый процесс имеет три сегмента: код, данные и стек, как показано на рис. 6.26. В машине с линейным адресным пространством код обычно располагается в нижней части памяти, а за ним следуют данные. Стек помещается в верхней части памяти. Размер кода фиксирован, а данные и стек могут увеличиваться или уменьшаться. Такую модель легко реализовать практически на любой машине. Она используется в операционной системе Solaris.

Таненбаум Э.- Архитектура компьютера.

Рис. 6.26. Адресное пространство одного процесса в UNIX

Более того, если машина поддерживает страничную память, то все адресное пространство может быть разбито на страницы совершенно прозрачно для пользовательских программ. Им будет известно только то, что размер программы может превышать размер физической памяти машины. Те системы UNIX, которые не поддерживают страничную организацию памяти, обычно подкачивают целые процессы между памятью и диском, чтобы параллельно могло выполняться произвольное число процессов.

Данное ранее описание системы UNIX (виртуальная память с подкачкой страниц по требованию) в целом соответствует версии Berkeley UNIX, однако версии Sysytem V и Solaris имеют некоторые особенности, позволяющие пользователям управлять виртуальной памятью. Самой важной является способность процесса отображать файл или часть файла на часть адресного пространства процесса. Например, если файл размером 12 Кбайт отображается на виртуальный адрес 144К, то в ячейке с адресом 144К будет находиться первое слово этого файла. Таким образом, можно выполнять ввод-вывод файла без системных вызовов. Поскольку размер некоторых файлов превышает размер виртуального адресного пространства, можно отображать не весь файл, а только его часть. Для отображения сначала нужно открыть файл и получить дескриптор файла fd (file descriptor). Дескриптор используется для идентификации отображаемого файла. Затем процесс совершает вызов

paddr = mmap(virtual_address. length, protection, flags, fd, file_offset)

Этот вызов отображает length байт, начиная со смещения file_offset в файле, на виртуальное адресное пространство, начиная с адреса virtual_address. Параметр flags требует, чтобы система выбрала виртуальный адрес, который затем


⇐ Предыдущая страница| |Следующая страница ⇒

.