Descargar

Sistemas de Operación o Sistema Operativo (página 2)


Partes: 1, 2

Monitores simples

La solución a la dificultad antes indicada tuvo dos vías o camino. La primera consistió de disponer de operadores profesionales y la segunda en procesar los trabajos en forma de lotes (Batch).

Lo antes indicado implico un mejoramiento de la eficiencia (aunque el programador perdió la posibilidad de eliminar los errores en línea) pero no obstante existía una perdida de tiempo en el cambio de un trabajo a otro( terminara en forma normal o anormal).

La solución a esta perdida de tiempo consistió en delegar en el propio equipo el cambio automático, de los trabajos y con esto surgieron los primeros y más rudimentarios sistemas de operación.

Estos pequeños programas que permitían transferir el control de un trabajo a otro, recibieron el nombre de monitor residente. Permanecían en memoria todo el tiempo.

El monitor residente le entregaba el control de ejecución a un programa y cuando éste terminaba se lo devolvía, estando en condiciones de volver a repetir la operación en forma automática. Es decir, el monitor residente transfería el control de un programa a otro y de un trabajo a otro.

Para el logro de este secuenciamiento se requería informar al monitor residente las acciones que se debían realizar. Esta información se suministraba mediante tarjetas perforadas que se llamaban Tarjetas de Control.

En los monitores residentes se identificaban claramente cuatro partes componentes (Fig 1.2):

  • ? Vectores de interrupción y trampas.

  • ? Manejadores de dispositivos.

  • ? Cargador.

  • ? Interprete de las tarjetas de control.

Con las soluciones antes explicadas se daba respuesta a las perdidas de tiempo provocadas en el secuenciamiento entre los trabajos, pero permanecían las existentes a consecuencia de las diferencias de velocidades entre el procesador central y los dispositivos de E/S (dado su carácter mecánico).

Lo antes indicado implicaba que el CPU frecuentemente se encontraba inactivo esperando por una lenta E/S. Por otro lado, cuando el CPU trabajaba, los equipos de E/S estaban desocupados.

Una solución a la dificultad antes indicada consistió en sustituir las lectoras de tarjetas y las impresoras de líneas por bandas magnéticas, las que brindaban entradas y salidas a una mayor velocidad, mejorando la proporción de uso del CPU.

Las bandas que soportaban las entradas eran creadas a partir de lectoras de tarjetas, pero fuera de línea. De igual forma las bandas magnéticas que recibían las salidas de la computadora eran impresas también fuera de línea.

Otra solución a la lentitud de los dispositivos de entrada salida consistió en el uso de buffers. El uso de estos almacenes temporales es un intento por mantener al CPU y los periféricos ocupados simultáneamente.

La idea es simple. Por ejemplo en la entrada, cuando un conjunto de datos ha sido leído se le ordena al dispositivo de lectura proceda con la siguiente y la vaya almacenando en un área de la memoria (Buffer), mientras el CPU va procesando la anterior.

Si se logra (lo que es muy difícil) que en el momento que el CPU quede libre ya el dispositivo de entrada haya leído los próximos datos, entonces el CPU comienza a procesarlos mientras el periférico inicia la próxima transferencia.

En la práctica, rara vez el uso de la técnica de buffers, logra que el CPU y los dispositivos de entrada salida se mantengan ocupados todo el tiempo.

El surgimiento de los discos eliminó rápidamente la preparación de lotes de trabajo fuera de línea, pasándose a sistemas basados en discos. Este dispositivo permitía se pudiera realizar lecturas y escrituras simultáneas en diferentes zonas del soporte (simplemente moviendo el cabezal).

La forma de procesamiento utilizada en los sistemas basados en discos fue la conocida como SPOOLING (Simultaneus Peripheral Operation On-Line).

En este tipo de procesamiento, de forma continua se van leyendo directamente del lector de tarjetas los diferentes trabajos que se almacenan en el disco. Cada vez que uno de ellos es introducido, se anota en una tabla (y el área donde se encuentra). Cuando el trabajo es ejecutado, sus solicitudes de entrada se satisfacen leyendo en el disco. De forma similar, cuando el trabajo solicita la impresora para imprimir, la acción se realizará en un área del disco y la impresión realmente se hará con posterioridad.

El sistema de operación se encargará, mediante la tabla antes indicada, de llevar el control de las entradas y las salidas pertenecientes a cada trabajo.

Mientras el uso de buffers solapa la entrada/salida de un trabajo con sus propios cálculos, el SPOOLING permite igual acción con la entrada, salida y cálculos de trabajos diferentes.

La técnica del SPOOLING constituye un elemento consustancial de los sistemas operativos que funcionan en computadoras grandes (mainframes) y que realizan procesamientos en lotes.

La técnica del SPOOLING brinda adicionalmente una importante estructura de datos, la piscina de trabajos (Job Pool). Es decir, en un momento dado existen varios trabajos leídos y listos para ser ejecutados. Esta característica brinda la posibilidad al sistema operativo de seleccionar cuál es el trabajo más conveniente a procesar en cada momento con vistas a elevar el uso del CPU (hasta ese momento se corrían en el orden, primero que llega es el primero que se sirve).

La posibilidad de seleccionar para su ejecución a un trabajo entre varios almacenados en un dispositivo de acceso directo se le conoce como planificación de trabajos (Job Scheduling).

Multiprogramación

El aspecto más importante que ofrece el "Job Scheduling" es la posibilidad de la multiprogramación (también nombrada como procesamiento multitarea).

La multiprogramación (Fig1.6) es un intento de incrementar la utilización del CPU, tratando de que siempre tenga algo que hacer. La idea consiste en mantener varios trabajos en memoria simultáneamente y cuando el que está activo (utilizando el procesador) va a provocar una espera (por ejemplo, al tener que esperar por una entrada/salida), entonces se le quita el CPU y se le asigna a otro que está listo para ejecutar.

A un trabajo que se le quitó el CPU (bloqueado), eventualmente se le volverá a entregar siempre y cuando ya haya ocurrido el evento que provocó la primera acción.

Los trabajos que se mantienen en memoria se toman de la piscina y la cantidad que en un momento puedan recibir y competir por el CPU dependerá del diseño de la administración de memoria (Memory Management).

Los sistemas de operación que permiten la multiprogramación son algo complejos y este concepto ha sido el motor impulsor del desarrollo de la teoría alrededor de esta materia. La multiprogramación es el aspecto central de los sistemas de operación modernos.

Tiempo compartido

El desarrollo de la multiprogramación brindó la posibilidad de que los sistemas operativos pudieran soportar en forma eficiente la posibilidad de atender en forma interactiva a varios usuarios, trabajando cada uno en una terminal y compartiendo entre todos el tiempo del procesador y los restantes recursos existentes.

A los sistemas de operación que brindan la posibilidad antes indicada se les conoce como Sistemas de Tiempo Compartido.

Cada usuario tiene un programa separado en memoria. Cuando a uno de ellos se le asigna el procesador, éste ejecutará solamente por un período breve de tiempo (en un medio interactivo los procesamiento son generalmente cortos) antes de terminar o realizar una entrada/salida. Debido a que el hombre que trabaja en la terminal es lento con respecto al CPU, al producirse la entrada/salida se le retirará el CPU y se comenzará la atención de otro usuario.

En muchos esquemas de tiempo compartido se establece adicionalmente que un usuario en posesión del CPU solo lo retendrá durante una ranura o quantun de tiempo, transcurrido éste lo perderá.

Debido a que el sistema cambia de un usuario a otro rápidamente da a todos la impresión de estar trabajando con una computadora propia.

Tiempo Real

Los sistemas operativos de tiempo real también hacen uso de la multiprogramación y atienden varios puntos de acción, pero en su trabajo existen restricciones de tiempo y el procesamiento se tiene que hacer dentro de estas restricciones.

Este tipo de sistemas es generalmente utilizado para controlar procesos físicos (experimentos científicos, equipos industriales, equipos médicos, etc).

Generaciones de los sistemas operativos

Algunos autores (por ejemplo Tanembaun) para analizar la evolución histórica de los sistemas operativos lo hace asociando estos a las distintas generaciones de los sistemas de cómputo. Por supuesto, esta estructuración no se aleja de los aspectos antes estudiados.

La primera generación (1945-1955) corresponde a los primeros equipos, construidos con válvulas de vacío. En esta etapa no existieron sistemas operativos.

La segunda generación (1955-1965) corresponde a la etapa a los equipos que estaban basados en el uso de los transistores. Eran más confiables y más duraderos. Desde el punto de vista de los sistemas operativos se tiene el uso de monitores simples (lo que implica procesamiento en lote).

Sistemas de Operación de esta etapa son el FMS (Fortran Monitor System) y el IBSYS de la 7094.

La tercera generación (1965-1980) se caracterizó por la utilización de circuitos integrados. Los sistemas operativos vinculados a esta etapa introdujeron los conceptos de SPOOLING y en especial el uso de la multiprogramación. También corresponde a esta etapa la aparición del tiempo compartido.

En esta etapa no pueden dejar de mencionarse los sistemas de operación OS/360 y Multics. Aquí surgen las primeras versiones del Unix.

La cuarta generación (1980-1990) surge con los circuitos integrados de alta integración y por ello aparecen en el mercado las computadoras personales.

Esta etapa la dominan sistemas operativos MS-DOS y el Unix (y en un inicio el CP/M).

El actual desarrollo de los sistemas operativos basados en GUI (Graphic User Interface) y la incorporación de orientación a objetos así como el soporte de la multimedia, es suficientemente fuerte para hablar de la quinta generación de los sistemas operativos.

En esta etapa la competencia se centra entre el Unix, el Windows, Macintoch, y el OS/2 (al menos en las microcomputadoras).

Sistemas multiprocesadores

La mayoría de los sistemas de cómputo existentes son monoprocesadores, es decir disponen de un solo procesador central. El término multiprocesamiento está referido a la existencia en un sistema de cómputo de 2 ó más CPU que comparten la memoria y los periféricos.

La principal ventaja de este tipo de estructuración es el incremento de la potencia de computación y la posibilidad de una programación paralela real.

Los sistemas de cómputo más comunes con esta organización disponen de un procesador maestro que controla a otros (esclavos) que realizan tareas específicas.

Los sistemas operativos que operan en estas condiciones reciben el nombre de sistemas operativos de multiprocesador. La imagen de estos sistemas se corresponde con la de los uniprocesadores, es decir, la de un único sistema y por ello su diseño e instrumentación son similares a la de estos, excepto que se tienen que tener en cuenta consideraciones especiales en el uso de los componentes que pueden ser accedidos simultáneamente por más de un procesador.

Bibliografia:

  • ? Operating System Concepts, Peterson y Silberschatz, pag 1-37.

  • ? Operating System:Design and Implementation, Tanembaun, pag 1-13.

 

 

Autor:

Msc. Maykel J. Mena Hernández

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente