В операционных системах мэйнфреймов IBM Execute Channel Program in Real Storage ( EXCPVR ) — это макрос , генерирующий системный вызов , реализованный как инструкция Supervisor Call для доступа к устройствам низкого уровня, где программист отвечает за предоставление списка CCW , специфичных для устройств , то есть программы канала , которая должна быть выполнена каналами ввода-вывода, блоками управления и устройствами. [1] Кроме того, от программиста ожидается и требуется гарантировать, что области данных ввода-вывода находятся в реальном хранилище и «фиксированы», либо до вызова EXCPVR, либо через дополнение исправления страницы. EXCPVR может в некоторых ситуациях обеспечить улучшенную производительность по сравнению с EXCP. [2]
EXCPVR можно рассматривать, исторически, как V=R (т.е. Virtual=Real) версию EXCP . Однако EXCPVR не ограничивается приложениями V=R. Действительно, EXCPVR может ссылаться на области данных, не относящиеся к V=R, при условии, что такие области данных являются «фиксированными», а командные слова канала, которые ссылаются на такие области данных, были переведены из виртуальных в реальные адреса программистом с помощью привилегированной инструкции LRA [ Load Real Address ], поскольку каналы данных имеют дело только с реальными адресами [a] , а не с виртуальными. EXCPVR был впервые представлен в SVS и был продолжен в MVS/370.
В более поздних версиях ОС была добавлена поддержка CCW формата 1 и, следовательно, доступа к областям данных, которые находятся «над линией» (CCW формата 0 могут получать доступ только к областям данных, которые находятся «под линией»).
Фронтенд EXCPVR всегда находится в режиме TCB, поскольку EXCPVR является SVC типа 1. В MVS/370 и последующих экземплярах ОС EXCPVR вызывает STARTIO для планирования выполнения программы канала, поэтому бэкенд EXCPVR всегда находится в режиме SRB, но бэкенд содержит код эмуляции, который позволяет дополнениям, разработанным для более ранних, до-MVS экземпляров ОС, функционировать в основном так же, как и раньше, и, таким образом, казаться находящимися в режиме TCB, для которого эти дополнения изначально были разработаны. Это различие может усложнить преобразование определенных методов доступа и приложений "roll-your-own" в MVS.