OpenVMS

OpenVMS
Información sobre la plantilla
Parte de la familia VAX
50*50
Sistema operativo OpenVMS (Sistema de Memoria Virtual)
CreadorDigital Equipment Corporation
Fecha de Creación1970
Última versión estableOpenVMS 7.2-1
Plataformas soportadasVAX, Alpha Server e Integrity con procesadores Itanium
LicenciaPropietario
Sitio web
http://www.openvms.compaq.com

OpenVMS : VMS y OpenVMS son el mismo sistema operativo bajo dos nombres diferentes. Creado en la década del 70 por Digital Equipment Corporation como parte de su exitosa famila de computadores VAX, OpenVMS continúa definiendo los estándares de estabilidad y solidez de los sistemas de misión crítica en todo el mundo.

Historia

El sistema operativo OpenVMS (Sistema de Memoria Virtual) es un sistema multiusuario y multiproceso, para su utilización en entornos de tiempo compartido, procesamiento por lotes y procesamiento de transacciones. HP OpenVMS cuenta con tecnología de clúster líder en el sector que ofrece alta disponibilidad, escalabilidad y seguridad, así como más flexibilidad mejorada para sistemas SMP de gran escala para pequeñas y medianas empresas. Conocido inicialmente como VMS, se ejecutaba sobre sistemas VAX, siendo posteriormente portado a DEC, Alpha e Intel Itanium.

El primer modelo de VAX, la 11/780, fue el nombre clave de "Star", de ahí el nombre de código para el sistema operativo VMS, "Starlet", un nombre que permanece hasta nuestros días el nombre de los archivos de sistema de biblioteca (STARLET.OLB , etc.) VMS versión x0.5 fue el primero entregado a los clientes, en apoyo a la prueba beta de hardware de la VAX-11/780, en 1977. VAX/VMS VAX / VMS versión V1.0 enviado en 1978, junto con el primer barco de ingresos 11/780s. "

OpenVMS fue diseñado íntegramente en Digital Equipment Corporation. Los diseñadores principales fueron Dave Cutler y Dick Hustvedt. OpenVMS fue concebido como un 32-bit, el sucesor de memoria virtual para el sistema operativo de Digital RSX-11M para la PDP-11. Muchos de los diseñadores y programadores de OpenVMS había trabajado previamente en RSX-11M, y muchos conceptos de RSX-11M se llevaron a OpenVMS.

Características

  • El sistema operativo VMS es uno de los más robustos en el mercado, aunque es propietario de la compañia Digital Equipment Corporation.
  • Actualmente con su versión OpenVMS 5.x existe para los procesadores de las máquinas VAX (CISC) y con el Alpha-chip (RISC).
  • Ofrece un amplio conjunto de comandos a través de su intérprete Digital Command Language (DCL), utilidades de red (DECnet), formación de 'clusters' de computadoras para compartir recursos, correo electrónico y otras facilidades.
  • Es un sistema operativo multiusuario/multitarea monolítico.
  • Manteniendo su permanente evolución a lo largo de los años, OpenVMS ha perdido su carácter propietario, ya que actualmente esta soportado en tres plataformas de hardware diferentes (VAX, Alpha Server e Integrity con procesadores Itanium), y se le han incorporado interfases de programación de aplicaciones propias del mundo abierto, que hacen posible pensar en migraciones UNIX a OpenVMS con costo similiar a portes entre diferentes plataformas UNIX.
  • Su extraordinaria vigencia también se debe a que OpenVMS fue y es el único sistema operativo diseñado desde su concepción con funcionalidad de Clustering, presentando funcionalidades en dicho campo nunca igualadas por otros productos de la industria.
  • Se hace difícil contar con una máquina ejecutando OpenVMS de forma nativa ya que seria necesario tener un hardware con procesador Alpha (hoy en día solo los mainframes de HP poseen esa arquitectura). Afortunadamente existen máquinas virtuales que lo emulan y un sitio donde se puede aprender via telnet.

Interfaces

Contrariamente a lo que sugiere su nombre, OpenVMS no es software de código abierto, sin embargo, los listados están disponibles para su compra. A diferencia de otros sistemas operativos de mainframe orientado, OpenVMS cuenta con una interfaz gráfica de usuario (GUI) con soporte para gráficos completos. VAX de Digital Equipment Corporation fue uno de los tres más vendidos las líneas de estaciones de trabajo en los años 1980 y 1990. VAX contó con el apoyo de profesionales de DTP y software CAE.

Hardware soportado

Sistemas de archivos soportados

  • Sistema de archivos preferido: ODS-2 (NRWF)
  • Los sistemas de archivos de lectura / escritura / formato: ODS-5 (FMR) , ODS-1 (FMR)
  • Los sistemas de archivos de sólo lectura y pueden escribir a través de software opcional: ISO 9660 (R)
  • Los sistemas de archivos de lectura / escritura / formato a través de terceros o software opcional: FAT (rw) , NFS (rw) , SMB (rw)

OpenVMS con los paquetes de NAS que se combinan con los nuevos sistemas, tiene plena conectividad con protocolos TCP / IP. Mientras que el paquete NAS es técnicamente un add-on, por lo menos un sistema de nivel básico se incluye con todos los sistemas vendidos en los últimos años. Esto proporciona DECNET IV, PLUS DECNET (pila de protocolos OSI), TCP / IP (FTP, NFS,...) y otros. OpenVMS con los paquetes de NAS también soporta X-11 y el adorno. Paquetes comerciales y freeware disponibles para comunicarse con los protocolos SMB.

Los sistemas de archivos compatibles de forma nativa son ODS-1, ODS-2, e ISO 9660. Bajo el sistema de archivos compatible con OpenVMS estan los servicios de gestión de registros o RMS. RMS permite a los programas de apoyo a muchas organizaciones de archivo diferente forma fácil y transparente a los programas. Otros sistemas operativos no proporcionan esta funcionalidad, lo que requiere más trabajo para el programador, o un producto de base de datos pequeña para ser utilizado.

Manejo de archivos

El sistema de archivos de VMS es jerárquico aunque la descripción de sus senderos tiene una sintaxis propia. Los archivos en VMS se referencían con la sintaxis 'nombre.tipo;versión', donde 'nombre' es una cadena de caracteres alfanuméricos, 'tipo' es la extensión del archivo y se usa generalmente para describir a qué aplicación pertenece ('pas'=pascal, 'for' fortran, etc.) y 'versión' es un número entero que el sistema se encarga de asignar de acuerdo al número de veces que el archivo ha sido modificado.

La protección de los archivos se realiza mediante listas de control de acceso (Access Control Lists). Se pueden establecer protecciones hacia el dueño del archivo, hacia los usuarios privilegiados (system), hacia los usuarios que pertenecen al mismo grupo de trabajo que el dueño y hacia el resto del mundo. Para cada uno de los anteriores usuarios se manejan cuatro permisos: lectura, escritura, ejecución y borrado. Por ejemplo, el siguiente comando:

$set protection=(S:rwed,O:rwed,G:d:W:e) lee.pas Establece que el archivo 'lee.pas' dará todos los permisos al sistema (S:rwed) y al dueño (O:rwed), mientras que a los miembros del grupo de trabajo le da permiso de borrar (G:d) y al resto del mundo permiso de ejecución (W:e).

En VMS, a través de su 'Record Management System' (RMS) se obtienen las facilidades para la manipulación de archivos tanto locales como en red. En el RMS, se proveen facilidades tales como: múltiples modos de acceso a archivos para lograr accesarlos en forma concurrente y permitiendo su consistencia e integridad, establecimiento de candados automáticos al momento de apertura para evitar actualizaciones erróneas y optimización interna en las operaciones de entrada/salida al accesar los archivos. En el caso de que los archivos no son locales, sino remotos, se utiliza internamente el protocolo llamado 'Data Access Protocol' (DAP).

Manejo de procesos

Soporta muchos ambientes de usuario tales como: Tiempo crítico, desarrollo de programas interactivos, batch, ya sea de manera concurrente, independiente o combinado.

El calendarizador VAX/VMS realiza calendarización de procesos normales y de tiempo real, basados en la prioridad de los procesos ejecutables en el Balance Set. Un proceso normal es referido a como un proceso de tiempo compartido o proceso background mientras que los procesos en tiempo real se refieren a los de tiempo crítico.

En VMS los procesos se manejan por prioridades y de manera apropiativa. Los procesos se clasifican de la prioridad 1 a la 31, siendo las primeras quince prioridades para procesos normales y trabajos en lote, y de la 16 a la 31 para procesos privilegiados y del sistema. Las prioridades no permanecen fijas todo el tiempo sino que se varían de acuerdo a algunos eventos del sistema. Las prioridades de los procesos normales pueden sufrir variaciones de hasta 6 puntos, por ejemplo, cuando un proceso está esperando un dispositivo y éste fue liberado. Un proceso no suelta la unidad central de procesamiento hasta que exista un proceso con mayor prioridad.

El proceso residente de mayor prioridad a ser ejecutado siempre se selecciona para su ejecución. Los procesos en tiempo crítico son establecidos por el usuario y no pueden ser alterados por el sistema. La prioridad de los procesos normales puede ser alterada por el sistema para optimizar overlap de computación y otras actividades I/O.

Un aspecto importante del planificador de procesos en VMS es la existencia de proceso 'monitor' o 'supervisor', el cual se ejecuta periódicamente para actualizar algunas variables de desempeño y para re-calendarizar los procesos en ejecución.

Existen versiones de VMS que corren en varios procesadores, y se ofrece librerías para crear programas con múltiples 'threads'. En específico se proveen las interfaces 'cma', 'pthread' y 'pthread-exception-returning'. Todas estas librerías se conocen como DECthreads e incluyen librerías tales como semáforos y colas atómicas para la comunicación y sincronización entre threads. El uso de threads sirve para enviar porciones de un programa a ejecutar en diferentes procesadores aprovechando así el multiproceso.

Servicios del Sistema para el Control de Procesos

Crear un proceso:

El servicio de creado de sistema permite a un proceso crear otro. El proceso creado puede ser un subproceso o un proceso completamente independiente. (se necesitan privilegios para hacer esto).

Suspender un proceso:

Esto es que le permite a un proceso suspenderse a sí mismo o a otro (también necesita tener privilegios).

Reanudar un proceso:

Permite a un proceso reanudar a otro si es que este tiene privilegios para hacerlo.

Borrar un proceso:

Permite que se borre el proceso mismo o a otro si es que es un subproceso, o si no tiene que tener privilegios de borrado.

Dar Prioridad:

Permite que el proceso mismo se ponga prioridad o a otros, para el calendarizador.

Dar el modo de espera:

Permite que el proceso escoja de dos modos: el modo por default es cuando un proceso requiere un recurso y está ocupado y espera a que esté desocupado, y el otro modo es cuando está ocupado el recurso, el proceso no espera y notifica al usuario que el recurso no se encuentra disponible en ese momento en lugar de esperar.

Hibernar:

Es cuando un proceso se hace inactivo pero está presente en el sistema. Para que el proceso continue necesita de un evento para despertar.

Wake:

Esto activa a los procesos que están hibernando.

Exit

Es cuando se aborta un proceso.

Dar nombre al proceso:

Este puede dar un nombre al proceso mismo o cambiarlo.

Manejo de memoria

El sistema operativo VMS utiliza un esquema de manejo de memoria virtual combinado de segmentación paginada que se describe exactamente como se vió en el capítulo de administración de memoria de este trabajo. Lo novedoso en VMS es que usa un doble esquema de paginación cuando las páginas se van a intercambiar de memoria RAM hacia disco duro.

En primer lugar, cuando una página necesita cargarse a RAM ésta se carga junto con varias páginas que están adyacentes, justificando esto por medio de la teoría del conjunto de trabajo que especifica que es muy probable que las referencias a memoria en el futuro inmediato caerán precisamente en esas páginas. De este modo, se tiene un doble algoritmo: al hecho de cargarse las páginas cuando se necesitan se le llama 'paginación por demanda' y al hecho de traerse las otras páginas del conjunto de trabajo por anticipado se le llama 'paginación anticipada'.

Manejo de entrada y salida

En VMS, se usan nombres 'lógicos' para describir a los dispositivos existentes en el sistema. Un concepto importante tanto en archivos como en dispositivos es el 'User Identification Code' (UIC) que permite establecer protecciones adicionales a los ACL. En los dispositivos se manejan cinco tipos de permisos: leer, escribir, ejecutar, borrar y controlar. No todos los permisos se aplican a todos los dispositivos. El permiso de 'control' no se maneja explícitamente sino que se otorga por omisión al dueño y al sistema. Los permisos de los discos, unidades de cinta y otros dispositivos son establecidos por el administrador del sistema.

Los dispositivos reciben nombres 'lógicos', por ejemplo, para una unidad de cinta el nombre puede ser 'MTA0'. System Interface" (SCSI) que son ampliamente usados en diversas plataformas. El intercambio de datos entre la unidad central de proceso y los periféricos se lleva a cabo a través de los 'buses' normalizados UNIBUS y MASSBUS.

Fuentes

  • Articulo OpenVMS. Descripción. Disponible en:” abacoint.com” . Consultado el 5 de noviembre del 2011
  • Articulo Sistemas Operativos. Disponible en:” elrinconcito.com” . Consultado el 6 de noviembre del 2011
  • Articulo OpenVMS. Disponible en:” alphaworks.com.ar” . Consultado el 6 de noviembre del 2011
  • Articulo (inglés) VMS y OpenVMS. Disponible en:” osdata.com”. Consultado el 4 de noviembre del 2011