ÍNDICE Índice.. 1 Introducción... 2 Sistemas Operativos.... 3 Versiones de OS/2.. 4 Compatibilidad del Sistema Operativo os/2 6 Funcionamiento del Sistema Operativo os/2..... 7 Protección de Procesos.. 8 Sistema de Archivos 10 Administración de Memoria.... 11 Enlace Dinámico.... 12 Administrador de presentación y VIO... 15 Supervisores de Dispositivos 16 Integridad de los Datos.. 17 Manejadores de Dispositivos. 18 La Caja de compatibilidad con DOS. 20 Configuración del Sistema. 21 El Pasado de os/2 22 El Futuro de os/2 23 Comparación del os/2 con uno de los más modernos Sistemas Operativos: Windows 98. 25 Conclusión. 26 Bibliografía. 27 NOTA: Este índice no muestra todo el contenido del informe, sólo los puntos más importantes de cada página. INTRODUCCIÓN 1 Un sistema operativo explota los recursos de hardware de uno o más procesadores para ofrecer un conjunto de servicios a los usuarios del sistema operativo. También gestiona la memoria secundaria y los dispositivos E/S en nombre de los usuarios. OS/2 es un sistema operativo desarrollado con la ambición de satisfacer las necesidades de muchos usuarios así como mejorar a los sistemas operativos que antes de él se habían creado. Los objetivos principales de los diseñadores de OS/2 fueron crear un sistema operativo 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, ofrecen 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 programa. OS/2 fue diseñado en un principio por Microsoft con ayuda de IBM con el objetivo de reemplazar a MS−DOS, cosa que no sucedió, tras tener OS/2 sus propias características favorables como: uso real de memoria, ejecución en modo protegido y soporte de multiprogramación en forma elegante; no fue finalmente aceptado por los usuarios. SISTEMAS OPERATIVOS OS/2 es un sistema operativo multitarea para PCs creado en la década pasada, pero que no ha perdido su vigencia, bastante usado por empresas en aplicaciones críticas, servidores, comunicaciones (el año pasado se calculaba que mas del 90% de los cajeros automáticos del mundo usaban como sistema operativo a OS/2) y por usuarios particulares. Entre otras cosas, provee Estable − Su estabilidad sólo es comparable con la de Unix, y puede correr decenas de programas de forma simultánea sin degradar su performance ni su disponibilidad de memoria. Multitarea y Multithreading − La posibilidad de ejecutar varios "hilos" dentro de una misma aplicación. Esto permite una multitarea mucho mas eficiente y un mejor desempeño de los programas diseñados para el. Ejecución de programas DOS y Windows − "Mejor Windows que Windows" fue una frase que IBM usó mucho hace unos años para describirlo. Dada la mejor multitarea, mejor manejo de memoria y dispositivos en general, y de dispmitiendo nombres largos y atributos extendidos, bajo slack space (los clusters son de 512 bytes) y fragmentación (casi nula en ambientes normales), y alta velocidad en acceso a los archivos. WorkPlace Shell − En mi opinión, el mejor desktop para computadoras personales (y no tanto) que existe hasta la fecha. Muy intuitivo, orientado a objetos, extensible y muy consistente, muy integrado con el sistema operativo y especialmente potenciable vía exx o programas de usuario. Aún no he encontrado algo que se le compare ni para Macintosh, Windows 95/NT, o XWindows que se le acerque. Compatibilidad con otras plataformas − Aparte de la ya nombrada capacidad de correr de forma inmejorable 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 aplrientado a objetos, extensible y muy consistente, muy integrado con el sistema operativo y especialmente potenciable vía exx o programas de usuario. Aún no he encontrado algo que se le compare ni para Macintosh, Windows 95/NT, o XWindows que se le acerque. Compatibilidad con otras plataformas − Aparte de la ya nombrada capacidad de correr de forma inmejorable 2 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 mas. IBM provee las bibliotecas Open32, que permiulnerables a ataques del exterior como lo son de forma genérica los sistemas operativos Unix y WindowsNT. VERSIONES OS/2 OS/2 1.0 (1987): Diseñado originalmente por Microsoft con la ayuda de IBM. Cuando el procesador 286 era el último y más grande chip. Tras esto, Microsoft introduce OS/2 1.0 1987; este corre en modo texto programas extremadamente poderosos. OS/2 1.1 (1988) −1.3(1991): Incluyó administrador de presentación, alta ejecución del sistema de archivos que permite nombre de archivos largos. OS/2 2.0 (1992): Interfaz con el usuario de forma más acogedora, por ejemplo par imprimir sólo se debe arrastrar el icono del objeto sobre la impresora. 32 bits, 386 basado en Kernel, produjo limitaciones como nunca antes. OS/2 2.1 (1993): Introdujo un sistema gráfico de 32 bits con algunas mejoras en algunos aspectos en velocidad y muchos más manejadores; − Multitarea presentación Manager (MMPM/2) • Lista estándar de aplicaciones • Utilitarios OS/2. OS/2 WARP 3.0 (1994): Producto refinado y fulido que lució un Kernel mucho más rápido y nuevas rutinas de intercambio con mayor velocidad. OS/2 tubo el frenesí de Internet de 1995 con su Internet Acceskit. OS/2 WARP CONNECT (1995): OS/2 en el mango punto a punto y estaciones de trabajo cliente OS/2 por diseño tiene incluido en el Sistema Operativo la gestión de redes. Es conocido como un sistema confiable para clientes de redes o para pequeños servidores. OS/2 WARP SERVER (1996): El mayor Sistema Operativo de redes muy eficiente y requiere menos Hardware que sus equivalentes 3 funcionales NT y UNIX. OS/2 WARP 4.0 O MERLIN (1996): Segunda versión de OS/2 Warp. Nunca existirá una versión OS/2 sola siempre será un servicio de cliente y redes de punto en todas las futuras versiones de OS/2. COMPATIBILIDAD DEL SISTEMA OPERATIVO OS/2 OS/2 a la multiprogramación es compatible con todos los programas DOS. Incluye su propia máquina virtual de DOS, es decir, puede ejecutar programas DOS desde dentro del OS/2 (sin tener que reiniciar a modo MS−DOS). La elasticidad de DOS en ventana, en pantalla completa o sesiones DOS de disquete. Ésta última consiste en que sin abandonar OS/2 se puede ejecutar cualquier versión de MS−DOS real a partir de un disquete de arranque y se puede alternar entre OS/2 y esta sesión MS−DOS sin reiniciar el ordenador. Además es capaz de ejecutar simultáneamente aplicaciones DOS, WINDOWS Y OS/2. Ésta hace que OS/2 se convierta en una buena elección para el usuario ya que hay muchas opciones disponibles en software para seleccionar y usar. FUNCIONAMIENTO DEL SISTEMA OPERATIVO OS/2 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 Cpu de la mejor forma reduciendo y previniendo problemas en caso de un problema egoísta que debe utilizarse 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. Un programa 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 DOS y puede prevenir que programas Windows puedan dañarse ellos mismos bajo OS/2, pero ejecutando programas nativos Windows en sesiones separadas, ésta protección puede extenderse a ellos. Microsoft e IBM en 1985, firmaron un acuerdo en conjunto, para desarrollar un sistema operativo multitarea de aplicación general que aprovecharía el modo protegido del 80206,el cual proporcionaba ambientes seguros para procesos individuales. El nombre del producto se cambió a DOS versión 5.0, después a CP/DOS y por 4 último a OS/2. Con dicho nombre, los objetivos principales de sus diseñadores fue crear un sistema operativo ideal para la automatización de oficinas, proporcionar manejadores de gráficos independientes de los dispositivos, lograr que las aplicaciones tuvieran acceso directo a periféricos con gran ancho de banda, ofrecer capacidad multitarea y ofrecer un ambiente protegido para garantizar la estabilidad del sistema. MULTITAREA Básicamente la multitarea es en donde se puede ejecutar más de programa a la vez, conmutando o rotando. OS/2 ofrece ejecución de hilos múltiples. Los hilos (thread) son similares a los procesos. Los procesos pueden tener varios hilos, cada uno de dichos hilos 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, pues, puede 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, OS/2 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 termia 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 proclas instrucciones de un programa. OS/2 tomó en cuenta la posibilidad de que hubieran muchos hilos de ejecución simultáneos en una aplicación. 2. HILOS Es 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. Los programadores en ambiente OS/2 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 5 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 fueran ejecutados. El hilo de más prioridad se ejecuta todo el tiempo que quiere o hasta que expira su tajada 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 u a reducir la prioridad de los limitados por UCP. Para asegurar luna buena utilización del os dispositivos al mismo tiempo que se mantiene el avance de los procesos limitados por UCP. EL SISTEMA DE ARCHIVOS Al comienzo os/2 poseía un sistema muy simular al DOS de modo de conservar la compatibilidad OS/2 ofrecerá entonces en aquel tipo sincronía accesible por medio de las funciones Dos ReadAsync y DosWrite Asnys, ambas requerían de un semáforo que queda en cero cuando se completaba la e/s. 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 FAT, tabla de asignación de archivos y un sistema de archivos completa. Os/2 utiliza convenciones comunes para la asignación de nombres a objetos como archivos, semáforos del sistema, memoria compartida con nombre, etc. Os/2 utiliza sistemas de archivos inestalables (installable file systems,IFS)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. ADMINISTRACION 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 GDT(tabla de descriptor global) o una LDT(tabla de descriptor local). Los programas en os/2 solo pueden tener acceso a la memoria a través de la GDT o la LTD. 6 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 creo un segmento gigante que podía estar formado por varios de 64 k. En condiciones ordinarias OS/2 asigna la memoria en segmentos, pero puede asignar porciones de segmento por medio de un recurso de subasignación de memoria, de este modo, la solicitudes frecuentes de cantidades pequeñas de memoria en forma mas 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 par ejecutar un proceso que se intercambio 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 Con enlace dinámico, un programa puede llamar a una subrutina que no se haya enlazado con su imagen ejecutable. OS/2 resuelve automáticamente las referencias ya sea en el momento de la carga o de la ejecución. Con 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 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 larga 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 llamadas 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á. 7 El proceso suministra el nombre y el tamaño del segmento deseado, y se devuelve un selector de segmento. 2.− Semáforos: Los semáforos se utilizan normalmente para asegurar la exclusión mutua. OS/2 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 aplicación normal de los semáforos es proteger secciones críticas. Es posible que muchos hilos estén esperando la liberación de un semáforo, 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 mutuo 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 ser 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: Los conductos anónimos son 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: Un conducto 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 saber 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. 8 5.− Colas: Las colas también se utilizan para la comunicación entre procesos. Utilizan 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, pero las colas se pueden leer en diversos órdenes. Las colas 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. Por lo regular, 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: Las 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 conservase. 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ñale 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 menejador 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. EL ADMINISTRADOR DE PRESENTACIÓN Y VIO Los computadores 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 OS/2 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 producto Microsoft 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. 9 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 OS/2 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; examina 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 Spool, podría utilizar un supervisor de dispositivos para interceptar la salida de un proceso a la impresora, grabarla en un spool de disco y enviarla a la impresora en algún momento adecuado. OS/2 no deja que las aplicaciones enganche vectores de interrupción, lo cual podría ser desastroso en un ambiente multitarea. Un proceso puede llamar a OS/2 con facilidad, pero OS/2 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, pues por razones obvias no deben contener errores. INTEGRIDAD DE LOS DATOS OS/2 ofrece compartimiento de archivos y bloque de registros para proteger las secciones criticas 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. Las características de compartimiento de archivos y bloqueo de registros limitan el acceso de todos los demás procesos, ya sea que éstos intenten cooperar. OS/2 coloca en buffers los datos que se van a gravar en disco, de modo que cuando se cae el sistema es posible que algunos datos estén todavía en los buffers y no en el disco. OS/2 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 computador. 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. 10 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. MANEJADORES DE DISPOSITIVOS Los manejadores 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 detalle de su operación. Los manejadores 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 manejador de dispositivos de OS/2 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 manejadores de dispositivos se ejecutan con privilegio en el anillo cero, de modo que no deben tener errores, pues podrían destruir el sistema. Los manejadores 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 OS/2 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 manejadores 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 manejadores 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 manejadores de dispositivos también administran los dispositivos que controlan. Se les llama en cada operación de abrir o cerrar. Los manejadores de dispositivos de OS/2 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: Por ejemplo dejar abierta la puerta de disco flexible, sabiendo que esta deba estar cerrada para que el sistema 11 pueda continuar. Estos se arreglan suspendiendo la operación, exhibiendo un mensaje y esperando que el usuario realice una operación apropiada, y luego continua. En OS/2 es difícil determinar la naturaleza del error, porque puede provenir de cualquiera de todos los procesos. 2.−SERVICIO DEL AYUDANTE DE DISPOSITIVOS: Como los manejadores de los dispositivos se ejecutan en el núcleo, no pueden utilizar las llamadas a las API de OS/2. En vez de ello, pueden utilizar un conjunto especial de rutinas del ayudante de dispositivos. Estas son: interfaces con servicios de bajo nivel del núcleo para atender a los dispositivos. Servicios del ayudante de dispositivos: • Administración de colas: los manejadores de dispositivos pueden encadenar paquetes de solicitudes de E/S par formar una lista ligada y administrar los buffer circulares de caracteres empleando con flujos de datos en serie. • Servicio de sincronización: Los manejadores 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 manejadores pueden recibir interrupciones de los dispositivos. • Servicio de cronometría: pueden especificar rutinas para manejar los tics del reloj. • Servicios de supervisores: los manejadores 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. OS/2 cuenta con un mecanismo de privilegio de E/S para menejar estas cuestiones. Con este mecanismo un proceso puede solicitar permiso a un manejadora 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. LA CAJA DE COMPATIBILIDAD CON DOS Con OS/2 se puede ejecutar la enorme base instalada de aplicaciones de DOS. Para manejar DOS, OS/2 ofrece lo que se denomina grupo de pantalla de modo real (o caja de compatibilidad, o caja 3.x). Esto suministra a un a un programa el ambiente 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). OS/2 designa un grupo de pantalla como grupo de pantalla de modo real 12 El usuario puede cambiar el ambiente 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 ambiente de OS/2 incluyendo mandatos apropiados en el archivo CONFIG.SYS. OS/2 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 archivo 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, Microsoft Windows y el instrumental de Windows, 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. EL PASADO DE OS/2 El futuro o la vida de os/2 comenzó a mediados de 1991 cuando IBM decidió que el os/2 2.0 dispondría de del Workplace shell y de soporte integrado Seamless de Windows, debido a esta decisión el os/2 2.0 no estuvo disponible ese año ni el siguiente, este retraso fue debido a que durante abril de 1992 Microsoft presento Windows 3.1 y con esto el os/2 ya no podría reemplazar al Dos/Windows, debido a todo esto se penso lanzarlo al mercado como versión os/2 1993 y mantener el gestor de programas del os/2 1.3 un año mas; pero todo no era tan sencillo, esta versión era muy parecida al Windows 3.0, este se ejecutaba sobre el DOS , las ventajas de este os/2 radicaban principalmente en el soporte de multitarea, no se colgaba, podía ejecutar programas para Windows, funcionaba en entorno de redes, era estable y tenia buen rendimiento. Os/2 estuvo disponible en junio de 1992 estando ya en las tiendas Windows 3.1 siendo mas rápido , estable y con un buen soporte de sonido, algo novedoso en esos tiempos, en junio de 1993 se presento os/2 2.1 que tenia la solución a todas las fallas a los problemas de la versión anterior, además tenia el primer juego comercial Galactic Civilitions. IBM quiso conquistar el mercado de consumo y el resultado de esto Fue el os/warp 3, al momento de lanzar (octubre de 1994) este producto no estaba totalmente probado y 13 presento algunas fallas tales como el soporte de Windows, el fichero config.bak, al ser distribuido también presento problemas de instalación, paralelo a este lanzamiento Microsoft presento la gran beta de Chicago que mas adelante se convertiría en Windows 95. El próximo paso de os/2 fue el nuevo producto de IBM os/2 para Power PC, por esos días IBM ya era una empresa consolidada y con un gran futuro, gastaba mucho dinero en marketing y en atraer nuevos socios. Los años 1994 y 1995 fueron realmente buenos para los desarrolladores de os/2 captando hasta el 20 % de la cuota de l mercado. EL FUTURO DE OS/2 OS/2 no pudo convertirse en el sistema operativo dominante del mundo del PC, pero se sabe que los sistemas de computación personal que derivarán de OS/2 serán cada vez mayores y más complejos que la edición estándar 1.0, por lo que cada vez más difícil predecir cuando ocurrirán los eventos decisivos. Como los diseños futuros de software afectarán a tanta gente que trabaja con tan diversas aplicaciones en áreas geográficas tan variadas, el proceso de especificación mismo se está volviendo cada vez más prolongado. En la actualidad, los ISV de OS/2, las compañías que desarrollaran software para OS/2, están en crisis, no podrán sobrevivir mucho tiempo como desarrolladores únicos de software para OS/2. Durante los próximos pocos años es de espera que IBM se concentrará en aprovechar al máximo la arquitectura del 80386. El 80386 ofrece las características de protección del 80286, paginación y segmentos de hasta 4 millones de kilobytes. En el 80386, los programas pueden utilizar segmentos tan grandes que pueden ejecutarse en un solo segmento de datos y de procedimiento. La arquitectura 80836 ofrece modo real virtual que ejecuta programas en un modo real compatible con el 8086, además puede permitir o prohibir el acceso de E/S puerto por puerto; esto podría ser aprovechado en versiones futuras de OS/2 para ofrecer sistemas más seguros. El aspecto de un computador personal contará con un almacenamiento primario enorme, quizá del orden de 100MB. Tendrá procesadores paralelos de alta velocidad y en un momento dado, paralelismo masivo. Utilizará discos ópticos regrabables con capacidades de decenas de miles de millones de bytes. Su pantalla será de alta definición en color, con calidad casi fotográfica. Los listados tendrán verdadera calidad de imprenta con impresoras láser de ultra alta definición y la impresión en color será cosa de todos los días. La comunicación a ultra alta velocidad a través de fibras ópticas, las máquinas podrán comunicarse a velocidad de computador, en vez de las velocidades lentas de las líneas telefónicas actuales. Las aplicaciones podrán trabajar sin obstáculos con otras aplicaciones, con el sistema operativo y con sistemas remotos. Se ofrecerán cada vez más funcionalidad de aplicaciones dentro del sistema operativo mismo. Las interfaces gráficas avanzadas serán la norma y las innovaciones en las interfaces con el usuario facilitarán cada vez más que el público en general utilice los computadores. En última instancia. Los usuarios podrán adquirir los equipos y programas que necesiten de muchas compañías diferentes. Todas estas tendencias afectarán la evolución de OS/2 y de sus competidores y sucesores. Se podría decir que OS/2 dominará en los PS/2 en tanto que Unix dominará en el mercado de las estaciones de trabajo avanzadas y de los sistemas abiertos. COMPARACION DEL OS/2 CON UNO DE LOS MÁS MODERNOS SISTEMAS OPERATIVOS: 14 WINDOWS 98' La solides, fiabilidad, compatibilidad hacia atrás, facilidad de uso, aumento en velocidad de trabajo, son algunas de las metas insaciables propuestas por los programadores de sistemas operativos, de hecho, la modernidad y tecnología son el lema fundamental, el propósito más reglamentario para llevar una vida mas fácil. Es así, como CP/M, uno de los primero sistemas operativos que se utilizaba en los microordenadores, MS−DOS, en los ordenadores personales han existido muchos mas. Unos que dependen una versión anterior, otro completamente distintos, otros con una penetración global en el mercado muy limitada, como es el caso de Unix, OS/MAC y al sistema que atendemos en el informe OS/2 Desde que comenzó la familia de Windows (Windows 3.X), el que en sus entonces provocó una pequeña revolución en el manejo de ordenadores, ya no hacia falta utilizar esa pobre pantalla negra de texto en al que siempre había que teclear comandos complejos, ahora con Windows 98 apareció un mundo nuevo, una nueva visión de la informática, mucho más adaptada al ser humano. Windows 98 consolida entonces todos los objetivos propuestos, además de ventaja s adicionales, especialmente en lo que se refiere al mundo de Internet, el bus serie universal (USB universal serial bus), el sistema FAT 32, tabla de asignación de archivos (file allocation table de 32 bits) el DVD, prestaciones multimedia, tecnología de ultima hora, derectx, para los juegos, los videos y los sonidos tengan la mejor calidad posible. CONCLUSIONES Luego de analizar e investigar el tema tratado, podemos decir concretamente que la tecnología va de acuerdo a las necesidades del diario vivir; que, cada día van naciendo ideas nuevas, nuevas fórmulas, nuevas técnicas, y por supuesto, según nuestro tema en cuestión, nuevas versiones de los llamados Sistemas Operativos, en nuestro caso, el denominado OS/2. Es así como llegamos al presente. Hoy en día, están disponibles Windows me y Windows XP, las más recientes creaciones en Sistemas Operativos. Además de todos los beneficios de productividad y eficacia que presentaba dicho sistema, es importante señalar los siguientes puntos más destacables: OS/2 ofrece u ofrecía multitarea para poder controlar varias actividades en forma simultánea. El usuario podía estar trabajando con una aplicación, imprimiendo una anterior y haciendo otras cosas. OS/2 utilizaba `planificación apropiada', podía quitarle la CPU a un proceso y dársela a otro que considere más importante. Utilizaba de igual forma, la denominada Memoria Virtual, en donde permitía al usuario controlar su propio espacio de direcciones. En un OS/2 multitarea resultaba mejor crear programas pequeños, cada uno de los cuales realizaba bien una función o un conjunto de funciones afines y después hacer que se comunicaran entre sí para alcanzar los objetivos del usuario. Lo que hoy en día en materia de Programación se asemeja con `Programación Modular'. Sin duda, en un futuro no muy lejano, aparecerán nuevas versiones, nuevos diseños de sistemas operativos. Probablemente, así como comparamos OS/2 con Windows XP, se compararán Windows XP con otro mucho más avanzado. Seguramente, este mismo trabajo sea recordado como nosotros recordamos la Edad Media. BIBLIOGRAFÍA • INTRODUCCION A LOS SISTEMAS OPERATIVOS.. 15 Segunda Edición , 1993 H. M. Dertel. Pág. 822−871 INTERNET • www.altavista.com • www.os2spain.org • www.internet.com.uy} • www.monografías.com • www.yupi.com • www.os2ss.com 1 • 16