Evolución tecnológica de los sistemas de computación

Para que la CPU pudiera intercalar actividades de diferentes programas (la lectura o salida de uno, con el procesamiento de otro) fue necesario que residieran todos ellos en memoria.
Hoy la tendencia es hacia los sistemas multiprocesador, es decir, aquellos que cuentan con más de un procesador. Los procesadores que constituyen estos sistemas están fuertemente comunicados.

Como consecuencia del advenimiento del disco y el uso de spools, aumentó el uso de CPU. Pudiéndose solapar actividades, puede lograrse que la CPU tenga siempre algo para ejecutar, lo que se traduce en un aumento de la productividad.

Para que la CPU pudiera intercalar actividades de diferentes programas (la lectura o salida de uno, con el procesamiento de otro) fue necesario que residieran todos ellos en memoria, pues para ejecutarse, un programa debe estar en memoria. E esta técnica de permitir varios programas en memoria se la llama multiprogramación.

colossus.gifPero, ante esta evolución es imprescindible administrar la memoria y planificar la CPU además de buscar la manera de salvaguardar la posibilidad de interferencia entre los programas que comparten la memoria. Por lo tanto, se cumple aquello que a mayor funcionalidad, debe acompañar una mayor complejidad del software encargado de controlar la actividad: el sistema operativo.

No todos los trabajos que están en el «job spool» pueden residir en la memoria: es preciso hacer una selección, lo que se llama, planificar el uso de la CPU. Los sistemas batch con multiprogramación unen la modalidad de secuencia propia del batch con la posibilidad de mantener más de un job en memoria, de manera tal que al realizarse la entrada-salida de un job pueda atenderse el procesamiento de otro trabajo.

Tiempo compartido (time sharing). Sistemas interactivos.
Time sharing es una consecuencia lógica de la multiprogramación. En los sistemas batch no hay interacción con el usuario. El tiempo de retorno (tiempo entre envío del trabajo y terminación) es alto. Además hay vuelcos de memoria para el posterior análisis del problema por parte del usuario. En un sistema interactivo hay comunicación directa, normalmente a través del monitor, para la visualización de la entrada y la salida, y el teclado (keyboard) o el ratón (mouse) para el ingreso de comandos y datos. Las fuentes de almacenamiento de programas y datos, los archivos, deben estar en línea para poder ser accedidos dinámicamente. Los sistemas operativos modernos permiten que convivan los sistemas batch con los interactivos.

Personal Computers. Sistemas monousuario
Las PC’s (pesonal computers) son computadoras dedicadas a un solo usuario, que aparecieron en los 70’s.
Eran microcomputadoras más baratas y más chicas que un mainframe. El abaratamiento no proviene sólo del hardware: el sistema operativo es menos complejo pues es un ambiente de ejecución mucho más simple. Durante al primer década, no tenían lo necesario para proteger el sistema operativo del acceso desde programas de usuario (lo que se llama modo dual de ejecución). Por lo tanto no eran multiusuario ni multitarea. Pero a partir de la comunicación de las PC’s a través de redes, o para compartir recursos, fue necesario implementar mecanismos de protección de la información. Se sumó a ello la invasión de ocasionales virus que atacaban y atacan al sistema.



Sistemas paralelos
Hoy la tendencia es hacia los sistemas multiprocesador, es decir, aquellos que cuentan con más de un procesador. Los procesadores que constituyen estos sistemas están fuertemente comunicados. Comparten el bus, el clock y, en cuanto a si comparten también memoria y periféricos define si son tightly coupled (de fuerte acople) o no.

800px-ibm_pc_5150.jpgEstos sistemas permiten mejorar el throughput (productividad). Al tener más procesadores podré ejecutar más procesos de manera concurrente. No obstante debemos considerar un overhead (carga) adicional por sincronizar estos procesadores y los recursos compartidos a los que acceden.
Otra ventaja es la posibilidad de compartir periféricos, que según el equipamiento involucrado, puede ser un ahorro importante. En vez de tener varias computadoras con sus discos, donde es necesario mantener la información compartida consistente, tenemos varios procesadores accediendo al mismo disco.

La confiabilidad (reliability) es otro punto a favor, pues estos sistemas pueden seguir trabajando ante la falla de uno de los procesadores. Si bien cada uno absorberá un poco del trabajo del procesador que ha fallado y puede bajar la performance general, el sistema continuará funcionando. Esta posibilidad de recuperarse de la caída de un procesador continuando con el servicio, se llama «graceful degradation» y a estos sistemas se les llama «faul tolerant» (tolerante a fallos).

Para ello es necesario que existan mecanismos que permitan detectar, diagnosticar y superar el fallo. Hay sistemas que duplican hardware y software para asegurar la continuidad ante fallos, como los equipos TANDEM. Los procesadores se conectan por un bus; uno es el primario y otro es el backup (copia de seguridad). Hay dos copias del proceso (en uno y en otro) y checkpoints (puntos de control), que son puntos de referencia que marcan en qué momento se hace el refresh, o se vuelve atrás por falla y sigue el otro solo.
Hoy se utiliza mucho el modelo de multiprocesamiento simétrico (SMP). Cada procesador corre una copia idéntica del sistema operativo y esas copias se comunican entre sí si es necesario.

Otros sistemas usan multiprocesamiento asimétrico, donde un procesador distribuye y dirige las tareas de los demás, estableciendo una relación master-slave. La diferencia entre si un sistema multiprocesador trabajará de manera simétrica o asimétrica depende del hardware y el software. Al ser los microprocesadores cada vez más baratos y potentes, se agregan a los sistemas para descargar en ellos algunas tareas y mejorar la productividad general. Tal es el caso de procesadores para manejar un sistema de discos, o el que tiene en el keyboard una PC para transformar el tipeo de una tecla en códigos para enviar a la CPU.

Sistemas distribuidos
La tendencia es distribuir el procesamiento entre diferentes procesadores. Los sistemas de fuerte acople donde los procesadores comparten memoria y reloj se comunican normalmente a través de la memoria compartida. Los sistemas de débil acople (loosely coupled) no comparten memoria ni reloj pues cada uno tiene su memoria local. Se comunican a través de canales de alta velocidad o líneas telefónicas.
Generalmente se los llama sistemas distribuidos.

Las razones para su uso son:

  • Compartir recursos (por ejemplo impresoras, archivos, etc.)
  • Aceleración de los cálculos ( por división en subprocesos, lo que se llama compartimiento de cargas)
  • Confiabilidad
  • Comunicación

Sistemas de red
Los sistemas operativos de red proveen un ambiente donde conviven una multiplicidad de máquinas que pueden acceder remotamente a recursos, conectándose a otras máquinas de la red o transfiriéndose información desde la máquina remota a su propia máquina. La tarea de conectarse a una máquina remota (login remoto) es una importante función dentro de un sistema operativo de estas características.

La facilidad telnet permite a través de un nombre asignado a una máquina hacer una conexión a ella.
honeywell-bull_dps_7_mainframe_bww_march_1990.jpg Para hacer una transferencia remota puedo utilizar por ejemplo la facilidad ftp. En ambos casos, luego de una conexión exitosa, podemos encontrarnos en otro sistema operativo, donde los comandos sean diferentes al nuestro, pues, en una red no necesariamente las máquinas que la forman tienen el mismo sistema operativo. Nuestra máquina puede ser Unix y si hacemos un telnet a una máquina diferente, a partir de ese momento deberemos utilizar los comandos de sistema de esa máquina.

Sistemas de tiempo real
Se usa para controlar una aplicación dedicada. Hay restricciones temporales bien definidas. Normalmente no hay almacenamiento secundario o es limitado y los datos se almacenan en memoria. La memoria ROM es no volátil y juega un rol sumamente importante en este tipo de sistemas.

Sistemas Cliente-Servidor
Para entender estos sistemas definamos los términos servicio, servidor y cliente.
Servicio (service) es una entidad de software en una o más máquinas que provee una función particular.

Un servidor (server) es el software de servicio que corre en una máquina. Un cliente (client) es un proceso que puede solicitar un servicio a través de un conjunto de operaciones bien definidas que constituyen la interfase cliente (client interface). Un sistema de impresión, provee un servicio (la impresión) a través de un proceso (servidor) a los clientes que lo soliciten (nuestros programas).

En un sistema se puede disponer de una máquina servidor de archivos al que un cliente hace requerimientos a través de su interfaz cliente, en forma de un conjunto de operaciones de manipulación de ficheros.

Normalmente se le dice servidor a la máquina donde reside el servicio, confundiéndose con el concepto original, donde servidor es el proceso que provee el servicio. Una máquina puede ser servidora y a su vez cliente: puede ofrecer un servicio y a su vez requerir para alguno de sus usuarios un servicio enotra máquina. Tal es el caso de los servidores no dedicados.

Hoy en día la tendencia hacia la programación distribuida y al uso del modelo cliente – servidor es más que evidente en muchos de los ámbitos de Internet y de las redes de área local.

FUENTES GRAFICAS:
www.computersciencelab.com
Wikipedia

Valora esta noticia: 1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (0 votos, media: 0,00 de 5)
Loading ... Loading ...