Серверы Windows NT называются защищенными подсистемами,
так как каждый из них - это отдельный процесс, память которого защищена от
других процессов системой виртуальной памяти исполнительной системы NT.
Каждая защищенная подсистема обеспечивает интерфейс прикладным программам (API)
посредством DLLs клиентской стороны. Когда приложение или другой сервер
вызывает некоторую процедуру API, соответствующая DLL упаковывает параметры
функции API в сообщение и с помощью средства локального вызова процедур (Local
Procedure Call, LPC) посылает его серверу, реализующему данную процедуру.
Сервер же, выполнив вызов, посылает ответное сообщение вызывающей программе.
Передача сообщений остается невидимой для прикладного программиста.
Используя такую процедуру, вызывающая программа никогда не получает прямого
доступа к адресному пространству подсистемы.
Надо отметить, что далеко не все функции API реализуются
сервером, например, большая часть функций API Win32 оптимизирована в DLL
клиентской стороны, и в действительности не обращается к подсистеме Win32.
Защищенные подсистемы подразделяются на подсистемы среды
(environment subsystems) и неотъемлемые подсистемы (integral subsystems).
Тестирование параллельного программного обеспечения представляет собой более
сложную задачу по сравнению с тестированием последовательной программы. Программист
должен знать о подводных камнях при тестировании параллельного кода, имеющихся
методологиях и инструментарии.
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее
реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности,
достоинства и недостатки.