El sistema operativo OS/2

  Se trata de un sistema operativo de IBM que intentó suceder a DOS como sistema operativo de los ordenadores personales. Se desarrolló inicialmente de manera conjunta entre Microsoft e IBM, hasta que la primera decidió seguir su camino con su Windows 3.0 e IBM se ocupó en solitario de éste.
  OS/2 se desarrolló primando la robustez, por lo que su adopción fue mucho más amplia en industria que en usuarios particulares.
  Partiendo de la base de que un sistema operativo explota los recursos del equipo informático de uno o más procesadores para ofrecer un conjunto de servicios a los usuarios del mismo, y de que también gestiona la memoria secundaria y los dispositivos E/S en nombre de los usuarios, este sistema operativo debía ser ideal para la automatización de oficinas, proporcionar manejadores gráficos independientes de los dispositivos, que las aplicaciones tuviesen acceso directo a periféricos con gran ancho de banda, ofrecer capacidad multitarea, proporcionar un ambiente adaptado para cada programa y para sus descendientes, además de ofrecer un ambiente protegido para garantizar la estabilidad del mismo.


CARACTERÍSTICAS

  Las características básicas del OS/2 son:
  •   Estabilidad: Su estabilidad sólo es comparable con la de Unix, pudiendo ejecutar decenas de programas de forma simultánea sin degradar su tiempo de respuesta ni su disponibilidad de memoria.
  •   Multitarea y multihilo: La posibilidad de ejecutar varios "hilos" dentro de una misma aplicación. Esto permite una multitarea mucho más eficiente y un mejor desempeño de los programas diseñados para este sistema operativo.
  •   Ejecución de programas DOS y Windows: Debido a la mejor multitarea, mejor manejo de memoria y dispositivos en general, y de descarte de nombres largos y atributos extendidos, bajo espacio en los bloques de asignación de datos (los clusters son de 512 bytes) y fragmentación (casi nula en ambientes normales), y alta velocidad en acceso a los archivos.
  •   WorkPlace Shell: Se trata de un entorno gráfico de escritorio para ordenadores personales. Muy intuitivo, orientado a objetos, extensible y muy consistente; muy integrado con el sistema operativo y especialmente mejorable vía exx o programas de usuario.
  •   Compatibilidad con otras plataformas: Aparte de la ya nombrada capacidad de ejecutar aplicaciones para DOS y Windows 3.x, dispone de una serie de herramientas para ejecutar o portar aplicaciones desde otros sistemas operativos y plataformas. Con las librerías EMX es relativamente fácil portar aplicaciones desde Unix, teniendo desde hace ya años Apache, XFree86 con muchas de sus aplicaciones, la mayoría de las aplicaciones GNU, y mucho más. IBM provee las bibliotecas Open32, que permite proteger zonas vulnerables a ataques del exterior como lo son de forma genérica los sistemas operativos Unix y WindowsNT.

FUNCIONAMIENTO

Multiprocesos
  •   Operativos simples: Un programa a la vez, le ponen trabas externas.
  •   Multiprocesos cooperativo: El programa está en envuelto en conmutaciones hacia delante y hacia atrás.
  •   Multiproceso preventivo: El sistema operativo distribuye el tiempo de la UCP (Unidad Central de Procesamiento) de la mejor forma reduciendo y previniendo problemas en caso de un problema egoísta que requiera de todo el recurso.
  •   Este da como resultado confiabilidad y una alta velocidad de transferencia de archivos de cálculos de hojas de trabajo y formateos a disquetes, todo esto al mismo tiempo.

Multipartes
  Involucra un sólo programa, que puede crear múltiples partes de la ejecución con el fin de registrar su rendimiento.

Protección de procesos
 Un programa puede escribir a memoria reservada por otros programas o el operativo lo que estanca a los demás programas IDEM.
  OS/2 extiende ésta protección a programas de DOS y puede prevenir que programas de Windows puedan dañarse si se emplean en OS/2. No obstante, ejecutando programas nativos Windows en sesiones separadas, ésta protección puede extenderse a ellos.

Multitarea
  En general, la multitarea es donde se puede ejecutar más de programa a la vez, conmutando o rotando.
  Este sistema operativo ofrece la ejecución de hilos múltiples. Los hilos ("thread", en inglés) son similares a los procesos. Los procesos pueden tener varios hilos, cada uno de los cuales comparte espacio de direcciones del proceso. Los procesos tienen prioridades. La UCP siempre se asigna al hilo con prioridad más alta que esté listo para ejecutarse.
  En OS/2 se conoce también la herencia, que no es otra cosa que los árboles, pero con procesos, es decir, existe un proceso padre que puede tener un proceso hijo y así sucesivamente. Cada proceso padre no sabe si su proceso hijo ha terminado o no su ejecución o tarea a realizar, ya que es posible que éste hijo haya delegado su responsabilidad en más hijos.
  1.   PROCESOS:  La llamada Dos ExePgm sirve para ejecutar un proceso hijo; cuando ésta llamada arrojaba un error, el sistema operativo devolvía explícitamente el nombre del objeto que provocaba el problema, podía haber sido un objeto de carga o algún enlace faltante o defectuoso. Con la llamada DosCwait, un proceso padre podía terminar; cuando termina, comienza aquel que esté listo para ejecutarse.  Como ya se ha comentado, en OS/2 existe también la herencia, en la que cada proceso padre desconoce si su hijo ha terminado las instrucciones de un programa; este sistema operativo tuvo en cuenta la posibilidad de que hubieran muchos hilos de ejecución simultáneos en una aplicación.
  2.   HILOS: Se trata de la trayectoria de ejecución de la UCP a través de las instrucciones de un programa. En OS/2 los procesos poseían memoria, archivos, semáforos del sistema, conductos y colas; los hilos contienen datos privados, como sus propias copias de los registros de la UCP: Todos los hilos de un proceso son hermanos con igual categoría, aquí no hay relación padre/hijo; los hilos se podían crear y destruir con mayor rapidez que los procesos; todos los hilos de un proceso tenían acceso a todos los recursos de ese proceso, por ejemplo era posible que varios hilos originaran lecturas y escrituras del mismo archivo empleando el mismo mando de archivo; por lo tanto, los programadores en este sistema operativo utilizaron hilos por diversas razones. Una aplicación frecuente es crear un hilo para trabajo preferente, el cual controla la interacción con el usuario y otro para controlar el trabajo subordinado, que se encarga del grueso de las tareas de apoyo de la aplicación de usuario (por ejemplo, puede asignarse a un hilo la tarea de respaldar en forma periódica y automática la información vital, puede llamar a DosSleep para descansar durante un intervalo de tiempo designado, ser despertado, realizar sus respaldos y dormir otra vez). Una aplicación más común de los hilos múltiples fue para agilizar el procesamiento trasladando la E/S con el procesamiento.
  3.   PLANIFICACIÓN: La creación y el mantenimiento de procesos implica un gasto extremadamente considerable, los hilos están pensados como una forma de bajo gasto extra para llevar a la práctica el paralelismo dentro de un proceso. El planificador entonces, cumple la función de determinar las prioridades, ver su orden para que los procesos sean ejecutados. El hilo de más prioridad se ejecuta todo el tiempo que quiere o hasta que expira su parte de tiempo; enseguida viene el de la segunda prioridad. Un proceso bloqueado que estaba listo para ejecutarse obtendría pues la UCP si su prioridad es más alta que la del proceso en ejecución; el planificador hace que se despachen hilos, no procesos, pero todos los hilos de un proceso tienen la misma prioridad. El proceso ocupado con el teclado está en la categoría interactiva. OS/2 tiende a aumentar la prioridad de los procesos limitados por E/S o a reducir la prioridad de los limitados por UCP. Para asegurar una buena utilización de los dispositivos al mismo tiempo que se mantiene el avance de los procesos limitados por UCP.

Sistema de archivos
  Inicialmente, este sistema operativo poseía un sistema muy simular al DOS, de modo que OS/2 conservaba la compatibilidad ofrecida entonces en aquel tipo sincronización accesible por medio de las funciones Dos ReadAsync y DosWrite Asnys, las cuales requerían de un semáforo que queda en cero cuando se completaba la E/S.
  Por otra parte, OS/2 ofrecía también “particiones ampliadas”, con lo cual es posible considerar a un disco duro como varios, pero de menor tamaño cada uno de los cuales contenía una tabla de asignación de archivos FAT y un sistema de archivos completo.
  Además, este sistema operativo utiliza convenciones comunes para la asignación de nombres a objetos como archivos, semáforos del sistema, memoria compartida con nombre, etc.
  También se debe tener en cuenta que OS/2 utiliza sistemas de archivos instalables ["Installable File Systems" ("IFS"), en inglés] en vez de un sistema de archivos integrado. Un IFS contenía el código necesario para controlar todo un sistema de archivos en un dispositivo, incluyendo todas las tareas comunes de administración de sistema de archivos, como la creación y mantenimiento de directorios y archivos, etc. Los archivos tendrían un formato entonces con un nombre de archivo hasta de 8 caracteres seguido de un punto y de una extensión de 3 caracteres.
Ejemplo de sistema de archivos de OS/2
 (
Imagen de la página de Rob Landley).


Administración de memoria
  El administrador de memoria de OS/2 asigna memoria física y virtual a los procesos y múltiples espacios de dirección protegida.
  Cada referencia a memoria produce una referencia de selector de segmento. El selector de segmento hace referencia a una tabla de descriptor global ["Global Descriptor Table" ("GDT"), en inglés] o una tabla de descriptor local  ["Local Descriptor Table" ("LDT"), en inglés]. Los programas en este sistema operativo sólo pueden tener acceso a la memoria a través de la GDT o la LTD.
  Los descriptores de segmentos de estas tablas contienen tanto la dirección física de cada segmento como su longitud.
  El tamaño máximo de un segmento en el procesador 80286 es 64 k. Luego se creó un segmento gigante que podía estar formado por varios de 64 k.
  En condiciones normales, este sistema operativo asigna la memoria en segmentos, pero puede asignar porciones de segmento por medio de un recurso de “subasignación de memoria”; de este modo, se organizan las solicitudes frecuentes de cantidades pequeñas de memoria de forma más eficiente.
  Hay un compromiso excesivo de memoria cuando el tamaño total de los programas en curso es mayor que la memoria real, algo normal en los sistemas de almacenamiento virtual, OS/2 no incluirá otro proceso si el grado de compromiso de memoria va a ocasionar que halla poca RAM para ejecutar un proceso que se intercambió a disco o poco espacio en disco para intercambiar un proceso y dejar espacio para otros procesos. Los usuarios individuales pueden resolver la operación ineficiente exigiendo menos al sistema o suministrando más memoria o procesadores más rápidos para atender la demanda deseada en forma más eficiente.
  Las rutinas que no son frecuentes deben colocarse en un programa que no sea el principal. En general,  las partes que se utilizan juntas deben aparecer en el mismo segmento y las que no, separadas.

Enlace dinámico
  Mediante el enlace dinámico, un programa puede llamar a una subrutina que no se haya enlazado con su imagen ejecutable. este sistema operativo resuelve automáticamente las referencias ya sea en el momento de la carga o de la ejecución.
  Con el enlace estático, las referencias externas se resuelven por completo en el momento del enlace, antes de la carga o ejecución del programa. Con un enlace dinámico las referencias a los DLL no se resuelven por completo combinando el código, sino que se incluye una referencia para enlace dinámico en el archivo .EXE. Ésta informa al cargador donde puede encontrar el código faltante (el DLL) cuando se cargue el programa enlazado. Esto se llama enlace dinámico durante la carga y requiere que las referencias que va a hacer el programa estén claras cuando éste se escribe y traduce.
  Una ventaja real del enlace dinámico sobre el estático es la gran facilidad de incorporar versiones nuevas de subrutinas.
  Aquí se encuentra el término “filosofía de arquitectura de sistemas abiertos”, pues, el enlace dinámico permite la ampliación del sistema operativo, permitiendo ir mejorando cada vez más.

Comunicación entre procesos
  Los procesos se comunican a través de los recursos de comunicación entre procesos de OS/2. Este sistema ofrece diversas formas de comunicación. Las operaciones utilizan llamadas para crear estas formas de comunicación, las cuales devuelven mandos únicos que pueden emplearse en llamadas para manipular y en última instancia destruir los objetos creados.
  1.   Memoria compartida: La memoria compartida se pone en práctica de dos maneras: con memoria compartida regalada o con memoria compartida nombrada; en el primer caso, el dueño otorga acceso a otro proceso, un proceso crea un segmento y comunica al sistema el selector del segmento y el identificador del proceso que lo compartirá. El proceso suministra el nombre y el tamaño del segmento deseado, y se devuelve un selector de segmento.
  2.   Semáforos: Generalmente, se utilizan para asegurar la exclusión mutua; este sistema operativo maneja semáforos de RAM y semáforos de sistema; los primeros son estructuras de datos de cuatro bytes destinadas para ser usadas por los hilos de un proceso. Cuando están implicados varios procesos se requieren semáforos de sistema para garantizar la integridad, las estructuras de datos de estos semáforos están en la memoria del sistema, de modo que el acceso a ellos es más lento por la necesidad de saltar la frontera del sistema operativo, operación que consume relativamente mucho tiempo. La función habitual de los semáforos es proteger secciones críticas. Es posible que muchos hilos estén esperando la liberación de un semáforo, y cuando éste queda disponible, el hilo con la prioridad de UCP más alta obtendrá el control. Un problema con los semáforos es que en ocasiones no son liberados y, por tanto, quedan huérfanos, situación que podría conducir a un bloqueo mútuo entre procesos que siguen dependiendo de poder obtener el control de los semáforos antes de entrar en sus secciones críticas; esto puede ocurrir por varias razones: Un manejador de señales puede no regresar al punto en el que un hilo fue interrumpido por una señal, lo cual puede evitar la liberación del semáforo; un proceso que ha activado un semáforo puede estar muerto; un proceso puede incurrir en un error fatal; un proceso podría simplemente fallar debido a un error de lógica. Cuando un proceso muere, dejan de existir todos sus semáforos. Cuando muere un proceso dueño de un semáforo, el siguiente proceso que desee utilizar el semáforo recibirá un mensaje que indica la muerte del dueño.
  3.   Conductos anónimos: Se trata de una forma de comunicación de mensajes entre procesos similar a la E/S de archivos. Los conductos anónimos son utilizados por procesos íntimamente relacionados. Son similares a los conductos de UNIX.
  4.   Conductos con nombre: Es un canal de comunicación en serie entre procesos que utilizan las llamadas DosRead y DosWrite para comunicarse. Los usuarios de un conducto con nombre necesitan conocer el nombre del conducto, pero no es preciso que estén relacionados entre sí; estos conductos trabajan tan bien en una máquina local como en una red. Cuando un proceso en un extremo del conducto lo cierra, los escritores reciben un error y los lectores reciben una indicación de fin de archivo.
  5.   Colas: Las colas también se utilizan para la comunicación entre procesos, puesto que emplean el espacio de nombres del sistema de archivos; transfieren mensajes en vez de flujos de bytes; se permiten múltiples escritores; los conductos se leen bajo el régimen PEPS (primero en entrar, primero en salir), pero las colas se pueden leer en diversos órdenes; estas últimas utilizan memoria compartida, de modo que son más rápidas que los conductos para transferencia de altos volúmenes de datos, porque sólo se transfiere un apuntador para los datos, pero no funcionan en una red; generalmente, requieren una programación más rebuscada que los conductos. Un mensaje de cola consiste en el mensaje propiamente dicho, el identificador de proceso del remitente, y un valor de palabra proporcionado por el remitente que será utilizado por los despachadores y los clientes en la forma que consideren apropiada para facilitar la comunicación. Las colas pueden estar ordenadas ya sea por prioridad o por orden de llegada, y después manejarse; el proceso despachador puede buscar en la cola y retirar elementos en cualquier momento y en el orden que desee. Los elementos de una cola son paquetes de mensajes; los datos de las colas se almacenan en segmentos de memoria compartida, los cuales, desde luego, deben ser accesibles para los lectores y para los escritores; el tamaño de las colas puede variar y llegar a ser muy grande, pues los mensajes no están limitados por fuerza a segmentos de 64K, como en el caso de los conductos.
  6.   Señales: Son una forma asíncrona, iniciada por software de comunicación de procesos; como resultado de una señal, se guardan diversos registros de la aplicación en la pila y se inicia en forma automática la ejecución de un manejador de señales; éste guarda cualquier cosa que necesite conservarse. OS/2 maneja tres señales comunes y tres de propósito general. Las comunes son "Ctrl-C", "Ctrl-break" y terminación de programa (lo cual ocurre cuando un proceso padre mata a un proceso hijo), las señales sólo comunican una palabra de información además de su número, pueden arruinar la ejecución de llamadas al sistema y pueden llegar más rápido de lo que pueden ser atendidas, por lo que terminan por perderse. Cuando llega una señal, interrumpe el hilo de un proceso, el proceso llama al manejador de señales con un argumento que recibió del remitente de la señal. Las señales no tienen prioridades. Cuando ocurre una señal habilitada, se introduce el manejador de señales, quizá interrumpiendo a otro manejador.

Administrador de presentación 
  Los ordenadores personales producidos antes de 1984 tenían en general interfaces orientadas al texto, que requerían poco apoyo de la UCP. El desarrollo de interfaces con el usuario orientados al ratón y los gráficos se atribuye en general a la investigaciones realizadas en Xerox PARC (Palo alto Research Center) en los años setenta. Con la aparición de Apple Macintosh, en enero de 1984, la industria se concentró en las capacidades avanzadas de las interfaces gráficas. IBM y Microsoft han respondido al éxito de las interfaces gráficas con la introducción del administrador de presentación para OS/2. El administrador de presentación es la versión para este sistema operativo de Microsoft Windows mejorado; utiliza ventanas, menús, botones, barras de desplazamiento, cuadros de diálogo y otros gráficos para realizar una interfaz amable con el usuario. El Windows original utilizaba ventanas en mosaico (presentadas una junto a otra), en vez de ventanas traslapadas. El administrador de presentación puede recibir sus entradas de un ratón, del teclado, o de los dos. La realización de una interfaz gráfica es mucho más compleja que la de una orientada a textos, pero las ventajas para los usuarios son muchas. En la versión 1.1 de OS/2 se añadieron más de 500 llamadas a funciones adicionales para apoyar la interfaz gráfica; cerca de la mitad son para controlar las ventanas, en tanto que la mayor parte de las restantes apoyan la interfaz para la programación de gráficos, estrechamente relacionadas con el administrador de datos gráficos de IBM. El administrador de presentación es una versión compleja para desarrollar nuevas aplicaciones.

Supervisores de dispositivos
  Al garantizar la compatibilidad con la enorme base de programas de aplicación para DOS, los diseñadores de este sistema operativo decidieron incluir funciones con las cuales los programas podrían examinar y modificar los flujos de datos a los dispositivos. Muchos programas de DOS, por ejemplo, enganchan (editan) vectores de interrupciones para asumir el control cuando llega una interrupción de dispositivo; examinan la interrupción y deciden si desean procesarla, en vez de dejar que pase directamente a DOS. OS/2 incluye supervisores de dispositivos para ofrecer estas posibilidades. Un controlador de impresión por depósito ("spool", en inglés; almacenamiento temporal intermedio al que se transfieren los datos destinados a un dispositivo periférico), podría utilizar un supervisor de dispositivos para interceptar la salida de un proceso a la impresora, grabarla en un depósito de disco y enviarla a la impresora en algún momento adecuado. este sistema operativo no deja que las aplicaciones enganchen vectores de interrupción, lo cual podría ser desastroso en un ambiente multitarea. Un proceso puede llamar a OS/2 con facilidad, pero este sistema operativo no puede llamar en realidad a un proceso, de modo que utiliza una técnica interesante para comunicarse con él: un proceso supervisor debe llamar a OS/2 por medio de sus hilos inmediatamente después de iniciar su intención de convertirse en proceso supervisor. Con ciertos dispositivos pueden existir múltiples supervisores; OS/2 encadena dichos supervisores para que todos puedan percibir el flujo de datos. Los monitores poco eficientes, o un exceso de monitores en la cadena pueden hacer más lento el trabajo de un dispositivo. Los monitores de dispositivos no deben suspender o bloquear; deben escribirse y probarse con cuidado, ya que por razones obvias no deben contener errores.



Integridad de los datos
  Este sistema operativo ofrece compartimiento de archivos y bloque de registros para proteger las secciones críticas que ponen al día archivos y registros; con el compartimiento de archivos el dueño puede especificar si otros pueden leerlos o escribir en ellos, puesto que las características de compartimiento de archivos y bloqueo de registros limitan el acceso de todos los demás procesos, aunque éstos intenten cooperar. OS/2 coloca en búferes los datos que se van a grabar en disco, de modo que cuando se cae el sistema es posible que algunos datos estén todavía en los búferes y no en el disco. El presente sistema operativo incluye un mecanismo de escritura completa para hacer que todas las escrituras que utilizan un mando de archivo especificado se grabe en disco antes que DosWrite regrese al solicitante.

Servicios de cronómetros
  OS/2 posee varias características que ayudan a las aplicaciones a supervisar el tiempo real con una precisión razonable. En la versión 1.0, éstos servicios se basan generalmente en una interrupción periódica de reloj del sistema de 32 Hz. (es decir, apróx. 30 interrupciones por segundo); esta frecuencia es apropiada para cronometrar eventos a nivel humano, pero demasiado burda para cronometrar eventos que ocurren en velocidades de ordenador. Sea cual sea la definición de los cronómetros en los sistemas futuros, el empleo de planificación apropiativa significa que un hilo en espera de un evento de cronómetro quizá no se ejecute inmediatamente de todos modos, si allí los de mayor prioridad que estén listos para ejecutarse. El programa puede determinar la duración de un tic del reloj empleando la llamada DosGetInfoSeg para obtener acceso al segmento global, que contiene, entre otros, este dato para todo el sistema. DosTimerAsync trabaja en forma asíncrona; la llamada recibe un intervalo y un mando de un semáforo de sistema y regresa de inmediato; el semáforo de sistema se apaga cuando expira el tiempo; el proceso puede escrutar el semáforo para determinar si ya expiró el tiempo o puede bloquearse de acuerdo con el semáforo y esperar a que lo despierten. Las aplicaciones que requieran más precisión que la ofrecida por estas alternativas deberán hacer referencia a los valores de tiempo en el segmento de información global; las aplicaciones que necesiten responder con rapidez a los tiempos fuera deberán asignar un hilo de alta prioridad para el manejo de eventos de cronómetro; sin embargo, el grueso de su trabajo deberán realizarlo con hilos de prioridad normal.

Controladores de dispositivos
  Los controladores de dispositivos encapsulan sus dispositivos y la información específica para ellos con objeto de que un programa que simplemente desee leer datos de un dispositivo o escribirlos en él no necesite preocuparse por los detalles de su operación.
  Los controladores de dispositivos podrían ser parte del sistema operativo, pero eso requeriría versiones nuevas del sistema operativo cada vez que apareciera un nuevo dispositivo. OS/2 instala manejadores de dispositivos en el momento del arranque, lo cual facilita la incorporación de dispositivos nuevos en un sistema OS/2.
  Cada controlador de dispositivos del presente sistema operativo tiene una rutina de estrategia de dispositivo y una rutina de interrupción de dispositivo. La rutina de estrategia pone en cola la solicitud y, si el dispositivo está disponible, inicia la E/S. La rutina de interrupción maneja la interrupción de terminación de E/S; mantiene ocupado el dispositivo iniciando la siguiente solicitud en espera, asienta la terminación de E/S y desbloquea los hilos que estaban esperando a que se completará esa E/S.
  Los controladores de dispositivos se ejecutan con privilegio en el anillo cero, de modo que no deben tener errores, pues podrían destruir el sistema. Los controladores de dispositivos determinan si el acceso a un dispositivo puede obtenerlo un solo proceso a la vez o múltiples proceso simultáneos.
  OS/2 es reentrante para que muchos procesos puedan ejecutar su código simultáneamente. El planificador de este sistema operativo no despojará de la UCP a un hilo que se esté ejecutando en el núcleo. Es preciso proteger las secciones críticas dentro del núcleo.
  Los controladores son para dispositivos en modo de caracteres o bien para dispositivos en modo de bloques. Los dispositivos en modo de caracteres llevan a cabo la E/S en forma síncrona; los dispositivos en modo de bloques pueden realizar la E/S en forma asíncrona; los controladores de dispositivos de bloques de OS/2 ponen en cola las solicitudes que llegan y organizan las colas para reducir al mínimo el movimiento de las cabezas del disco.
  Los controladores de dispositivos también administran los dispositivos que controlan. Se les llama en cada operación de abrir o cerrar.
  Los controladores de dispositivos de este sistema opertativo se escriben en modo dual y se dice que son bimodales, lo cual significa que éstos están diseñados para ejecutarse en modo real o en modo protegido.
  1.   ERRORES DUROS: Se arreglan suspendiendo la operación, exhibiendo un mensaje y esperando que el usuario realice una operación apropiada, y luego continúa. En OS/2 es difícil determinar la naturaleza del error, porque puede provenir de cualquiera de todos los procesos. Un ejemplo clásico es dejar abierta la puerta de disco flexible, sabiendo que esta deba estar cerrada para que el sistema pueda continuar.
  2.   SERVICIO DEL AYUDANTE DE DISPOSITIVOS: Como los controladores de los dispositivos se ejecutan en el núcleo, no pueden utilizar las llamadas a las aplicaciones de este sistema operativo; en su lugar, pueden utilizar un conjunto especial de rutinas del ayudante de dispositivos, que son interfaces con servicios de bajo nivel del núcleo para atender a los dispositivos. Los servicios del ayudante de dispositivos son: Administración de colas (los controladores de dispositivos pueden encadenar paquetes de solicitudes de E/S para formar una lista ligada y administrar los búferes circulares de caracteres empleando con flujos de datos en serie), servicio de sincronización (los controladores de dispositivos pueden sincronizar su operación con los hilos), servicio de administración de memoria (asigna o libera memoria), servicio de administración de procesos (los manejadores pueden bloquear y desbloquear hilos para llevar a cabo E/S traslapada), servicio de administración de interrupciones (los controladores pueden recibir interrupciones de los dispositivos), servicio de cronometría (pueden especificar rutinas para manejar los tics del reloj), servicios de supervisores (los controladores de dispositivos orientados a caracteres pueden manejar los supervisores de dispositivos de OS/2).
  3.   MECANISMO DE PRIVILEGIOS DE E/S: Conceder a las aplicaciones el derecho de obtener acceso directo a los dispositivos puede dar como resultado transferencias a muy alta velocidad, pero puede poner en peligro la estabilidad del sistema y provocar conflicto entre aplicaciones que deseen controlar el dispositivo al mismo tiempo. Este sistema operativo cuenta con un mecanismo de privilegio de E/S para manejar estas cuestiones. Con este mecanismo un proceso puede solicitar permiso a un controlador de dispositivos para tener acceso directo al dispositivo y a su memoria dedicada o de correspondencia. Lo anterior tiende a hacer a las aplicaciones dependientes de los dispositivos.
 
Caja de compatibilidad con DOS
  Con OS/2 se puede ejecutar la enorme base instalada de aplicaciones de DOS. Para manejar DOS, el presente sistema operativo ofrece lo que se denomina grupo de pantalla de modo real (o caja de compatibilidad, o caja 3.x). Esto suministra a un programa el entorno de un PC 8086 donde se ejecuta DOS 3.3. Los programas que corren bajo DOS se ejecutan en modo real. De hecho, OS/2 cambia a modo real para ejecutar los programas de DOS en vez de tratar de emular el modo real estando en modo protegido (lo cual resulta lento).
  Este sistema operativo designa un grupo de pantalla como grupo de pantalla de modo real.
  El usuario puede cambiar el entorno de modo protegido escogiendo un grupo de pantalla distinto. La versión 1.0 de OS/2 maneja un solo tipo de pantalla de modo real. Las versiones posteriores quizá manejen múltiples grupos de pantalla de modo real, cosa que es posible con el 80386.
  El procesador puede cambiar de modo protegido a modo real por medio de una técnica que, en esencia, simula un restablecimiento total del sistema.

Configuración del sistema
  El usuario puede adaptar a sus necesidades el entorno de OS/2 incluyendo mandatos apropiados en el archivo CONFIG.SYS. El presente sistema operativo busca el archivo CONFIG.SYS en el momento de la iniciación en el archivo raíz de la unidad de disco de arranque. El archivo ya viene con valores apropiados en general para los sistemas OS/2, pero los usuarios pueden querer adaptarlo para ajustar sus sistemas a un rendimiento óptimo con aplicaciones específicas.

Avíos para desarrollo de sistemas de OS/2
  La industria de la computación personal depende de un flujo constante de aplicaciones de software potentes e innovadoras, desarrolladas por proveedores independientes de software. Microsoft ofrece los avíos para desarrollo de sistemas a fin de fomentar y facilitar el desarrollo de programas independientes.
  Una versión reciente de los avíos incluye OS/2, Windows y el instrumental de este último, un compilador optimizador de Microsoft C y el macro ensamblador de Microsoft, que puede producir programas DOS en modo real o programas OS/2 en modo protegido, diversos programas de utilidad general y muestras de programas, y el administrador de presentación.

Manejo de errores y excepciones

  La llamada Dos Beep genera un sonido de aviso con la frecuencia y duración especificadas; emitiendo un bip, los programas pueden indicar al usuario que ocurrió un error. Del mismo modo otras llamadas cumplían funciones específicas, como especificar o registrar la dirección de rutina de manejo que debe utilizarse cuando ocurre cierto tipo de excepción de máquina, etc.

VERSIONES

Desde su aparición, este programa ha desarrollado las siguientes versiones:
  •   1.0: Apareció en 1987 y era de 16 bits, aunque trabajaba exclusivamente en el modo protegido del procesador Intel 80286. Poco después apareció la versión 1.1, la cual incorporaba la primera versión del Presentation Manager, el gestor de ventanas de OS/2, con una apariencia idéntica a la del por aquel entonces inexistente Windows 3.0. Dos versiones nuevas aparecieron poco después, la 1.2 y 1.3, también de 16 bits. Fue entonces cuando comenzaron las discusiones entre IBM y Microsoft, pues la primera quería desarrollar una versión de 32 bits para los procesadores Intel 80386 y posteriores, mientras que la segunda proponía mejorar la actual de 16 bits.
  •   2.0: IBM publicó OS/2 versión 2.0 en 1992. Esta versión suponía un gran avance frente a OS/2 1.3. Incorporaba un nuevo sistema de ventanas orientado a objetos llamado Workplace Shell como sustituto del Presentation Manager, un nuevo sistema de ficheros, HPFS, para reemplazar al sistema de ficheros FAT de DOS usado también en Windows y aprovechaba todas las ventajas de las capacidades de 32 bits del procesador Intel 80386. También podía ejecutar programas DOS y Windows en multitarea, ya que IBM había retenido los derechos para usar el código de DOS y Windows como resultado de la ruptura. Desgraciadamente, su estabilidad era escasa debido a los problemas que tuvo IBM para sacarla en solitario. A ésta le siguieron las versiones 2.1 y 2.11, ofreciendo esta última un nivel de estabilidad extremadamente bueno.
  •   Warp 3: A mediados de 1994, IBM presentó OS/2 3.0, también denominado OS/2 Warp, el cual se vendía en 20 disquetes de 3.5 pulgadas; esta versión poseía capacidades multitarea, mejoró notablemente el rendimiento en máquinas con 4 MB en la memoria RAM (mínima cantidad de memoria para poder ejecutarlo) y añadió un kit de conexión a Internet, una versión reducida del protocolo TCP/IP de las versiones para servidor y ordenador de oficina; esta versión fue muy publicitada en televisión, haciendo hincapié en sus ventajas sobre Windows 3.11; fue, además, el primer sistema operativo que ofrecía conexión a Internet, a través de los puntos de acceso de IBM Global Network, red que fue más tarde vendida a AT&T y ahora forma parte de su área de negocios denominada AT&T Business. Poco después aparecía Warp Connect, con el protocolo completo TCP/IP y conectividad a sistemas NetBIOS. Era un producto muy estable que se usó en varios modelos de cajero automático a nivel mundial. Entre las múltiples ventajas sobre su contemporáneo (si bien el OS/2 estuvo a la venta mucho antes) Windows 95, estaban la multitarea expulsiva con todas las aplicaciones ya fueran DOS o Windows, de 16 o 32 bits. Windows 95 sólo podía hacer esto mientras no se ejecutaran aplicaciones Win16, momento en el que la multitarea cooperativa tomaba el control. Windows 95 nunca fue capaz de hacer multitarea expulsiva con aplicaciones DOS de 16 bits. Este sistema operativo emulaba el Windows 3.11, por así decirlo, y el DOS. Además, cada sesión virtual de DOS podía tener su propio AUTOEXEC.BAT y CONFIG.SYS, algo impensable en un producto de Microsoft. Se podían ejecutar varias de estas sesiones, y todas corrían en la multitarea expulsiva (preemptive) del OS/2.
    Ejemplo de Warp
    (imagen de Quora).

  •   Warp 4: En 1996 apareció OS/2 Warp 4, que incluyó el protocolo TCP/IP completo y múltiples herramientas de Internet, así como asistentes inteligentes y adecuada estética. Casi coincidiendo su aparición en el mercado con la del sistema operativo de Microsoft, Windows 95, IBM llevó a cabo desde este momento y aún mantiene una política de desapego por su propio producto que provocó las críticas de amplios sectores de la comunidad de usuarios. Fue presentada la versión para servidor llamada OS/2 Warp Server for e-business, versión 4.5 y la versión cliente OS/2 Warp 4.
  •   eComStation: Serenity System International en el año 2001 realizó un acuerdo con IBM, y le fue permitido crear el sistema operativo eComStation basado en OS/2 Warp Convenience Pack; Serenity realizó una serie de cambios al sistema, agregando mejoras y más aplicaciones; la compañía estableció entre sus objetivos una mayor atención a las demandas de los usuarios. Así, eComStation integra la última versión del producto original de IBM (los llamados Convenience Package) con otros productos que IBM distribuye separadamente por algún motivo, como controladores USB y diversos desarrollos de software, muchos de ellos de código abierto, para ofrecer al usuario un sistema actualizado, más completo y sencillo de instalar que el original. A finales de 2005 IBM retiró OS/2 del mercado. En 2005 Serenity Systems y Mensys presentaron eComStation 1.2R con grandes mejoras respecto a las versiones anteriores y la versión beta 3 de eComStation 2.0 fue presentada en septiembre de 2006. Dispone de arranque desde particiones JFS y otras mejoras.
  •   ArcaOS: Arca Noae, LLC licenció a IBM Warp 4 para generar una nueva versión del sistema​ bajo el nombre de desarrollo de "Blue Lion". Entre las diferencias que hubo con respecto a eComStation o a Warp 4 se encuentra el tipo de versiones con la que fue lanzado, una versión comercial y otra personal. Además, han existido versiones de mantenimiento menores.
  Espero que la presente entrada haya sido interesante para el lector. Si es así, aguardo que éste la comente y/o la comparta, por favor.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.