not as

42
Capitulo 1 P4 El computador mainframe comenzó su crecimiento en la década de 1960. En ese tiempo, los mainframes eran los únicos tipos de computadoras, y sólo algunos comercios o negocios podían aprovecharlos. Del pequeño número vendidos en ese momento, cada mainframe era adaptado de forma tal que pudiera encajar en la principal (y muchas veces la única) aplicación de negocios del cliente. En 1964, sin embargo, las cosas cambiaron dramáticamente cuando los mainframes comenzaron a estandarizarse el hardware y software ofrecido a los clientes. Este cambio signado por el comienzo de la era de la computadora de propósito general. Con los mainframes estandarizados para poder ejecutar sus cargas de trabajo, los clientes podían, sucesivamente, codificar aplicaciones comerciales sin la necesidad de hardware o software especialisados. Además, los clientes fueron libres de migrar a nuevos y más poderosos procesadores sin preocuparse por problemas de compatibilidad con sus aplicaciones existentes. La primera ola de aplicaciones comerciales fueron en su mayoría escritas en COBOL, FORTRAN o PL/1, y muchos de estos viejos programas todavía están en uso. En las décadas posteriores a 1960, los mainframes tuvieron un constante crecimiento para alcanzar enormes capacidades de procesamiento. Hoy en día los mainframes tienen una habilidad de servicio sin igual para aquellos usuarios que manejan gran cantidad de datos (llegando a valores múltiplos de petabytes), y las necesidades de reconfiguración de recursos de hardware y software. Todo desde un único punto de control. P5 A pesar del predominio de los mainframes en el mundo de los negocios, estas máquinas son invisibles al público en general, la comunidad académica, y efectivamente a muchos experimentados profesionales de IT. En cambio, otras formas de computación atraen más la atención, por lo menos en términos de visibilidad y conciencia pública. Esto es algo que no debe sorprendernos, después de todo, quién de nosotros necesita acceso a un mainframe? Y, si fuera así, dónde podríamos encontrar uno?

Upload: ale-vazquez

Post on 26-Jun-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Not As

Capitulo 1

P4El computador mainframe comenzó su crecimiento en la década de 1960. En ese tiempo, los mainframes eran los únicos tipos de computadoras, y sólo algunos comercios o negocios podían aprovecharlos. Del pequeño número vendidos en ese momento, cada mainframe era adaptado de forma tal que pudiera encajar en la principal (y muchas veces la única) aplicación de negocios del cliente.

En 1964, sin embargo, las cosas cambiaron dramáticamente cuando los mainframes comenzaron a estandarizarse el hardware y software ofrecido a los clientes. Este cambio signado por el comienzo de la era de la computadora de propósito general. Con los mainframes estandarizados para poder ejecutar sus cargas de trabajo, los clientes podían, sucesivamente, codificar aplicaciones comerciales sin la necesidad de hardware o software especialisados. Además, los clientes fueron libres de migrar a nuevos y más poderosos procesadores sin preocuparse por problemas de compatibilidad con sus aplicaciones existentes. La primera ola de aplicaciones comerciales fueron en su mayoría escritas en COBOL, FORTRAN o PL/1, y muchos de estos viejos programas todavía están en uso.

En las décadas posteriores a 1960, los mainframes tuvieron un constante crecimiento para alcanzar enormes capacidades de procesamiento. Hoy en día los mainframes tienen una habilidad de servicio sin igual para aquellos usuarios que manejan gran cantidad de datos (llegando a valores múltiplos de petabytes), y las necesidades de reconfiguración de recursos de hardware y software. Todo desde un único punto de control.

P5A pesar del predominio de los mainframes en el mundo de los negocios, estas máquinas son invisibles al público en general, la comunidad académica, y efectivamente a muchos experimentados profesionales de IT. En cambio, otras formas de computación atraen más la atención, por lo menos en términos de visibilidad y conciencia pública. Esto es algo que no debe sorprendernos, después de todo, quién de nosotros necesita acceso a un mainframe? Y, si fuera así, dónde podríamos encontrar uno? En verdad, nosotros somos todos los usuarios de mainframe, nos demos cuenta o no.

P6Actualmente, los fabricantes de computadoras no siempre usan el término mainframe. En su lugar, muchos los llaman computador de uso comercial (grande o pequeño) o server, con el término mainframe se hace referencia al mayor sever en uso de la actualidad. IBM, por ejemplo, ahora referencia a sus mainframes como servidores zSeries. Usamos el término mainframe en este manual para referirse a computadoras que pueden dar servicio a docenas de aplicaciones y dispositivos de entrada/salida simultáneamente a miles de usuarios.

Page 2: Not As

La presencia de un mainframe a menudo implica una forma centralizada de computación, más que una forma distribuída. Teniendo los datos centralizados en un único repositorio en el mainframe, le ahorra al cliente tener que administrar actualizaciones a varias copias de sus datos de negocio, e incrementa la probabilidad de tener el dato actualizado.

P8Reliability (Confiabilidad) Implica el uso de componentes de hardware y software

de alta calidad, y componentes de hardware con posibilidad de auto-chequeo y auto-recuperación.

Availability (Disponibilidad) Es la habilidad del hardware para detectar y reemplazar automáticamente elementos de hardware que fallen, y sistemas de software para detectar, aislar y recuperar componentes que fallen.

Serviceability (Servicio) Mediante unidades de reemplazo bien definidas, tanto el hardware como el software se pueden actualizar o reparar sin cortes (non-disruptive), con poco o ningún impacto en el sistema.

Un sistema de computación seguro previene a los usuarios del acceso o modificación de cualquier objeto en el sistema, incluyendo datos de usuario, excepto para el caso de imponer reglas de autorización provistas por interfaces que vienen con el sistema. Los mainframes pueden proveer un sistema muy seguro para el proceso de un número muy grande de aplicaciones heterogéneas que deban acceder a datos críticos.

Por escalabilidad queremos referirnos a la habilidad del hardware, software o un sistema distribuido, para funcionar satisfactoriamente aún cambiando su volúmen o tamaño, por ejemplo,la habilidad de mantener los niveles de rendimiento cuando agregamos procesadores, memoria y almacenamiento.

La necesidad de mantener ejecutando aplicaciones por años impone una estricta compatibilidad del hardware y software del mainframe, el cual ha sido actualizado varias veces desde el primer sistema 360 instalado en 1964. Las aplicaciones deben seguir trabajando correctamente. De esta manera, muchos de los diseños de trabajo para nuevo hardware and software gira alrrededor de esta necesidad de compatibilidad.

Cada nueva generación de mainframe agregó mejoras en una o más de las siguientes áreas: Mayor cantidad y más rápidos procesadores Más memoria física y mayor capacidad de direccionamiento de memoria Capacidades dinámicas para actualizar hardware y software Más hardware con capacidades de chequeo y recuperación de errores Mejores dispositivos de entrada/salida (I/O), mayor cantidad de pasos (canales), y más rápidos, entre el procesador y los dispositivos de I/O Conexionado de I/O sofisticado, como adaptadores de LAN Incrementar la habilidad de dividir los recursos de una máquina en múltiples sistemas, lógicamente independientes y aislados, cada uno ejecutando su propio sistema operativo

P9Un trabajo (o job) batch se envía al computador, lee y procesa datos agrupados, y produce una salida. Un trabajo batch puede durar horas.

Page 3: Not As

Mientras el procesamiento batch es posible en sistema distribuídos, esto no es tan común como en mainframes debido a que los sistemas distribuídos carecen de: Suficiente memoria Capacidad de procesamiento disponible o ciclos Administración de recursos y programación de tareas (jobs) en sistemas interconectados (Sysplex)

Los mainframes atienden un vasto número de sistemas de procesamiento de transacciones en línea (online transaction processing u OLTP). Estas son usualmente aplicaciones críticas, que son las funciones principales de las que dependen los negocios. Algunas industrias que usan sistemas en línea: Bancos – ATMs, sistemas de cajeros para servicio al cliente Seguros – Sistemas de agencias para el proceso de reclamos y administración de pólizas Viajes y Transporte – Sistemas de reservas para las aerolíneas Manufactura – Control de inventario, programación de la producción Gobierno – Proceso de impuestos, emisión y administración de licencias

P10Considere los siguientes elementos en el trabajo en el procesamiento batch programado:A la noche, se procesan muchos jobs batch ejecutando programas y utilitarios. Estos jobs consolidan los resultados de las transacciones en línea (online) ejecutadas durante el día.2. Los jobs batch generan reportes de estadísticas de negocio.3. Se realizan respaldo de archivos críticos y bases de datos, antes y después de la ventana batch.4. Se envían reportes con las estadísticas de negocio a específicas áreas para su análisis durente el día siguiente.5. Se envían a las oficinas sucursales reportes con las excepciones.6. Mensualmente se generan reportes con los balances de cuentas, y se envían a los clientes bancarios.7. Se envían reportes con los resúmenes de procesos a las compañías de tarjetas de crédito asociadas.8. Las compañías de tarjetas de crédito envían reportes con las transacciones de las tarjetas de los clientes.9. En el departamento de control de producción, el área de operaciones monitorea los mensajes de la consola del sistema y la ejecución de los jobs.10. Jobs y transacciones leen o actualizan las bases de datos (la misma utilizada por transacciones en línea) y se graban varios archivos a cinta.

P11Transacciones en línea comunes usando un mainframe: Un cliente usa un ATM (cajero automático), que le muestra una interfaz amigable para varias funciones: retiro, consulta de saldos, depósito, transferencia o delante de dinero desde su cuenta.2. En otro lugar, en la misma red probada, un empleado bancario en una sucursal realiza operaciones como consultoría, aplicaciones de fondos, y órdenes de pago.3. En la oficina central del banco, analistas de negocio modifican transacciones para mejorar el desempeño. Otro personal utiliza sistemas en línea especializados para automatización de la oficina para realizar administración de relaciones con clientes, planificación de presupuesto, y control de stock.4. Todos los pedidos dirigidos al mainframe para procesamiento.

5. Programas que ejecutan en el mainframe realizan actualizaciones y consultas al sistema de

Page 4: Not As

base de datos (por ejemplo DB2, Oracle, etc).6.

P12

Administradores de Sistemas realizan más tareas diarias relacionadas con el mantenimiento de los datos de negocio críticos que residen en el mainframe, mientras que el Programador de Sistemas se enfoca en el mantenimiento del sistema en si mismo. Ejemplos de administradores de sistemas incluye a los adminstradores de base de datos y los de seguridad.

Mientras el conocimiento del programador de sistemas radica principalmente en las áreas de hardware y software, los administradores de sistemas tienen más experiencia con las aplicaciones.

El Diseñador de Aplicaciones y el Programador de Aplicación (o desarrollador) diseñan, arman, prueban y generan aplicaciones para los clientes y usuarios finales de la empresa. Basados en los requerimientos reunidos de los analistas y los usuarios finales, el diseñador crea unas especificaciones de diseño desde las cuales el programador genera una aplicación. El proceso incluye varias iteraciones, donde se modifican los códigos y se compilan, se crea la aplicación y se prueba.

El Operador de Sistema monitorea y controla la operación del mainframe, hardware y software. El operador arranca y para tareas del sistema, monitorea consolas del sistema para condiciones inusuales, y trabaja junto con los programadores de sistemas y el soporte de control de producción para asegurar la normal operación de los sistemas.

El Analista de Control de Producción es responsable de asegurar que la carga de trabajo batch ejecute completa, sin errores ni demoras.

P13

z/Virtual Machine (z/VM) tiene dos componentes básicos: Un control program (CP) y un sistema operativo para usuario-único (single-user) o CMS.

Como un programa de control, el z/VM es un hiper-supervisor ya que ejecuta otros sistemas operativos en la máquinas virtuales que crea. El programa de control crea artificialmente múltiples máquinas virtuales usando los recursos reales de hardware. El usuario tiene la sensación que tiene uso dedicado de los recursos reales. Los recursos reales compartidos incluye impresoras, discos y CPU. El programa de control asegura la seguridad de los datos y las aplicaciones dentro de la máquina virtual, llamado sistema guest (guest systems). El hardware real se puede compartir entre los “gests” o dedicarse a un único “guest” por razanes de performance. El segundo componente importante del z/VM es el CMS o Conversational Monitor System. Este componente del z/VM ejecuta en una máquina virtual y provee interfaz para un usuario final interactivo, e interfaz de programación de aplicaciones z/VM.

Comparado con el z/OS, el sistema operativo VSE provee una base menos compleja para

Page 5: Not As

procesamiento batch y de transacciones. La estructura de diseño y de administración del VSE es excelente para ejecutar cargas de trabajo productivas de múltiples jobs (ejecutando en paralelo), y procesos de transacciones tradicionales.

Varias distribuciones Linux se pueden ejecutar en un mainframe.

El sistema operativo z/Transaction Processing Facility (z/TPF) es un sistema de propósito especial utilizado por compañías que necesitan una cantidad muy alta de transacciones, como trajetas de crédito y sistemas de reservas de aerolíneas. z/TPF se conoció alguna vez con el nombre de Airline Control Program, fué y sigue siendo usado para las reservas de pasajes de avión, extendiéndose a otros sistemas de reservas de muy alto volúmen y grandes necesidades de procesamiento.

Capitulo 2

Capitulo 3

P4El sistema operativo que discutiremos en este curso es el z/OS, el sistema operativo mainframe más usado. El z/OS está diseñado para ofrecer un ambiente estable, seguro y de continua disponibilidad para aplicaciones ejecutando en el mainframe.

Para comprender cómo y porqué las funciones del z/OS lo hacen, en importante entender el ambiente de esas funciones, esas funciones que hacen al z/OS único, reflejan los ambientes de computación que maneja.

El z/OS realiza su trabajo dividiéndolo en piezas, y dando porciones del job a los distintos componentes del sistema y subsistemas que trabajan en forma interdependiente. En cualquier momento, un componente u otro toma el control del procesador, realiza su función, y luego pasa el control a otro programa de usuario o a otro componente.

P5El hardware del mainframe consiste de procesadores y múltiples dispositivos periféricos como discos (llamados dispositivos de almacenamiento de acceso directo, o direct access storage devices o DASD ), unidades de cintas magnéticas (TAPE ), y varios tipos de consolas de usuario. Se usan cintas y discos para funciones del sistema y programas de usuario ejecutados por el z/OS.

Aquí no se muestran otros dispositivos, por ejemplo unidades de control de dispositivos, como el director, que conecta el mainframe a las unidades de cintas, discos y consolas.

P6Un grupo de instrucciones relacionadas se la denomina una rutina o módulo. Un conjunto de módulos que realizan algo en particular se llama componente del sistema.

Una secuencia de instrucciones que realizan funciones del sistema de uso frecuente Se pueden invocar mediante una macros. Existen macros de z/OS para funciones tales como abrir y cerrar archivos de datos, carga de programas en memoria, y envío de mensajes al operador.

Page 6: Not As

La “program status word (PSW)” es un área de datos de 64 bits en el procesador, que junto con registros de control, registros de tiempos y prefijos, proveen datos necesarios para el hardware y software. Además, la PSW incluye la dirección de la siguiente intrucción del programa e información de control sobre el programa en ejecución. Cada procesador tiene una sóla PSW corriente. De esta manera sólo una tarea se puede ejecutar en un procesador por vez.

El z/OS es capaz de multiprogramación (multiprogramming) o ejecutar varios programas concurrentemente. En multiprogramación, cuando una tarea no usa el procesador, el sistema la suspende o interrumpe (interrupt), la tarea libera el procesador para que trabaje otra tarea. El z/OS también puede realizar multiprocesamiento (multiprocessing), que es la operación simultánea de dos o más procesadores que comparten varios recursos de hardware, como memoria y discos.

Como las instrucciones ejecutan el trabajo del computador del sistema, mantiene información sobre este trabajo en áreas de almacenamiento conocidas como control blocks. Hay tres tipos de bloques de control en z/OS: Relacionados al sistema Reñacionados a recursos Relacionados a tareas

Cada bloque de control del sistema representa un sistema z/OS y contiene información detallada del sistema, como por ejemplo cuántos procesadores están en uso. Cada bloque de control de recursos representa por ejemplo un procesador o disco. Cada bloque de control de tarea representa una unidad de trabajo.

Conceptualmente, los mainframes y todas las otras computadoras tienen dos tipos de almacenamiento físico o memoria:El almacenamiento físico localizado en el propio procesador mainframe. Llamado memoria del procesador o real El almacenamiento físico externo al mainframe, incluyendo al almacenamiento en discos y cintas, llamado auxiliar.

P7Memoria Virtual significa que cada programa en ejecución puede asumir que tiene acceso a todo la memoria real definida por el esquema de direccionamiento dada por la arquitectura. El único límite es el número de bits en la dirección de memoria.

Para permitir a cada usuario actuar de esta manera, suficiente memoria real existe en el computador, pero el z/OS sólo mantiene porciones activas de cada programa en memoria real. El z/OS mantiene el resto del código y datos en archivos especiales en almacenamiento (o memoria) auxiliary, que usualmente consiste en un número de discos de alta velocidad o acceso (DASDs).

Un address space es un área de direcciones virtuales disponibles para la ejecución de instrucciones y almacenar datos. El rango de direcciones virtuales en un address space comienza en cero y puede extenderse a la dirección más alta permitida por la arquitectura del sistema operativo.

El z/OS provee a cada usuario con un único address space y mantiene la diferencia entre los programas y datos pertenecientes a cada address space.

P8

Page 7: Not As

Con el release de los mainframes zSeries en el 2000, IBM extendió el direccionamiento de la arquitectura a 64 bits. Con estos 64 bits de direccionamiento, el tamaño potencial de un address space de z/OS expande tanto su tamaño que necesitamos nuevos términos para describirlo. En cada address space, llamado address space de 64 bits, es de un tamaño de 16 axabytes (EB), que es un poco más que mil millones de gigabytes. El nuevo address space tiene lógicamente 264 direcciones. Esto es 8 mil millones de veces el tamaño de un address space de 2 GB. El número es 16 seguido de 18 ceros: 16,000,000,000,000,000,000 bytes, o 16 EB.

Decimos que el tamaño potencial es 16 EB debido a que el z/OS, por default, continúa creando address spaces de 2 GB. El address space execede este límite sólo si el programa ejecutando en él asigna (allocate) por arriba de la dirección de 2 GB. Si es así, el sistema operativo z/OS incrementa la memoria disponible al usuario de 2 GB a 16 EB.

La dirección de 16 MB proviene del punto de divición de dos arquitecturas (direccionamiento de 24 bits con MVS/370 y la de 31 bits introducida en el sistema operativo MVS Extended Architecture o MVS/XA), y se la llama usualmente línea (line). El área que separa la memoria virtual por debajo de la dirección de 2 GB del área privada del usuario se la llama barrera (bar).

P9Para que un procesador ejecute una instrucción de programa, la instrucción y el dato referenciado debe estar en memoria real. La convención de los primeros sistemas operativos fue la de tener todo el programa residente en memoria real cuando sus instrucciones se ejecutan. Sin embargo, no es necesario que todo el programa esté en memoria real cuando se ejecutan instrucciones. Por el contrario, tener piezas del programa en memoria real sólo cuando el procesador esté listo para ejecutarlas, moviéndolas a memoria auxiliar cuando no sean necesarias, de esta manera un sistema operativo podría ejecutar más y mayores programas concurrentemente.

El sistema operativo puede dividir un programa en piezas asignadas cada una a un único address space. Este arreglo permite que al sistema operativo mantener la pista de esas piezas. En el z/OS las piezas de programas se llaman páginas (pages)

El z/OS usa tablas para determinar si una página está en memoria real o auxiliar, y dónde.Para encontrar una página de un programa, el z/OS chequea la tabla por la dirección virtual de la página, en lugar de buscar por todos los discos físicos. El z/OS entonces transfiere la página a memoria real o enviándola a memoria auxiliar, según sea el caso. El movimiento de páginas entre slots de memoria auxiliar y frames de memoria real se llama paginado (paging). Paging es clave para entender el uso de la memoria virtual en z/OS.

Dynamic address translation, o DAT, es el proceso de traducción de una dirección virtual durante una referencia de memoria a su correspondiente dirección real.

El almacenamiento físico está dividido en áreas, del mismo tamaño y accesible por una única dirección. En memoria real se llama frames, en auxiliar slots.

P10

Page 8: Not As

Una dirección es un identificador de una necesaria parte de información, pero no una descripción de dónde está en memoria real. Esto permite que el tamaño de un address space (esto es, todas las direcciones disponibles de un programa) exceda la cantidad de memoria real disponible.

Todas las referencias de memoria real se hacen en términos de direcciones de memoria virtual.

Se usa un mecanismo de hardware para mapear la dirección de memoria virtual a una ubicación de memoria real. Como se muestra, la dirección virtual 10254000 puede existir más de una vez, debido a que cada dirección virtual mapea a una dirección diferente en memoria real.

Cuando una dada dirección no está en memoria real, una interrupción de hardware se le indica al z/OS y el

P12Aquí se muestra al z/OS realizando el paginado de un programa ejecutando en memoria virtual. Los boxes con letras representan partes del programa. A simple vista, las partes A, E, F y H del programa están activas y ejecutando en frames de memoria real, mientras que las partes B, C, D y G están inactivas y se movieron a slots de memoria auxiliar. Todas las partes del programa,sin embargo, residen en memoria virtual y tienen direcciones de memoria virtual

P14“Working set” es el número de páginas activas de una aplicación. Las páginas inactivas se les hace “page out”, dejando las páginas activas en memoria.Cuando una aplicación entera se mueve a memoria auxiliar se lo llama “swapped out”. Esto quiere decir que todas las páginas (incluyendo el working set) se mueven a un data set de swap separado. Cuando los recursos se liberan, la aplicación es vuelta a memoria.

P17La dirección de 16 MB proviene del punto de división entre las dos arquitecturas previas (direccionamiento de 24 bits introducida con el MVS/370 y el direccionamiento de 31 bits del sistema MVS Extended Architecture o MVS/XA), y a veces llamado ‘la línea’. El área que separa al almacenamiento virtual por debajo de la dirección de 2 GB del área del usuario se lo denomina ‘la barra’.

Con las versiones (o releases) de mainframe zSeries en el 2000, IBM extendió más aún el direccionamiento de la arquitectura de 64 bits. Con 64 bits de direccionamiento, el tamaño potencial de un address space se expandió a un valor tan vasto que necesitamos nuevos términos para describirlo. Cada address space, llamado de 64 bits, tiene un tamaño de 16 exabytes (EB); un exabyte es ligeramente más que un mil millones de gigabytes. El nuevo address space tiene 264 direcciones lógicas. Esto es 8 mil millones de veces el tamaño del anterior address space de 2 GB. El número es 16 seguido de 18 ceros: 16,000,000,000,000,000,000 bytes, o 16 EB.

P190 to 231 La distribución es la misma.231 - 232 De 2 GB a 4 GB se considera la barrera. Por debajo de la barrera se puede

Page 9: Not As

direccionar con una dirección de 31 bits. Por arriba de la barrera requiereuna dirección de 64 bits.

232 - 241 El área baja no compartida (área privada de usuario) comienza en los 4 GBy se extiende a 241 .

241 - 250 Area compartida (para memoria compartida) comeinza en 241 y se extiendea 250 o mayor, si es requerido.

250 - 264 Area alta no compartida (área privada del usuario) comienza en 250 odonde el área compartida termine y llega a 264 .

P21

En un sistema operativo, la administración del almacenamiento involucra la asignación (allocation), ubicación , monitoreo, migración, respaldo (backup), recupero (restore) y el borrado de archivos. Estas actividades se pueden hacer manualmente o mediante el uso de procesos automatizados. Cuando se automatiza, el sistema determina la ubicación del objeto y automáticamente administra el respaldo, movimiento, espacio y seguridad. Un sistema z/OS productivo típico incluye ambos procesos.

Dependiendo como se configuran el z/OS y sus dispositivos de almacenamiento, un usuario o programa puede controlar directamente muchos aspectos del uso de almacenamiento, y en los primeros tiempos de los sistemas operativos, los usuarios debían hacerlo. Ahora se definen especificaciones de la instalación para datos y administración de recursos, y se agregaron productos de administración para automatizar el uso del almacenamiento, el principal es el DFSMS, ver Capítulo 4.

P24El uso de address spaces en z/OS tiene varias ventajas: Aislación de áreas privadas en diferentes address spaces provee seguridad de sistema, manteniendo en cada address space un área común accesible por todos los address spaces. Asegura la integridad de datos independientemente de la cantidad de usuarios. El z/OS previene a usuarios el acceso o cambio de cualquier objeto del sistema, incluyendo datos de usuario, excepto aquellos autorizados mediante reglas manejadas por interfaces del sistema. El sistema está diseñado para manejar un gran número de jobs batch concurrentemente, sin necesitar por parte del usuario de administrar en forma externa los problemas del balanceo de la carga o de integridad.El diseño de seguridad se extiende a funciones del sistema como así también a un simple archivo. Permite múltiples subsistemas de comunicación al mismo tiempo, permitiendo la inusual flexibilidad en ejecutar diferentes aplicaciones orientadas a comunicaciones (mezcla de prueba, producción y versiones de vuelta a tras) al mismo tiempo. Por ejemplo, múltiples stacks TCP/IP operativas al mismo tiempo, cada una con diferente direcciones IP y dando servicio a distintas aplicaciones.Provee recupero extensivo, haciendo que los reinicios no planeados del sistema sean muy poco frecuentes. Interfaces del sistema permiten programas aplicativos con sus propios niveles de recupero, normalmente usado por mayor cantidad de aplicaciones.Puede manejar cargas de trabajo mixtas, con balance automático de recursos para asegurar los requerimientos de producción establecidos por el administrador del sistema.La interfaz del operador es una función crítica del z/OS. Provee información de estado (status),

Page 10: Not As

mensajes ante situaciones de excepción, control del flujo de jobs, control de periféricos, y permite al operador manejar situaciones de recupero inusuales.

P25No trataremos de listar todos los programas producto de z/OS (existen cientos), de los más comúnes incluye:Un sistema de seguridadz/OS provee una estructura a los clientes para agregar seguridad mediante el un producto de administración de seguridadadd (el productto de IBM es el Resource Access Control Facility o RACF®). Hay otros productos no IBM disponibles. Compiladoresz/OS incluye assembler y compilador C. Otros sería el COBOL, ofrecido también por separado.Facilidades de proceso de transacciones, IBM ofrece varios, incluyendo:– Customer Information Control System (CICS)– Information Management System (IMS)– WebSphere Un programa de clasificación (Sort)Una gran variedad de programas utilitariosPor ejemplo, el System Display and Search Facility (SDSF) que hace más fácil el uso del TSO.P26Un producto middleware suele incluir un “application programming interface” (API).

Algunos casos de middleware API’s en mainframe incluye:El conjunto de productos WebSphere, que provee un API completo que es portable a través de múltiples sistema operativos. WebSphere MQ provee APIs cross-platform y mensajería inter-platform.Producto de administración de base de datos DB2, que provee un API (en lenguaje SQL) usado con muchas aplicaciones y lenguajes diferentes, otro sería Oracle.

P28Un sistema operativo es un conjunto de programas que manejan el trabajo interno de un computador.

El uso del sistema operativo z/OS de la multiprogramación y multiprocesamiento, junto con la habilidad de accesar y administrar cantidades enormes de operaciones de memoria y I/O, lo hace ideal para cargas de trabajo en mainframe.

El concepto de memoria virtual es algo central al z/OS. Es una ilusión creada por la arquitectura, donde el sistema cree tener más memoria de la que realmente tiene. La memoria virtual se crea mediante el uso de tablas para mapear las páginas virtuales a páginas reales o slots de memoria auxiliar. Sólo las porciones necesarias de un programa se cargan en memoria real. El z/OS mantiene las partes del address space en memoria auxiliar.

Cada usuario de z/OS tiene un address space conteniendo los mismos rangos de direcciones de memoria. El uso de address spaces en z/OS permite aislar áreas privadas en diferentes address spaces para seguridad del sistema, permitiendo compartir programas y datos entre address spaces, mediante

Page 11: Not As

un área común accesible por cada address space.

Programas ejecutando en z/OS y mainframes zSeries pueden ejecutar usando direccionamiento de 24, 31 o 64 bits (y pueden cambiar entre ellos de ser necesario). Y pueden usar una mezcla de instrucciones con operandos de distintos bits.

Capitulo 4

P1Habíamos mencionado que el z/OS es ideal para procesamiento de jobs batch – carga de trabajo que ejecuta en ‘ background’ con mínima interacción humana si fuera necesaria. Sin embargo, z/OS es tanto un sistema operativo interactivo como para procesos batch. Por interactivo significa que usuarios finales (a veces decenas de miles de usuarios simultáneos, en el caso de z/OS) usando el sistema en tiempo real mediante la interacción directa, tales como comandos e interfaces de menúes.Todo aquel que trabaje con z/OS necesita conocer sus interfaces para usuarios finales. Principalmente mediante el uso del TSO/E y su interfaz mediante el uso de menúes, llamada ISPF. Estos programas le permiten conectarse al sistema, ejecutar programas y trabajar con archivos de datos. Además, necesita conocer las facilidades interactivas de la implementación en z/OS de interfaces UNIX, conocidas en conjunto como z/OS UNIX System Services, o “z/OS UNIX”.

P2z/OS provee un número de facilidades que permite a los usuarios interactuar directamente con el sistema operativo. Este capítulo provee una visión general de cada facilidad. Habrá ejercicios prácticos para ayudar a ldesarrollar su comprensión de estas importantes facilidades.

P33270 refiere a un dispositivo terminal o consola, pero a veces este ‘display’ se emula mediante el programa emulador 3270. En un archivo z/OS (data set), cada línea de texto se conoce como registro (record) . TSO es lo que hace interactivo al sistema operativo z/OS (no solo orientado al batch).

P4z/OS provee un número de facilidades que permite a los usuarios interactuar directamente con el sistema. En este módulo veremos brevemente cada una de estas facilidades. Al final trabajaremos con algunos simples ejercicios para que el estudiante tenga alguna experiencia práctica con el z/OS

P5Muchos usuarios de z/OS se refieren al TSO/E simplemente como “TSO,” y es como a veces aparecerá en este capítulo. También podremos usar “usuario o user” al referirse a un “usuario final o end user.”

Qué es TSO? Es lo que le permite a los usuarios crear una sesión interactiva con el sistema z/OS. TSO provee una única capacidad de conexión (logon) del usuario, y tener una interfaz de comandos con el z/OS.

Page 12: Not As

La mayoría de los usuarios de TSO usan el ISPF. Es una colección de menúes y paneles que ofrecen un amplio rango de funciones para asistir a los usuarios para trabajar con archivos del sistema. Dentro de los usuarios de ISPF incluye a los programadores de sistemas y aplicaciones, administradores, y otros que acceden al z/OS. Independientemente de la experiencia de los usuarios, TSO y ISPF hace más fácil el trabajo de interactuar con el sistema z/OS.

P6En un sistema z/OS, a cada usuario se le asigna una identificación (userid) y clave (password), autorizado para conectarse (logon) a TSO. Requiere una terminal 3270 o, más común, una emulación TN3270 en la PC. El logon tiene el mismo propósito que un panel de logon de Windows.

P7El procedimiento de ‘logon’ dispone (allocate) los data sets que necesita el usuario, los recursos que puede acceder (via RACF, programa de seguridad en z/OS), el tamaño de memoria (region) para su address space.

Se usa la opción ‘reconnect’ si se perdió la conexión, en ese caso ingresar una S.

Note las teclas clave ( PF Keys). Su uso simplifica mucho la tarea del usuario, asignando distintos valores a cada una de la PF dependiendo de las necesidades. Más adelante veremos las definiciones usadas para este curso.

P8Muchas instalaciones prefieren tener sesiones de usuarios de TSO que automáticamente usen la interfaz ISPF después del ‘logon’. Discutiremos el conjunto disponible de comandos básicos de TSO, independientes de otros programas complementarios, como el ISPF.

P11El ‘READY prompt’ acepta comandos de línea de TSO como por ejemplo HELP, RENAME, ALLOCATE y CALL.

P14Con TSO nativo, se puede agrupar un conjunto de comandos en un archivo, llamado un ‘command list o CLIST’, y ejecutarlo como si fuera un solo comando. Cuando se invoque un CLIST, éste emite los comandos TSO/E en secuencia. Se utilizan CLISTs para realizar tareas rutinarias, hacen más eficiente el trabajo del usuario con el TSO.

Los usuarios de TSO crean CLISTs con el lenguaje de comandos CLIST. Otro lenguaje de comandos usado con TSO se llama Restructured Extended Executor o REXX .

P16Otro lenguaje de comandos usado con TSO se llama Restructured Extended Executor o REXX . Ambos, CLIST y REXX ofrecen procesamiento tipo shell script. Estos son lenguajes interpretativos , en oposición a los lenguajes compilados (aunque los REXX también se pueden compilar).

Algunos usuarios de TSO escriben funciones directamente como CLIST o programas REXX, pero

Page 13: Not As

es más común verlos implementados como funciones ISPF, o por otros programas producto. La programación CLIST es única para z/OS, mientras que REXX se utiliza en otras plataformas.

P19Después de conectarse a TSO (logon), típicamente los usuarios acceden al menú ISPF. En efecto, muchos usan exclusivamente ISPF para realizar sus tareas en z/OS. ISPF es una aplicación mediante paneles que se navegan mediante el teclado.

P21Como se puede ver, ISPF tiene una estructura tipo árbol.

El menú primario de opciones está en la cima del árbol. Este panel lo puede modificar el system programmer con opciones adicionales. De esta manera, puede variar en características y contenido de instalación a instalación.

P21Opción cero (0) permite modificar las definiciones o seteos del ISPF. Por ejemplo, la línea de ingreso de comandos puede aparecer al final de la pantalla de la sesión de ISPF, mientras que el instructor puede usarlo al tope. Esta es una preferencia personal, usualmense se ubica el tope del panel. Si quiere que aparezca al tope, haga lo siguiente:Vaya al menú de la opción primaria de ISPF.Seleccione opción 0 para ver menú Settings.En la lista Options, remueva la barra “/” en la línea que dice “Command line at bottom”.

P22Opción cero (0) permite modificar las definiciones o seteos del ISPF. Por ejemplo, la línea de ingreso de comandos puede aparecer al final de la pantalla de la sesión de ISPF, mientras que el instructor puede usarlo al tope. Esta es una preferencia personal, usualmense se ubica el tope del panel. Si quiere que aparezca al tope, haga lo siguiente:Vaya al menú de la opción primaria de ISPF.Seleccione opción 0 para ver menú Settings.En la lista Options, remueva la barra “/” en la línea que dice “Command line at bottom”.

P24Muchos de los paneles en los ejemplos usados en este curso muestran los valores de las teclas de función (PF) al final del panel. Es normal que cada instalación utilice los valores que más se adecúan a sus necesidades.

Aquí se muestran algunos de los valores de PF más usados, con su correspondiente clave.P34Desde el ISPF se puede ver el contenido de un data set (v para ver o view) o editarlo (e o edit).

Cuando se edita un data set, se usan comandos de línea para trabajar con el contenido del archivo, como se ve aquí.Por ejemplo: Para editar el contenido del data set, mover el cursor al área del registro a ser modificado y escriba sobre el texto existente.Para encontrar o cambiar texto, debe ingresar el comando en la línea de comandos del editor.

Page 14: Not As

Para agregar (insert), copiar (copy), borrar (delete), o mover (move) texto, ingrese estos comandos directamente en la línea de números en el lugar donde la acción deba ocurrir.

Para confirmar sus cambios, use PF3 o save. Para salir de la edición del data set sin guardar los cambios, entre Cancel en la línea de comandos.

P35Desde el ISPF se puede ver el contenido de un data set (v para ver o view) o editarlo (e o edit).

Cuando se edita un data set, se usan comandos de línea para trabajar con el contenido del archivo, como se ve aquí.Por ejemplo: Para editar el contenido del data set, mover el cursor al área del registro a ser modificado y escriba sobre el texto existente.Para encontrar o cambiar texto, debe ingresar el comando en la línea de comandos del editor.Para agregar (insert), copiar (copy), borrar (delete), o mover (move) texto, ingrese estos comandos directamente en la línea de números en el lugar donde la acción deba ocurrir.

Para confirmar sus cambios, use PF3 o save. Para salir de la edición del data set sin guardar los cambios, entre Cancel en la línea de comandos.

P36Aquí se muestra el contenido de un data set abierto en modo edición. El hecho de ingresar I5 es para insertar 5 líneas en blanco después del primer registro.

Note la línea de números, el área de texto y la línea de comandos. Los comandos de línea se escriben en la línea de números, y hay tres formas distintas para modificar en contenido de un data set. Los números de línea se incrementan de a 10 con el editor ISPF, y el usuario puede insertar nueve líneas más entre cada una de las actuales, sin tener que renumerar via programa.

P47

El shell de z/OS UNIX está basado en el shell UNIX System V, y tiene algunas características del shell UNIX Korn.

El POSIX standard distingue entre un comando, que lo direcciona al shell para realizar una tarea específica, y un utilitario, que es el nombre del programa por dentro del shell. Para el usuario no hay diferencia entre un comando y un utilitario.

El shell z/OS UNIX provee el ambiente que tiene la mayoría de las funciones y capacidades. Se pueden combinar comandos Shell fácilmente en pipes o shell scripts, y de este modo convierte a nuevas funciones más poderosas. Una secuencia de comandos shell se puede almacenar en un archivo de texto que puede ser ejecutado. A esto se lo denomina una shell script. El shell soporta varios de los features de un lenguaje tradicional de programación.

P52OMVS para comandos de línea, ISHELL para menúes tipo ISPF. Los comandos TSO usados con

Page 15: Not As

z/OS UNIX son: ISHELL y OMVS.

El comando ISHELL invoca el shell ISPF. ISHELL es un buen punto de partida para usuarios familiarizados con TSO e ISPF que quieren o necesitan usar en z/OS UNIX. ISHELL provee paneles donde los usuarios pueden trabajar con el hierarchical file system. También hay paneles para montaye (mounting) y desmontaje (unmounting) de file systems y realizar alguna administración de z/OS UNIX.

El comando OMVS se usa para invocar el shell z/OS UNIX.

P56Los comandos Shell suelen tener opciones (también llamados flags) que se pueden especificar, y que usualmente tienen un argumento, como el nombre del archivo o el directorio. El formato para especificar el comando comienza con un nombre de comando, luego la/s opcion/es, y finalmente el argumento, si lo hubiera.

Por ejemplo, en el siguiente comando: ls -al /u/rogers

ls es el nombre del comando, y -al son las opciones.

Este comando lista los archivos y directorios del usuario. Si el ‘pathname’ es un archivo, ls muestra información en el archivo de acuerdo a las opciones requeridas. Si es un directorio, ls muestra información en los archivos y subdirectorios. Se puede pedir información de un directorio en sí mismo usando la opción -d.

Si no se especifica ninguna opción, ls muestra sólo los nombres de los archivos. Cuando ls envía la salida a un ‘pipe’ o archivo, graba un nombre por línea; cuando envía la salida a la terminal, usa el formato -C (multi-column).

P61Hay algunas diferencias entre el soporte de terminales asincrónicas (logon directo al shell) y el soporte de una terminal 3270 (comando OMVS):

No puede hacer switch a TSO/E. Sin embargo, puede usar el comando TSO SHELL para ejecutar un comando de TSO/E desde su sesión shell.No puede usar el editor de ISPF (esto incluye el comando oedit, que invoca al editor ISPF).

Capitulo 5

P9Para usar un data set, primero hay que alocarlo (o establecer una conexión con este), luego acceder a los datos usandomacros para el método de acceso que se haya elegido.

La allocation de un data set significa alguna o ambas de las siguientes definiciones: Crear el espacio para un nuevo data set en un disco. Establecer una conexión lógica entre el job step y algún data set .

P10

Page 16: Not As

Podemos especificar el espacio requerido en bloques (blocks), registros (records), pistas (tracks) , o cilindros (cylinders).Cuando creamos un data set en DASD, especificamos una cantidad de espacio necesario en forma explicita (usando el parámetro SPACE), o implícitamente (por el uso de la información disponible en la Data Class).

El sistema puede usar un data class si el SMS esta activo, incluso si los data set no están bajo SMS.Para el sistema de manejo de data sets, el sistema selecciona los volúmenes, ahorrándonos de tener que especificar el volumen cuando alocamos un data set.

Si especificamos la cantidad de espacio por el promedio de longitud de registro, la alocación de espacio es independiente del tipo de dispositivo. La independencia de dispositivos es especialmente importante para el sistema de manejo de almacenamiento.

Un registro lógico (LRECL) es una unidad de información sobre una unidad de procesamiento (porejemplo, un cliente, una cuenta, una nómina de pago de empleados, etc). Esta es la mínima cantidad de datos a ser procesada, y esto abarca los campos que contengan información reconocida por el procesamiento de la aplicación.

Cuando los registros lógicos esta localizados en DASD, cintas, o dispositivos ópticos, estos están agrupados en registros físicos llamados bloque (BLKSIZE). Cada bloque de datos sobre un volumen DASD tiene una localización diferente y una dirección (address), así permite encontrar un bloque sin hacer una búsqueda extensa. Los registros lógicos se pueden almacenar y recuperar directamente o secuencialmente.

La longitud máxima de un registro lógico (logical record - LRECL) está limitada por el tamaño físico del dispositivo usado.

El espacio para datos en disco es asignado en extents. Un extent es un numero contiguo de pistas (tracks) o cilindros (cylinders). Los data sets se pueden incrementar usando las extensiones. Los tipos de data sets mas viejos pueden tener hasta 16 extensiones por volumen. Los tipos de data sets más nuevos pueden tener de 128 a 255 extensiones.

En z/OS, la organización para un data sets basado en extensiones se usa para maximizar el rendimiento del disco. Las lectura y escrituras de pistas (tracks) contiguas es más rápido que leer o escribir pistas dispersas sobre el disco, como podría ser cuando las pistas son asignadas en forma dinámica.

P11El data set z/OS tradicional está orientado al registro. Usualmente no hay archivos grupos de bytes como encontramos en sistemas PC y UNIX. Estos no se consideran data sets tradicionales.

En z/OS, no hay caracteres para una nueva línea (NL) o que denoten el fin de un registro (CR+LF). Los registros son de longitud fija o variable en un dado data set.

Page 17: Not As

Cuando editamos con ISPF cada línea es un registro.

Los data sets tradicionales de z/OS son uno de cinco formatos posibles, que se muestran en la imágen. Haremos énfasis en las diferencias entre un bloque y un registro. En esta discusión, un bloque es lo que grabamos en disco, mientras que un registro es una entidad lógica del programa en ejecución.

F – Fijo Esto implica que un bloque físico en disco es un registro lógico, y todos los bloques/registros tienen el mismo tamaño. Este formato rara vez se usa.

FB – Fijo Bloqueado Quiere decir que varios registros lógicos se combinan en un bloque físico. Esto provee uso eficiente del espacio y de la operación. Se usa para registros de longitud fija.

V – Variable Este formato tiene un registro lógico como un bloque físico. La aplicación debe insertar un campo de cuatro dígitos al comienzo del registro, Record DescriptorWord (RDW). El RDW contiene la longitud del registro más los cuatro bytes para el propio RDW: Se usa poco.

VB – Variable Bloqueado Aquí se ubican varios registros lógicos de longitud variable (cada uno con un RDW) en un bloque físico. El software debe colocar un campo adicional, al comienzo del bloque, Block Descriptor Word (BDW), con la longitud total del bloque.

U – Indefinido (Undefined) Consiste de registros/bloques físicos de longitud variable sin estructura predeterminada. Aunque este formato puede aparecer atractivo para varias aplicaciones inusuales, normalmente sólo lo usan módulos ejecutables.

P12La más simple estructura en un sistema z/OS es un data set secuencial. Consiste de uno o más registros que se almacenan en orden físico y procesados en secuencia. Nuevos registros se agregan al final del data set.

Un ejemplo de un data set secuencial podría ser un data set de salida para una impresora de línea o un lote de tarjetas perforadas.

Un usuario z/OS define data sets secuenciales a través de job control language (JCL) con una organización de data set PS (DSORG=PS), que se colocan en secuencia física. En otras palabras, los registros en el data set se ordenan uno después del otro.

Un data set particionado agrega un nivel de organización a la simple estructura de data sets secuenciales. Un PDS es una colección de data sets secuenciales, llamados miembros. Cada miembro es como un data set secuencial y tiene un nombre simple, que puede ser de hasta ocho caracteres de longitud.

Un PDS también contiene un directorio. El directorio contiene una entrada para cada miembro en el PDS con una referencia (o apuntador) al miembro. Los nombres de los miembros están en el directorio en orden alfabético, aunque aparezcan en cualquier orden dentro de la librería. El directorio permite al sistema recuperar un miembro determinado en el data set.

Un data set particionado usualmente se lo llama librería.

Un PDSE es un data set particionado extendido. Consiste de un directorio y cero o más miembros,

Page 18: Not As

como un PDS. Y como éstos, se pueden crear mediante JCL, TSO/E o ISPF. PDSE se almacenan sólo en discos, no en cintas.

P14Un data set PDS ofrece una forma simple y eficiente para organizar grupos relacionados de archivos secuenciales. Un PDS tiene las siguientes ventajas para los usuarios z/OS:Agrupación de data sets relacionados bajo un único nombre hace una administración de datos más fácil en z/OS. Archivos almacenados como miembros de un PDS pueden ser procesados ya sea en forma individual o todos los miembros como una sola unidad.Debido a que el espacio asignado para data sets en z/OS siempre empiezan en límites de pistas (tracks) en disco, usando un PDS es la forma de almacenar más de un pequeño data set en una pista. Esto ahorra espacio en disco si se tienen muchos data sets chicos. Una pista en un dispositivo de disco tipo 3390 tiene un tamaño de 56.6664 bytes.Miembros de un PDS se pueden usar como data sets secuenciales, y pueden añadirse (o concatenarse) a data sets secuenciales.Múltiples data sets PDS se pueden concatenar para formar grandes librerías.Los PDS son fáciles de crear con JCL o ISPF, y fáciles de manipular con utilitarios de ISPF o comandos de TSO.

Sin embargo, algunos aspectos del diseño del PDS afectan la performance y el uso eficiente del disco, como los siguientes:Desperdicio de Espacio. Cuando un miembro en un PDS se reemplaza, la nueva área de datos se graba a una nueva sección dentro del espacio alocado al PDS. Cuando un miembro es borrado, su apuntador también se borra, no hay mecanismo para reusar su espacio.Tamaño Limitado de Directorio. El tamaño del directorio del PDS se establece al momento de alocación. A medida que el data set crece, va adquiriendo más espacio en unidades especificadas como espacio secundario. Estas unidades extra se llaman extensiones secundarias (secondary extents).

Sin embargo, sólo se puede almacenar un número fijo de entradas de miembros en el directorio del PDS debido a que su tamaño es fijo, cuando se aloca en data set. Si necesita agregar más entradas que las pueden caber, se debe alocar un nuevo PDS con más bloques de directorio y copiar los miembros desde el viejo data set al nuevo.

Búsquedas prolongadas de directorio. Las entradas se buscan en forma secuencial en orden alfabético. Si el directorio es muy grande y los miembros pequeños, esto podría hacer que la búsqueda en el directorio más larga que la recuperación del miembro cuando se lo encuentra.

En muchas formas, un PDSE es similar a un PDS. Cada nombre de miembro puede ser de ocho bytes de longitud. Sin embargo, los PDSE tienen un formato interno diferente, que les da un incremento en su uso. Puede usar un PDSE en lugar de un PDS para grabar datos o programas en formato de objetos (program object). Éste es similar a un módulo de carga en un PDS. Un módulo de carga no puede residir en un PDSE. Un PDSE no puede contener una mezcla de objetos y datos.

La principal ventaja del uso de un PDSE por sobre un PDS es que el PDSE automáticamente reusa el espacio entre data set sin la necesidad de reorganizarlo periódicamente.

Además, el tamaño del directorio de un PDSE es flexible y se expande para almacenar más miembros. El sistema reclama el espacio automáticamente cuando un miembro se borra o reemplaza, y devuelve ese espacio a un pool disponible para alocación de otros miembros del mismo PDSE. Esto se hace sin hacer ningún compress de IEBCOPY.

Page 19: Not As

P15

Un data set es una colección de datos relacionados lógicamente; puede tratarse de un programa fuente, una librería de programas o un archivo de datos usado por un programa en ejecución. Los registros de datos son la unidad básica de información usada por el programa en ejecución.

Los data sets en z/OS son alocados en extensiones contiguas en disco para mejorar la performance. Los usuarios deben definir la cantidad de espacio a ser alocado para un data set (antes de usarlo). Un data set puede ocupar más de una extensión y se puede extender automáticamente.

Casi todos los procesos de datos en z/OS son ‘orientado a registro’. No hay archivos de grupo de datos presentes en el procesamiento tradicional, aunque hay una parte estándar del z/OS UNIX. Los registros de z/OS (y los bloques físicos) tienen uno de varios formatos específicos. La mayoría de los data sets tienen atributos DCB que incluyen el formato delregistro (RECFM: F, FB, V, VB o U), el tamaño máximo del registro lógico (LRECL) y el tamaño máximo de bloque (BLKSIZE).

Cuando un miembro en un PDS se reemplaza, la nueva área de datos se graba a una nueva sección dentro del espacio alocado al PDS. Cuando un miembro se borra, su apuntador (pointer) se borra también, pero no hay mecanismo para reusar el espacio. Este desperdicio de espacio debe removerse periódicamente reorganizando el PDS, por ejemplo usando el utilitario IEBCOPY para comprimirlo.

P19Un data set puede tener un solo segmento de nombre o una serie de segmentos unidos. Cada segmento de nombre representa un nivel de calificación. Por ejemplo, el nombre del data set VERA.LUZ.DATA está compuesto por tres segmentos. El primero a la izquierda se lo llama mayor nivel (HLQ) y el último de la derecha de menor nivel (LLQ).

P23

El registro 1 de la primera pista (track) del primer cilindro (cylinder) provee el rótulo (label) del disco. Contiene los 6 caracteres del número de serie del volumen (volser) y un apuntador a la tabla de contenido del volumen (Volume Table Of Contents (VTOC), que puede estar ubicada en cualquier lugar del disco.

La VTOC contiene la lista de los data sets que residen en el volumen, junto con información sobre la ubicación y tamaño de cada data set, y otros atributos del data set. Un utilitario estándar del z/OS, el ICKDSF, se usa para crear el rótulo y la VTOC.

Cuando un volumen de disco se inicializa con ICKDSF, el dueño (owner) puede especificar la ubicación y tamaño de la VTOC. El tamaño puede ser muy variable, en un rango desde unas pocas pistas hasta 100 pistas (tracks), dependiendo del uso que se va a dar al volumen. Más data sets en el disco necesitarán de más espacio en la VTOC.

La VTOC además tiene entradas para todo el espacio libre en el volumen. Cuando se asigna (allocate) espacio para un data set, esto causa que rutinas del sistema examinen los registros de espacio libre, los actualizan, y crean una nueva entrada en la VTOC. Los data sets siempre tienen un número entero de pistas (tracks) o cilindros, y comienzan al comienzo de una pista o cilindro.

P24Un catálogo describe los atributos de un data set e indica el volumen o los volúmenes (si esta

Page 20: Not As

particionado en varios) donde se encuentra . Los data sets pueden ser catalogados, descatalogados, o recatalogados. Todos los data sets en disco (DASD) se pueden catalogar automáticamente en un catálogo. Catalogar data sets en cinta no es necesario pero usualmente simplifica el trabajo del usuario.

En z/OS el catálogo maestro y los catálogos de usuario almacenan la ubicación de los data sets por nombre. Esto significa que los nombres de data set debe ser único. Se pueden catalogar data sets en disco o cinta.

Para encontrar un data set que usted requiere, el z/OS debe conocer tres datos importantes:Nombre del data setNombre del volumenUnidad (tipo de dispositivo, como por ejemplo disco 3390 o cinta 3590)

Usted puede especificar estos tres valores en paneles del ISPF o en su JCL. Sin embargo, la unidad de dispositivo y volumen usualmente no son tan relevantes para el usuario final o programa de aplicación.

P25Un sistema z/OS siempre tiene por lo menos un catalogo maestro. Si tiene sólo un único catálogo, éste es el catálogo maestro y todas las entradas para todos los data sets deben estar almacenadas en él. Este no es muy eficiente ni flexible, típicamente el sistema z/OS usa un catálogo maestro y varios catálogos de usuario conectados a él, como se muestra en el gráfico.

Un catálogo de usuario almacena el nombre y ubicación de un data set (dsn/volumen/unidad). El catálogo maestro suele guardar sólo el calificado de mayor nivel (HLQ) con el nombre del catálogo de usuario, el cual contiene todos los datos de los data sets con prefijo igual a ese HLQ, llamado alias.

En el gráfico, el nombre de data set del catálogo maestro es SYSTEM.MASTER.CATALOG. Este guarda los nombres y ubicaciones de todos los data sets con un prefijo SYS1 como por ejemplo SYS1.A1. Dos entradas HLQ (alias) se definieron en el catálogo maestro.

Cuando SYS1.A1 es requerido, el catálogo maestro devuelve la información de ubicación, volumen (WRK001) y unidad (3390). Cuando se necesite usar IBMUSER.A1, el catálogo maestro redirecciona el pedido al catálogo de usuario USERCAT.IBM, y éste devuelve la información.

P32En un sistema z/OS, manejo de datos involucra asignación (allocation), ubicación, monitoreo, migración, respaldo (backup), recall, recupero y borrado. Estas actividades se pueden hacer manualmente o mediante el uso de procesos automáticos. Cuando la administración de datos se automatiza, el sistema operativo determina dónde ubicar el objeto, y automáticamente maneja el backup, movimiento, espacio y seguridad del objeto. Un sistema típico de producción de z/OS incluye procesos manuales y automáticos para manejo de data sets.

Administración de datos incluye las siguientes tareas principales: Asignar (allocate) espacio en volúmenes de disco (DASD)Recupero automático de data sets catalogados por su nombreMontaje de volúmenes de cinta magnéticas en la unidadEstablecer una conexión lógica entre el programa de aplicación y el medio magnéticoControlar el acceso a los datosTransferir datos entre programa de aplicación y el medio magnético

Page 21: Not As

El DFSMS realiza las funciones esenciales del sistema para datos, almacenamiento (storage), programa y manejo de dispositivos. Es un conjunto de productos, uno de ellos es el DFSMSdfp, necesario para la ejecución del z/OS. DFSMS junto con los productos de hardware y definiciones específicas de cada instalación sobre datos y manejo de recursos, proveen almacenamiento administrado por el sistema en un ambiente z/OS:

El corazón del DFSMS es el Storage Management Subsystem (SMS). Usando SMS, el programador de sistema o el administrador de almacenamiento, definen políticas que automatizan la administración de storage y dispositivos de hardware. Estas políticas describen características de asignación de datos , objetivos de performance y disponibilidad, requerimientos de backup y retención, y requerimientos de storage para el sistema. SMS gobierna estas políticas el sistema y el Interactive Storage Management Facility (ISMF) provee las interfaces para las definiciones y mantenimiento de las políticas.

Los data sets asignados (allocate) a través del SMS se denominan data sets manejados por el sistema o por el SMS.

P34El término Virtual Storage Access Method (VSAM) aplica tanto a tipos de data sets como al método de acceso para administrar distintos tipos de datos.

Como método de acceso, VSAM provee funciones mucho más complejas que otros métodos de acceso a disco. VSAM mantiene los registros en disco en un formato único que no es entendido por otros métodos de acceso.

VSAM principalmente es para aplicaciones. No se usa para programas fuente, JCL, o módulos ejecutables. Los archivos VSAM no se pueden editar. Se puede usar VSAM para reorganizar registros en cuatro tipos de data sets: key-sequenced, entry-sequenced, linear, o relative record. La diferencia básica entre estos tipos de data sets es la forma como los registros se almacenan y acceden.

P36

VSAM trabaja con un área lógica de datos llamada Control Interval (CI) que aparece en el diagrama. El tamaño default del CI es 4KB, pero puede llegar hasta 32KB. El CI contiene datos, espacio no usado, y campos de control, Record Descriptor Fields (RDF) y CI Descriptor Field.

Un control interval puede ser construído desde pequeños bloques en disco, pero este nivel de detalle es interno al VSAM. Múltiples control intervals su agrupan en una Control Area (CA). Un data set VSAM consiste de áreas de control y registros índice. Una forma de registro índice es el sequence set, que es el nivel de índices más bajo, que apunta a los control intervals.

El uso típico del VSAM le permite a una aplicación la inserción de nuevos registros en un data set.

P43z/OS UNIX System Services (z/OS UNIX) permite al z/OS acceder a archivos UNIX. Aplicaciones UNIX también pueden acceder a data sets z/OS. Se pueden usar hierarchical file system (HFS),

Page 22: Not As

z/OS Network File System (z/OS NFS), zSeries File System (zFS), y temporary file system (TFS) con z/OS UNIX.

Un file system de z/OS UNIX es jerárquico y byte-oriented. Encontrar un archivo en un file system mediante la búsqueda de un directorio o conjunto de directorios (ver siguiente diapositiva). No hay directorios z/OS que apunten directamente a un archivo.

P45Un nombre de paso (path) identifica un archivo y consiste de nombres de directorio y nombre de archivo. Un nombre de archivo que use todos los calificadores, que consiste del nombre de cada directorio en el path a un archivo mas el nombre del archivo propiamente dicho, puede llegar a 1023 bytes de longitud. El HFS permite nombres de archivos (file name) en un mix posible de mayúsculas y minúsculas.

El nombre de paso se construye con nombres individuales de directorio y un nombre de archivo separado por una barra, por ejemplo:/dir1/dir2/dir3/myfile

Como UNIX, el z/OS UNIX es sensitivo a mayúsculas y minúsculas para nombres de archivos y directorios. Por ejemplo, en el mismo directorio del archivo MYFILE es diferente al archivo myfile.

Los archivos en el HFS son secuenciales, y se acceden como byte streams. El concepto de registro no existe con estos archivos mas que la estructura definida por la aplicación.

El data set hierarchical file system (HFS) es un tipo de data set z/OS.

Data sets HFS y de z/OS pueden residir en el mismo volume en disco.

Capitulo 6

P4

Los detalles del JCL pueden ser complicados, pero los conceptos básicos son muy simples. Además, un conjunto pequeño de

sentencias de control (JCL) son suficientes en casi el 90% de los casos.

Este capítulo discute algunas seleccionadas opciones de JCL.

Mientras los programadores de aplicaciones necesitan algún conocimiento de JCL, el analista responsable del control de la

producción debe ser muy competente con el JCL, para su creación, monitoreo, corrección y re-ejecución de la carga de trabajo

batch diaria de la compañía.

P5

Hay tres sentencias de control básicas:

Page 23: Not As

JOB Provee un nombre para esta carga batch. Opcionalmente puede incluir información de contabilidad y otros pocos parámetros para el job.

EXEC Provee el nombre del programa a ser ejecutado. Pueden haber varias sentencias EXEC en un job, mínimo una.

Cada sentencia EXEC dentro del job se denomina paso de job (job step) .

DD La Definición de Datos provee entrada y salida para ejecución del programa identificado en la EXEC. Esta sentencia identifica un data set,

un dispositivo de I/O o una función a una DDNAME codificada dentro del programa. Las sentencias DD se asocian con un paso de job particular.

P6

En el Capítulo 3, “TSO/E, ISPF, y UNIX: Facilidades Interactivas de z/OS” , ejecutamos la misma rutina desde un panel de TSO READY.

Cada sentencia DD de JCL es equivalente al comando de TSO ALLOCATE. Ambos se usan asociados a un data set z/OS con un “ddname”,

el cual es reconocido por el programa como entrada o salida.

La diferencia en el método de ejecución es que TSO ejecuta el sort en foreground mientras que el JCL se usa para ejecución en background (o batch) .

P7Cuando se envía para ejecución:MYJOB Es un nombre de job que el sistema asocia con esta carga.MYSORT Es el nombre de paso, que instruye al sistema a ejecutar el programa SORT.SORTIN En la sentencia DD, es la “ddname”. La ddname SORTIN se codifica en el programa SORT como una entrada de programa. El nombre de data set (DSN) en esta sentencia DD es ZPROF.AREA.CODES. El data set puede ser compartido (DISP=SHR) con otros procesos en el sistema. El contenido de datos del data set ZPROF.AREA.CODES es la entrada al programa SORT.SORTOUT Esta ddname es la salida del programa SORT.SYSOUT SYSOUT=* especifica que los mensajes de salida del sistema deben ser enviados al área de salida de impresión del Job Entry Subsystem (JES). Se puede también enviar la salida a un data set.SYSIN DD * es otra sentencia de entrada. Especifica que lo que sigue a continuación son datos o sentencias de control. En este caso, son las instrucciones de clasificación para el programa SORT, donde los campos de los registros de datos de SORTIN van a ser ordenados.

Usamos el término sentencia de JCL en este texto; algunos usuarios de z/OS usan también tarjeta de JCL, aunque el JCL resida en una librería en disco.

P8

Ejemplo:

//MIRIAM2 JOB 19,NOTIFY=&SYSUID,REGION=6M

La sentencia de JCL JOB ‘//MIRIAM2 JOB 19’ es una tarjeta JOB con nombre MIRIAM2. El 19 es un campo de contabilidad de la tarjeta JOB

Page 24: Not As

que puede estar sujeta a la verificación por parte de rutinas exits del sistema, éstas pueden usarse para hacer una imputación de costos a los usuarios del sistema. Similares operandos de la tarjeta JOB que pueden incluirse:

REGION= Valor de recurso específico de memoria solicitado para este jobNOTIFY= Mensaje que puede enviarse a un usuario de TSO cuando termina el job

USER= El Job asumirá la autoridad del usuario de TSO especificado aquíTYPRUN= Se puede enviar un job retenido (en HOLD), y liberarlo más tardeCLASS= Identifica una cola específica de entrada de jobs, definida por la instalación

MSGCLASS= Direcciona la salida del job a una cola específica de salida, definida por la instalaciónMSGLEVEL= Controla la cantidad de mensajes del sistema a generar

P9Ejemplo:

//MYSTEP EXEC PGM=SORT

La sentencia de JCL EXEC ‘//MYSTEP EXEC’ tiene un nombre de paso (stepname) MYSTEP. Siguiendo la EXEC se codifica

ya sea PGM=(nombre de programa ejecutable) o un nombre de PROC (procedimiento).

Cuando está presente un PROC, los operandos podrían tener las sustituciones de variables necesarios pare ese mismo PROC.

Los operandos que podemos encontrar en la sentencia EXEC PGM= son:

PARM= Parámetros conocidos por y pasados al programa.

COND= Lógica de Boole para controlar la ejecución de otros pasos de EXEC en el mismo job.... IF, THEN, ELSE, son

sentencias de JCL existentes superiores cuando uso COND, sin embargo, puede haber viejos JCL’s en ambiente productivo usando esta sentencia.

TIME= Limita el tiempo de ejecución del paso.

P10La sentencia de JCL DD //MYDATA DD tiene un ddname de MYDATA.

DD, la sentencia de Definición de Datos, tiene una cantidad significativamente mayor de operandos que las sentencias JOB o EXEC. La sentencia de JCL DD puede estar involucrada con muchos aspectos de la definición, o describiendo atributos de la entrada y salida de datos de programas.

Algunos de los operandos más usados son:

DSN= Nombre del data set; puede incluir data sets nuevos, temporarios, o referenciar un data set anteriormente usado en el mismo job.DISP= Disposición del data set en el momento del comienzo del paso (new, shr, old, mod), a la finalización del paso (catlg, keep, delete, pass) y si el paso termina en forma anormal o abend (catlg, keep, delete, pass).SPACE= Cantidad de espacio en disco solicitada para un nuevo data set.SYSOUT= Define un dispositivo tipo impresora (cola de salida, o un data set).VOL=SER= Nombre de un Volumen, residente en disco o cinta.UNIT= Disco del sistema, cinta, dispositivo especial, o esotérico (nombre local).DEST= Rutea salida a destino remoto.

Page 25: Not As

DCB= Data set control block, varios sub-operandos.

Sub-operandos más comunes de DCB:LRECL= Longitud del registro lógico. Cantidad de bytes o caracteres en cada registro.RECFM= Formato del registro: fijo, blockeado, variable, etc.BLOCKSIZE= Tamaño de bloque, típicamente un múltiplo de LRECL. Un valor de 0 le dirá al sistema que estime el mejor valor.DSORG= Organización del data set: secuencial, particionado, etc.LABEL= Rótulo de cinta (No Label o Standard Label, seguido por la ubicación del data set).

Una cinta puede almacenar múltiples data sets, cada data set en la cinta está en unaposición. El primer data set en la cinta es el archivo (file) 1.

DUMMY Resulta en un entrada nula o descartar los registros grabados en este ddname.* Datos de entrada o sentencias de control, un método de pasar datos a un programa desde el JCL.*,DLM= Todo lo que sigue es dato de entrada (aún //) hasta que dos caracteres alfanuméricos o especiales se hayan codificado en columnas 1.

P12Todos los parámetros de JCL son importantes, pero la función DISP es una de las más importantes para las sentencias DD. Los parámetros completos de estos campos son:

DISP= (status,normal end,abnormal end)DISP= (status,normal end)DISP= status

Donde status puede ser NEW, OLD, SHR, o MOD:NEW Indica que se va a crear un nuevo data set. El programa tendrá acceso exclusivo al data set mientras ejecute. El data set no debe existir.OLD Indica que el data set ya existe y que el programa tendrá acceso exclusivo mientras esté ejecutando.SHR Indica que el data set ya existe y que varios jobs pueden acceder en forma simultánea mientras estén ejecutando. Todos esos jobs concurrentes deben codificar SHR.MOD Indica que el data set ya existe y que el job va a tener acceso exclusivo mientras esté ejecutando. Si este job abre el data set para salida (grabación), la salida que genere será agregada el final de los datos que ya existen en el data set.

El parámetro “normal end” indica que hacer con el data set (la disposition) si el paso de job termina en forma normal. Asimismo, el parámetro “abnormal end “ indica qué hacer con el data set si el paso de job termina en forma anormal (abend).

Las opciones son las mismas en ambos parámetros:DELETE Significa borrar (y descatalogar) el data set al final del paso de job.KEEP Significa mantener (pero no catalogar) el data set al final del paso de job.CATLG Significa mantener y catalogar el data set al final del paso de job. UNCATLG Significa mantener el data set pero descatalogarlo al final del paso de job.PASS Significa que se permite su uso a un paso de job posterior, el cual especificará luego la disposición final.

Los valores por defecto (default) de los parámetros de disposición (para finalización normal y anormal) es la de mantener el data set tal como estaba antes de la ejecución del paso de job (la función de catalogación fue descripta anteriormente).

El propósito principal del parámetro DISP es el de indicar al sistema sobre las necesidad de encolamiento de data sets de un job, de manera de prevenir conflictos cuando se esté usando por otros jobs.

P13Si el parámetro DISP para un data set es NEW, hay que suministrar información adicional. Esta incluye: Un nombre de data set. El tipo de dispositivo donde residirá el data set. Un rótulo (volser), si es un disco o cinta rotulada.

Si se usa un disco, se debe indicar la cantidad de espacio a ser definido para extención primaria.

Si es un data set particionado, indicar el tamaño del directorio.

Opcionamente, se pueden especificar parámetros DCB. Alternativamente, el programa que grabará el data set puede proveer estos parámetros.

Page 26: Not As

El parámetro DISP y los nombres de data set names ya han sido descriptos. Brevemente, otros parámetros son:

Volser El formato de éste en una sentencia DD es VOL=SER=xxxxxx, donde xxxxxx es el rótulo (volser). El parámetro VOL puede especificar otros detalles.Device type Hay varias formas de hacer esto, pero UNIT=xxxx es la más común. El valor xxxx puede ser un tipo de dispositivo (como un disco 3390), o una dirección específica de dispositivo (como 300), o un “nombre esotérico” definido por la instalación (como por ejemplo SYSDA). SYSDA usa una convención para representar cualquier volúmen de disco disponible.Member name Recuerde que un miembro de una librería (o data set particionado, PDS) puede ser tratado como un data set por varias aplicaciones y utilitarios. Para referenciar un miembro específico se usa el formato DSNAME=ZPROF.LIB.CNTL(TEST). Si la aplicación o el programa utilitario espera un data set secuencial, se debe especificar un data set secuencial o un miembro de una librería. Se puede usar el nombre completo de la librería (sin un nombre de miembro especifico) sólo si el programa o utilitario esperan el nombre de la librería.

Space El parámetro SPACE se necesita para definir data sets en disco (DASD). Indica el espacio requerido. Antes que el data set se pueda crear en disco, el sistema debe conocer cuánto espacio necesita y cómo ese espacio se cuantifica. En el caso más básico, SPACE tiene dos parámetros. Estos son la unidad de medición (pistas, cilindros o tamaño promedio de bloque) y la cantidad de espacio.

P14

Como una consecuencia de la limitación en el número de caracteres que pueden codificarse en

una única tarjeta perforada de 80 columnas usada en anteriores sietemas, z/OS introduce los

conceptos de continuación y concatenación. Por este motivo, z/OS mantiene esas convenciones de

manera de minimizar el impacto en aplicaciones y operaciones previas.

P15La sintaxis de la continuación de JCL involucra una coma (,) al final del último operando completo.

La siguiente línea de JCL debe incluir // seguido por lo menos de un espacio, luego el operando adicional.

Sintaxis del operando de JCL en una línea de continuación debe comenzar en o antes de columna 16.

//JOBCARD JOB 1,REGION=8M,NOTIFY=ZPROF

Una importante facilidad de la sentencia DD es el hecho que una única “ddname” puede tener múltiples sentencias DD. Esto se llama “concatenación”.

El JCL siguiente indica que los data sets están concatenados:

//DATAIN DD DISP=OLD,DSN=MY.INPUT1

// DD DISP=OLD,DSN=MY.INPUT2

// DD DISP=SHR,DSN=YOUR.DATA

Concatenación aplica sólo a data sets de entrada. Los data sets se procesan automáticamente en secuencia. En el ejemplo, cuando el programa lee el final de MY.INPUT1, el sistema abre automáticamente MY.INPUT2 y comienza a leerlo. El programa no se da cuenta que ahora está leyendo un segundo data set. Continúa hasta leer el último dato de la concatenación; en ese momento la aplicación recibe la indicación de fin-de-archivo.

P16

Algunos programas y tareas necesitan una mayor cantidad de JCL que un usuario pueda entrar fácilmente.

JCL para estas funciones se pueden guardar en librerías de procedimientos. Un miembro de una librería de procedimientos contiene “parte” del JCL para una

Page 27: Not As

tarea dada – usualmente fija, parte de JCL sin cambio.

El usuario del procedimiento suministra la parte variable del JCL para un job específico.

A veces se lo denomina “procedimiento catalogado” y no está relacionado a un catálogo del sistema.

Muchos de estos JCL ya los hemos visto. Nuevas funciones de JCL presentes ahora incluye:

Parámetros PROC y PEND son únicos para procedimientos. Se usan para identificar el comienzo y fin del JCL de un procedimiento.

El PROC está precedido de un rótulo o nombre; en nuestro ejemplo el nombre es MYPROC.

La sentencia PROC en un procedimiento también se usa para la sustitución de variables simbólicas. &SORTDSN es la única variable en nuestro ejemplo.

P17

En este ejemplo, incluímos un procedimiento “inline” codificado en el mismo job stream.

Cuando MYJOB se envía a ejecución (submit), el JCL de nuestro ejemplo se sustituye para la sentencia EXEC MYPROC. El valor para &SORTDSN debe ser provisto.

SORTDSN y su valor se codifican a continuación de la sentencia EXEC MYPROC, separado por una coma.

//SYSIN DD * seguido por las sentencias de control del SORT se agregan al JCL substituido.

P18

Cuando una sentencia de JCL PROC entera debe ser reemplazada, entonces se puede usar una sentencia con el siguiente formato:

//stepname.ddname DD ...

Este ejemplo muestra la modificación de la sentencia DD SORTOUT en MYPROC, donde definimos SORTOUT directamente a un nuevo data set secuencial en disco.

P19

SDSF es un software cuyo propósito principal es el de poder ver salidas impresas de jobs retenidas en el área de spool del JES. Muchas veces esas salidas nunca se imprimen, pero mediante el SDSF se pueden ver y luego borrar o imprimir a pedido.

P25

Este es el menu primario de opciones de SDSF. Algunas de las opciones son:

DA El panel “Display Active” muestra información sobre los address spaces de MVS (jobs, started tasks, y ususarios de TSO) que están ejecutando.

Page 28: Not As

I El panel “Input Queue” información sobre jobs, started tasks, y usuarios de TSO en la cola de entrada o ejecutando.

O El panel “Output Queue” muestra información sobre datos de data sets de SYSOUT de jobs,

started tasks, y usuarios de TSO en cualquier clase de JES2 no retenidas (nonheld) .

H El panel “Held Output” muestra información sobre datos de data sets de SYSOUT de jobs,

started tasks, y usuarios de TSO en cualquier clase de JES2 retenidas (held) .

ST El panel “Status” muestra información sobre jobs, started tasks, y usuarios de TSO en las colas de JES2.

LOG El panel “System Log” muestra el log y le permite buscar en él.

PS El panel “Processes” muestra información sobre procesos de servicios del sitema z/OS UNIX.

PR El panel “Printers” muestra información sobre impresiones en JES2 de salidas de jobs, started task, y usuarios de TSO.

P27

La primera pantalla al tope de esta diapositiva muestra una lista de jobs enviados a ejecutar y la salida la hemos direccionado a una cola de retención (HELD) clase T, identificada en el parámetro MSGCLASS=T en la sentencia JOB. En nuestro caso sólo un job enviamos y se ejecutó.

Tenemos un solo job en la cola de retención (Held).

Mediante el comando ? En la columna NP, se muestran los archivos de salida generados por el job

La segunda pantalla muestra tres ddnames: el archivo de mensajes de log del JES2 y el archivo de mensajes del sistema de JES2. Esta opción es útil cuando está viendo jobs con varios archivos dirigidos a SYSOUT y quiere ver uno asociado con un paso específico. Puede emitir el comando S en la columna NP para seleccionar el archivo que quiere.

Para ver todos los archivos, en lugar de un ?, ponga S en la columna NP.

P41

Estas librerías son data sets PDS estandares y se encuentran en volumenes de disco del sistema.