En los sistemas operativos mainframe de IBM , el método básico de acceso particionado ( BPAM ) [1] es un método de acceso para bibliotecas , denominado conjuntos de datos particionados (PDS) en la terminología de IBM. BPAM se utiliza en OS/360 , OS/VS2 , MVS , z/OS y otros.
Un PDS consta de miembros (internamente idénticos a los conjuntos de datos secuenciales ), registrados en una lista llamada directorio . La combinación de miembros y directorio es un único conjunto de datos en el disco. El directorio contiene una lista de nombres de miembros (8 caracteres, rellenados a la derecha con espacios en blanco, según sea necesario) y las direcciones de los miembros. Las direcciones son relativas al inicio del conjunto de datos para permitir que el PDS se mueva a una ubicación de disco diferente.
Los conjuntos de datos particionados pueden almacenar cualquier tipo de datos, pero suelen utilizarse para almacenar programas ejecutables o módulos de carga , a veces denominados binarios en otros sistemas. Otros usos incluyen definiciones de macros del ensamblador del sistema, procedimientos de control de trabajos y código fuente de programas.
BPAM proporciona una interfaz de programación de aplicaciones (API) que permite a los programadores acceder directamente a las bibliotecas. La API de BPAM es similar al método de acceso secuencial básico (BSAM), pero agrega funcionalidad para procesar directorios. Los miembros individuales de un PDS también se pueden procesar mediante métodos de acceso secuencial especificando el nombre del miembro en la declaración DD de control de trabajo .
El programador especifica DSORG=PO
en su bloque de control de datos (DCB) para indicar el uso de BPAM. Como método de acceso básico , BPAM lee y escribe datos de miembros en bloques y la operación de E/S procede de forma asincrónica y debe probarse su finalización utilizando la CHECK
macro. [2] BPAM utiliza las macros de sistema estándar OPEN
, CLOSE
, READ
, WRITE
y CHECK
. La NOTE
instrucción de macro devuelve la posición del último bloque leído o escrito, y la POINT
macro se reposicionará en la ubicación identificada por una NOTE
. [2] La BLDL
macro se puede utilizar para crear una lista de las direcciones de los miembros especificados por el programador para su uso posterior, si se desea. FIND
posiciones a un solo miembro, especificado por nombre, que requiere una búsqueda de directorio en el disco, o por dirección recuperada previamente por BLDL
. La STOW
macro se utiliza para actualizar el directorio cuando se agrega, elimina, cambia (incluso renombra) o reemplaza un miembro. [3]
El sistema operativo requiere que todos los programas ejecutables se almacenen en bibliotecas porque la entrada del directorio del miembro contiene información adicional sobre atributos específicos de los módulos de carga. Cuando se utilizan para almacenar módulos de carga, los directorios también contienen, entre otros datos, el tamaño del módulo de carga y la dirección del primer "registro de texto", que es diferente de la dirección de los datos del primer miembro. Los programas ejecutables se escriben en bibliotecas mediante el editor de enlaces y se cargan en el almacenamiento adquirido por el usuario mediante el Cargador (un programa de aplicación) o en el almacenamiento adquirido por el sistema mediante la Búsqueda de programas (un componente del supervisor del sistema operativo ).
El editor de enlaces organiza un módulo de carga en un formato especializado que consiste en alternar "registros de texto" y "registros de diccionario de control/reubicación". Esta organización permite cargar y reubicar completamente un módulo de carga con una operación de entrada/salida mediante la función de obtención de programas ( EXCP en sistemas anteriores a MVS o STARTIO en sistemas MVS/370 y posteriores).