Capítulo 3
Objetivos
Después de completar este capítulo usted será capaz de:
• Listar varias características que definen el sistema operativo z/OS
• Dar ejemplos de cómo el z/OS difiere de un sistema operativo monousuario.
• Listar los principales tipos de almacenamiento usados por z/OS.
• Explicar el concepto de almacenamiento virtual y su uso en z/OS.
• Indicar la relación entre páginas, frames y slots.
• Describir varias diferencias y similitudes entre z/OS y UNIX. • Entender conceptos del z/OS Workload Manager.
¿Qué es un sistema operativo?
• En términos simples es una colección de programas que
administran los trabajos internos de un sistema computacional. Están diseñados para hacer el mejor uso de los recursos de la
computadora, y asegurarse de que se procese la mayor cantidad de trabajo tan eficientemente como sea posible.
• Aunque un sistema operativo no puede aumentar la velocidad de una computadora, puede maximizar su uso, y así hacer parecer a la computadora más veloz permitiéndole hacer más trabajo en un
¿Qué es z/OS?
• z/OS es un sistema operativo muy utilizado en mainframe, está diseñado para ofrecer un ambiente estable, seguro, con
disponibilidad continua y escalable.
• Es el resultado de décadas de avance tecnológico, evolucionó de ser un sistema operativo que podía procesar sólo un
programa a la vez a un sistema operativo que puede manejar miles de programas y usuarios interactivos concurrentemente. • En los primeros sistemas operativos las peticiones de trabajo
entraban al sistema una a la vez. El sistema operativo procesaba cada petición ó trabajo (job) como una unidad, y no comenzaba el siguiente trabajo hasta terminar de procesar el previo.
• Este arreglo funcionaba bien cuando un trabajo podía ejecutarse continuamente desde el inicio hasta terminar. Pero
frecuentemente un trabajo tenía que esperar por información a ser leída de ó escrita a un dispositivo como una cinta ó
impresora.
¿Qué es z/OS?
• Encontrar la manera de mantener al procesador trabajando mientras el job esperaba podía incrementar la cantidad total de trabajo que el procesador hacía sin requerir hardware adicional.
• z/OS hace el trabajo dividiéndolo en partes y dándole porciones del job a varios componentes del sistema y subsistemas que funcionan interdependientemente.
• En algún punto en el tiempo, un componente ú otro toma el control del procesador, hace su contribución, y luego pasa el control a un programa de usuario ó a otro componente.
• El z/OS actual es un ambiente de ejecución que comparte
Mainframe (CPU, memoria) Hardware Master Console
(controla el HW de z)
Operator Console (controla el z/OS)
Almacenamiento en Disco
Controladora de DASD Unidad de Cinta Cartuchos de Cinta
Recursos de HW usados por el z/OS
• El z/OS se ejecuta en un procesador y reside en memoria durante su ejecución.
• También se le conoce como base control
program (BCP).
• El hardware de z consiste en
procesadores y varios periféricos como
discos (direct access storage devices
Visión simplificada de conceptos de mainframe
• Software: El sistema operativo z/OS consiste de código ejecutable (executable code), también llamado módulos de carga. Durante el proceso de instalación, el system
programmer copia estos módulos de carga a librerías de
carga load libraries (archivos) que residen en DASD
volumes (discos).
• Hardware: El sistema de HW consiste en todos los
canales, dispositivos, control units, y procesadores que constituyen el ambiente mainframe.
• Dispositivos Periféricos: Estos dispositivos incluyen unidades de cinta, DASD, y consolas.
• Memoria: También llamada almacenamiento Central ó Real, aquí es donde el z/OS se ejecuta, todos los
Multiprogramación y Multiprocesamiento
• Multiprogramación (Multiprogramming): Es la habilidad de ejecutar muchos programas concurrentemente.
– Con multiprogramación, cuando un job no puede usar el procesador, el sistema puede suspenderlo mediante una
interrupción liberado el procesador para trabajar con otro job.
– z/OS hace la multiprogramación capturando y guardando
toda la información relevante sobre el programa interrumpido antes de permitir a otro programa ejecutarse.
– Cuando el programa interrumpido está listo para ejecutarse de nuevo, se resume su ejecución justo donde se quedó. – Esto permite a z/OS ejecutar miles de programas
• Multiprocesamiento (Multiprocessing): Es la operación simultánea de dos o más procesadores que comparten los recursos de hardware, como memoria y dispositivos de almacenamiento externos.
• Las técnicas de multiprogramación y multiprocesamiento hacen al z/OS ideal para procesar cargas que requieren muchas operaciones de I/O.
• Las típicas cargas de mainframe incluyen aplicaciones que actualizan millones de registros en una base de
datos, y aplicaciones para miles de usuarios interactivos. • Los sistemas monousuario como las PCs comúnmente
tienen todos los recursos a disposición de un solo usuario.
Módulos y Macros
• z/OS está hecho de instrucciones de programación que controlan la operación del sistema.
• Estas instrucciones aseguran que el HW sea utilizado eficientemente y permiten que las aplicaciones se ejecuten.
• z/OS incluye conjuntos de instrucciones que por ejemplo, aceptan trabajo, convierten trabajo a una forma que la computadora pueda reconocer, dan seguimiento al trabajo, asignan recursos para el
trabajo, ejecutan el trabajo, monitorean el trabajo y manejan la salida. • Rutina ó modulo (routine/module) :Es un conjunto de instrucciones
relacionadas.
• Componente del sistema (system component): Es un conjunto de
módulos relacionados que hacen posible una función particular del sistema, ej: El WorkLoad Manager (WLM) es un componente que controla los recursos del sistema, el Recovery Termination Manager
(RTM) maneja la recuperación del sistema.
• Macros: También llamadas macro instructions, son agrupaciones de
Control blocks
• Cuando los programas ejecutan trabajo en un sistema, dan
seguimiento a este trabajo en áreas de memoria llamadas bloques de control (control blocks).
• Los Controls blocks contienen información de estado, tablas ó colas. Hay 4 tipos de CBs:
– System-related control blocks: Cada uno de estos bloques de control representa un sistema z/OS y contiene información de todo el sistema como cuántos procesadores están en uso.
– Resource-related control blocks: Cada uno de estos bloques representa un recurso como procesador ó dispositivo de almacenamiento.
– Job-related control blocks: Cada uno de estos representa un job en ejecución en el sistema.
Control blocks
• Los control blocks sirven como vehículos de comunicación a través del z/OS.
• Esta comunicación es posible porque los programas que utilizan un CB conocen su estructura y pueden encontrar la información que necesitan.
• Los CB que representan muchas unidades del mismo tipo se
pueden encadenar juntos en colas y cada cb apunta al siguiente en la cadena
• El sistema operativo puede buscar en la fila para encontrar
información sobre una unidad, trabajo ó recurso en particular, que podría ser:
– La dirección de un CB ó una rutina requerida.
– Información tal cuál como un valor, cantidad, parámetro ó nombre. – Banderas de estado (comúnmente son bits en un byte, donde cada bit
Almacenamiento físico utilizado por el z/OS
• Conceptualmente, los mainframes tienen 2 tipos de almacenamiento físico:
– Almacenamiento físico ubicado en el procesador del mainframe llamado
memoria, almacenamiento de
procesador processor storage, almacenamiento real, ó
almacenamiento central central
storage (CSTOR).
– Almacenamiento físico externo al mainframe, incluyendo dispositivos de acceso directo como unidades de disco y cinta. Para la utilización del z/OS, este almacenamiento es
llamado almacenamiento auxiliar
• Una diferencia entre los dos tipos de almacenamiento se relaciona al modo en que son accesados:
– El almacenamiento central CSTOR es accesado de manera síncrona con el procesador, esto significa que el procesador debe esperar mientras los datos son recuperados de aquí. – El almacenamiento auxiliar es accesado asíncronamente. El
procesador lo accesa a través de una petición de I/O que es calendarizada para ejecutarse mientras otro trabajo se ejecuta en el sistema.
• Al procesador le toma mucho menor tiempo accesar
información del almacenamiento central que del auxiliar, sin embargo el auxiliar es mucho menos caro que el
central.
Facilidades del z/OS
Address Spaces
Almacenamiento Físico
Paginación
Comunicación con el operador
RAS
• Address Space: Es el rango de memoria virtual
direccionable disponible para un usuario ó programa. Es un área de direcciones virtuales contiguas disponibles para un programa y sus requerimientos de datos. Dado que mapea todas las direcciones disponibles, un
address space incluye código y datos de sistema y
código y datos de usuario.
• z/OS despacha trabajo para ejecución, selecciona los programas a ser ejecutados basado en prioridades y la habilidad para ejecutar y luego carga el programa y los datos en almacenamiento central. Todas las
instrucciones del programa y datos deben estar en almacenamiento central cuando se ejecuta.
Breve historia del direccionamiento en z/OS
1970: El System/370 definía las
direcciones de memoria con una longitud de 24 bits, proveyendo direccionamiento de hasta 16MB de almacenamiento virtual.
1983: El System/370-XA extendió el
direccionamiento de la arquitectura a 31 bits, para hasta 2GB de almacenamiento virtual.
2000: z/Architecture extendió el
Address Space
• z/OS provee a cada usuario con un address space único y mantiene la distinción entre los programas y los datos pertenecientes a cada address space.
• Dentro de cada address space, el usuario puede empezar múltiples tareas utilizando los task control blocks (TCBs) que permiten multiprogramación. • En z/OS un address space es como un proceso en UNIX, y el address
space identifier (ASID) es como el process ID (PID).
• z/OS y sus subsistemas requieren address spaces propios para proveer funcionalidad:
– Los System address spaces realizan funciones para todos los otros tipos de address spaces.
– Subsystem address spaces son para las principales funciones de sistema y productos de middleware como DB2, CICS, e IMS.
– TSO/E address spaces son creados para cada usuario que de da log on en z/OS.
Aislamiento del Address Space
• El uso de address spaces permite a z/OS mantener la diferencia entre los programas y datos
pertenecientes a cada address space. Las áreas privadas en el address space de un usuario están aisladas de las áreas privadas en otros address spaces, esto provee gran parte de la seguridad del
sistema operativo.
• Hay dos áreas privadas:
– Una bajo la línea de 16 MB (para direccionamiento de 24 bits)
– Una sobre la línea de los 16MB (para direccionamiento de 31 bits). • Cada Address Space también
Comunicación entre Address Spaces
• z/OS provee dos métodos para la comunicación
entre address spaces:
– Calendarizando un service request block (SRB), que es
un proceso asíncrono y se ejecuta independientemente
del programa que lo solicita.
– Utilizando cross-memory services (XM) y accesando
registros, el cual es un proceso síncrono y se utiliza para
accesar directamente al address space de otro usuario. El
programa que lo solicite debe tener autoridad especial.
Cross Memory (XM)
• Permite al programa proveer servicios coordinado con otros programas.
• En este caso la comunicación es entre el Address Space 2, que obtiene el control del Address Space 1 cuando el
program call (PC) es emitido.
• El Address Space 1 previamente había establecido el ambiente necesario
antes que el PC transfiriera el control al Address Space 2 el cuál provee el
servicio y regresa el control al Address Space 1.
• La XM tiene 3 objetivos:
– Mover datos de manera síncrona entre diferentes address spaces.
– Pasar el control síncronamente entre instrucciones localizadas en diferentes address spaces.
– Ejecutar una instrucción localizada en un address space mientras que sus operandos están en otro address space.
Memoria Virtual
If you can see it and it's there, then it's real.
If you can see it and it's not there, then it's virtual.
If you can't see it and it's there, then it's transparent.
Memoria Virtual
• z/OS utiliza los dos tipo de almacenamiento físico (central y auxiliar) para habilitar otro tipo de almacenamiento llamado almacenamiento virtual.
• En z/OS, cada usuario tiene acceso a almacenamiento virtual a través del cuál tiene acceso al físico.
• Almacenamiento Virtual significa que cada programa en ejecución puede asumir que tiene acceso a todo el almacenamiento definido por el esquema de direccionamiento de la arquitectura.
• z/OS soporta un direccionamiento de 64-bits, los que permite un address
space para direccionar hasta 16 exabytes de localidades de memoria.
• Para permitir a cada usuario actuar como si todo este almacenamiento
realmente existiera en el sistema, z/OS mantiene sólo las porciones activas de cada programa en almacenamiento central. Mantiene el resto del código y los datos en archivos llamados page data sets en almacenamiento
auxiliar.
• Almacenamiento virtual, es la combinación de almacenamiento real y auxiliar. z/OS utiliza una serie de tablas e índices para relacionar las
Cómo trabaja la memoria virtual
• La memoria virtual está dividida en segmentos de 1 MB compuestos de páginas de 4 KB.
• La transferencia de páginas entre memoria auxiliar y real se llama paginación.
• Cuando una página requerida no está en memoria real, una interrupción (llamada page fault) se señala y el
sistema la trae a memoria real.
• El z/OS utiliza tablas de segmento, página y región para dar seguimiento a las direcciones virtuales que son
traducidas de forma dinámica a direcciones reales en un proceso llamado Dynamic Address Translation (DAT)
• Los frames y slots son repositorios para una página de información
Formato de las direcciones virtuales
• Las páginas son referenciadas por su dirección virtual. • z/OS administra los address spaces en unidades de
varios tamaños:
– Página Los address spaces se dividen en unidades de 4 KB de memoria virtual.
– Segmento Los address spaces se dividen en unidades de 1 MB llamadas segmentos, que son bloques de direcciones virtuales secuenciales.
– Región Los address spaces se dividen en unidades de 2 - 8 GB llamadas regiones.
• Una dirección virtual se divide en 4 campos principales:
Cómo trabaja la memoria virtual
Proceso 1 Proceso 1
Memoria Real
Memoria Auxiliar
Páginas, Frames y Slots
• Los pedazos de programa en ejecución en
memoria virtual deben ser movidos entre
almacenamiento real y auxiliar:
– Un bloque de almacenamiento real es un frame.
– Un bloque de almacenamiento virtual es una
página.
– Un bloque de almacenamiento auxiliar es un slot.
• Las páginas, frames y slots son todos del mismo
tamaño: 4096 bytes (4 kilobytes).
Páginas, Frames y Slots
REAL
VIRTUAL
AUXILIAR
FRAMES
PÁGINAS
Robo de páginas
• z/OS trata de mantener un suministro adecuado de
frames de memoria real disponibles.
• Cuando este suministro disminuye, z/OS usa robo de
páginas para reponerlo.
• Las páginas que no han sido accesadas por algún
tiempo relativamente largo son buenas candidatas para robo de páginas.
• z/OS también utiliza varios administradores de
almacenamiento para dar seguimiento de las páginas, frames y slots en el sistema:
– Auxiliary Storage Manager (ASM) – Real Storage Manager (RSM)
Swapeo (Swapping)
• Swapping es uno de varios métodos que utiliza el z/OS para balancear la carga de trabajo del sistema y
asegurar que se mantenga el suministro de frames de memoria real.
• El swapeo tiene el efecto de mover un address space entero dentro ó fuera de la memoria real:
– Un address space swapped-in está activo, tiene páginas en frames de memoria real y páginas en slots de memoria auxiliar. – Un address space swapped-out está inactivo; el address space
reside en memoria auxiliar y puede ejecutar hasta que sea swapped in.
– Un address space logically-swapped out está inactivo; sus
Protección de memoria
• z/OS usa las siguientes técnicas para preservar la integridad del trabajo de cada usuario:
– Un address space privado para cada usuario. – Protección de páginas.
– Llaves de protección de memoria
• Bajo z/OS, la información en memoria real es protegida de uso no autorizado por llaves de protección. Un
campo de control en memoria real llamado llave está asociado a cada frame.
• Cuando se hace una solicitud para modificar el
contenido de una localidad de memoria real, la llave asociada con la solicitud se compara a la llave de
Llaves de protección de memoria
• z/OS utiliza 16 llaves de protección.
• Las llaves son asignadas de acuerdo al tipo de trabajo que se realice. • La llave se almacena en los bits 8 a 11 del Program Status Word
(PSW).
• Hay un PSW asignado a cada job en el sistema • Las llaves 0 a 7 son utilizadas por el BCP.
• La llave 0 es la master key.
• Real storage manager (RSM™): Da seguimiento
al contenido de la memoria central.
• Auxiliary storage manager (ASM): Usa los page
data sets del sistema para dar seguimiento a los
slots de memoria auxiliar.
• Virtual storage manager (VSM™): Responde a
peticiones para obtener y liberar memoria
virtual.
¿Que es Administración de Cargas de
Trabajo y cuáles son sus Objetivos?
• WLM (WorkLoad Manager): Administra el
procesamiento de cargas de trabajo en el sistema de acuerdo a las metas de negocio,
• Administra el uso de recursos del sistema, como
procesador y memoria para cumplir con estos goles. • WLM tiene 3 objetivos:
1. goal achievement: Para lograr los objetivos de negocio
definidos por la instalación, asigna automáticamente recursos de un sysplex a cargas de trabajo basado en su importancia y metas.
2. Throughput: Para lograr una utilización óptima de los recursos
del sistema desde el punto de vista del sistema.
3. Response and Turnaround Time: Para lograr una utilización
WLM Balancea Throughput y Turnaround
• Para balancear rendimiento con tiempo de respuesta, WLM realiza las siguientes acciones:
– Monitorea el uso de recursos por parte de los address spaces. – Monitorea el uso de recursos por parte de todo el sistema para
determinar si están siendo completamente utilizados.
– Determina a qué address spaces hacerles swap out y cuándo. – Inhibe la creación de nuevos address spaces ó hace robo de
páginas cuando escasea la memoria central.
– Cambia la prioridad para despachar las address spaces, lo cuál controla la velocidad en la que los address spaces pueden
consumir recursos del sistema.
Cuándo se le notifica al WLM para que trabaje
• Otros componentes de z/OS, administradores
de transacciones y administradores de bases de
datos le pueden comunicar al WLM un cambio
de estado de un address space, ó invocarlo.
• El WLM es notificado cuando:
– Se crea un address space. – Se elimina un address space.
– Se inicia ó se completa un swap-out.
– La asignación de rutinas requiere elegir los
dispositivos que serán asignados a cada solicitud. – Una carga de trabajo prioritaria no está cumpliendo
¿Qué es interrumpir el procesamiento?
• Una interrupción es un evento que altera la secuencia en la que el procesador ejecuta las instrucciones. Las interrupciones pueden ser planeadas (específicamente solicitada por el programa en ejecución) ó no planeada (causada por un evento que puede estar relacionada ó no con el programa que está en ejecución), z/OS utiliza 6 tipos de interrupciones:
1. SuperVisor Calls or SVC: Esta interrupción ocurre cuando el programa
emite una solicitud de SVC para recibir un servicio de sistema. El SVC interrumpe el programa y pasa el control al supervisor para que dé el servicio, como abrir un archivo, obtener almacenamiento ó enviar un mensaje al operador.
2. I/O: Ocurre cuando el CSS señala un cambio de estado, como que se
completó una operación de I/O, ocurrió un error ó un dispositivo está listo para trabajar.
3. Externas: Estas indican varios eventos, como que el operador interrumpió
el programa desde consola, ó el procesador recivió una señal desde otro procesador.
4. Restart: Ocurren cuando el operador selecciona la función restart desde la
consola ó cuando otro procesador envía la señal de restart.
5. Program: Son causadas por errores de programa, como una operación
¿Cómo se utiliza el PSW (Program
Status Word)?
• El PSW es un área de datos de 128-bit en el procesador que provee información crucial para el HW y SW, incluyendo la dirección de la siguiente instrucción de programa e información de control sobre el programa que está corriendo actualmente. Cada procesador tiene sólo una PSW actual. Por lo que sólo una tarea puede ser ejecutada en un procesador por vez.
• Hay tres tipos de PSW:
– PSW Actual: Indica la siguiente instrucción a ser ejecutada. – PSW Nueva: Hay una asociada con cada uno de los 6 tipos de
interrupciones, tiene la dirección de la rutina que puede procesar esa interrupción.
– PSW Vieja: También hay una asociada con cada uno de los 6 tipos de interrupciones.
• Cómo se switchean las PSWs:
– Se almacena la actual PSW en la vieja asociada con el tipo de interrupción que ocurrió.
¿Qué hace el despachador (dispatcher)?
• En z/OS el despachador es responsable de rutear el control a la unidad de trabajo con mayor prioridad que esté lista para ejecutarse. El despachador procesa el trabajo en el siguiente orden:
1. Special exits: Son salidas a rutinas que tienen alta prioridad por condiciones específicas en el sistema.
2. Service Request Blocks (SRBs) que tienen prioridad global. 3. Address Spaces listos en orden de prioridad, un address space
¿Qué hace el despachador (dispatcher)?
• Un address space puede estar en cualquiera de estas 4 filas:
1. IN-READY: En memoria y esperando ser despachada. 2. IN-WAIT: En memoria, pero
esperando algún evento para terminar.
3. OUT-READY: Listo para ejecutarse pero swapped out
4. OUT-WAIT: Swapped out y esperando un evento para terminar.
• Sólo el trabajo en la fila IN-READY puede
Serializando el uso de recursos
• En un ambiente multitarea, multiprocesamiento la
serialización de recursos es la técnica que se utiliza para coordinar el acceso a los recursos utilizados por más de una aplicación.
• Global Resource Serialization (GRS) Es el componente que serializa el acceso a los recursos para proteger su integridad.
• Enqueuing: Es el medio por el cual un programa solicita el control de un recurso, se realiza con las macros ENQ (enqueue) y DEQ (dequeue).
Breve comparación de z/OS y UNIX
Término ó concepto z/OS UNIX
Inicio del sistema
operativo IPL Boot
Almacenamiento de
datos Data Sets Archivos
Formato de datos
Orientado a Registros normalmente de 80
bytes
Orientado a bytes
Herramientas interactivas
TSO/E ISPF y z/OS
UNIX shell rlogin telnet