jueves, 22 de octubre de 2015

1.5 ESTRUCTURA

Estructura monolítica.
Resultado de imagen para ESTRUCTURA MONOLÍTICAPrimeros sistemas operativos constituidos fundamentalmente por un sólo programa compuesto de un
conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra.

Características:
1 Construcción del programa final a base de módulos compilados separadamente que se unen a través del encadenador (linker)
2 Buena definición de parámetros de enlace entre las distintas rutinas existentes
3 Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora.
4 Generalmente hechos a la medida, eficientes y rápidos en ejecución y gestión
5 Poco flexibles para soportar diferentes ambientes de trabajo o aplicaciones.
Estructura jerárquica.
Mayores necesidades de los usuarios, mayor organización del software. Se dividió el sistema operativo en pequeñas partes, cada una bien definida y con una clara interfase con el resto de elementos.
Se constituyó una estructura jerárquica, el primero de los cuales fue denominado THE (Technische
Hogeschool, Eindhoven)
Capa 5 – Control de programas de usuario
Capa 4 – Gestión de Archivos
Capa 3 – Control de operaciones entrada/salida
Capa 2 – Control de la Consola de operación
Capa 1 – Gestión de memoria
Capa 0 – Planificación de CPU
Capa -1 – Hardware
En esta estructura se basan la mayoría de los sistemas operativos actuales. Otra forma es la de anillos.
Cada uno tiene una apertura por donde pueden entrar las llamadas de las capas inferiores. Las zonas más internas del sistema operativo o núcleo estarán más protegidas de accesos indeseados desde las capas más externas.
 Las internas serán más privilegiadas que las externas.
Cliente-servidor
El más reciente, puede ser ejecutado en la mayoría de las computadoras, para toda clase de aplicaciones, es de propósito general.
El núcleo establece la comunicación entre los clientes y los servidores. Los procesos pueden ser tanto
servidores como clientes. Por ejemplo, un programa de aplicación normal es un cliente que llama al
servidor correspondiente para acceder a un archivo o realizar una operación de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro.

1.4 CLASIFICACION

 Sistemas Operativos por Servicios
Esta clasificación es la más comúnmente usada y conocida desde el punto de vista del usuario final.
Monousuarios: un usuario a la vez, no importa el número de cpu’s, número de procesos que pueda ejecutar en un mismo instante de tiempo. PC’s.

Multiusuarios: más de un usuario a la vez, por varias terminales conectadas a la computadora o por sesiones remotas en una red de comunicaciones. No importa el número de cpu’s ni el número de procesos que cada usuario puede ejecutar simultáneamente.
Monotareas: sólo una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea,
varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez.
Multitareas: realiza varias labores al mismo tiempo. interfases gráficas orientadas al uso lo cual permite un rápido intercambio entre las tareas para el usuario,
Monoprocesador: solamente un CPU, de manera que si la computadora tuviese más de uno le sería inútil.
MS-DOS y MacOS.
Multiprocesador: más de un cpu y es capaz de usarlos todos para distribuir su carga de trabajo.
Trabajan de dos formas: simétrica o asimétricamente.
Asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de
procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos.
Simétrica, los procesos o partes de ellos son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.
Considerar la forma de crear aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para correr en sistemas monoprocesador que no toman ninguna ventaja a menos que el sistema operativo o el compilador detecte secciones de código paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. El programador puede modificar sus algoritmos y aprovechar por sí mismo esta facilidad, es costoso en horas hombre y muy tediosa, obligando al programador a ocupar tanto o más tiempo a la paralelización que a elaborar el algoritmo inicial.

1.3 EVOLUCION HISTORICA


Para tratar de comprender los requisitos de un Sistema Operativo y el significado de las principales caracteristicas de un Sistema Operativo contemporaneo, es util considerar como han ido evolucionando estos con el tiempo.
Existen diferentes enfoques o versiones de como han ido evolucionando los Sistemas Operativos     La primera de estas versiones podria ser esta:

En los 40's, se introducen los programas bit a bit, por medio de interruptores mecanicos y despues se introdujo el lenguaje maquina que trabajaba por tarjetas perforadas.

    Con las primeras computadoras, desde finales de los años 40 hasta la mitad de los años 50, el programador interactuaba de manera directa con el hardware de la computadora, no existia realmente un Sistema Operativo; las primeras computadoras utilizaban bulbos, la entrada de datos y los programas se realizaban a traves del lenguaje maquina (bits) o a traves de interruptores. 


Durante los años 50's y 60's.- A principio de los 50's, la compania General's Motors implanto el primer sistema operativo para su IBM 170. Empiezan a surgir las tarjetas perforadas las cuales permiten que los usuarios (que en ese tiempo eran programadores, disenadores, capturistas, etc.), se encarguen de modificar sus programas. Establecian o apartaban tiempo, metian o introducian sus programas, corregian y depuraban sus programas en su tiempo. A esto se le llamaba trabajo en serie. Todo esto se traducia en perdida de tiempo y tiempos de programas excesivos.


En los años 60's y 70's se genera el circuito integrado, se organizan los trabajos y se generan los procesos Batch (por lotes), lo cual consiste en determinar los trabajos comunes y realizarlos todos juntos de una sola vez. En esta epoca surgen las unidades de cinta y el cargador de programas, el cual se considera como el primer tipo de Sistema Operativo.


En los 80's, inicio el auge de la INTERNET en los Estados Unidos de America. A finales de los años 80's comienza el gran auge y evolucion de los Sistemas Operativos. Se descubre el concepto de multiprogramacion que consiste en tener cargados en memoria a varios trabajos al mismo tiempo, tema principal de los Sistemas Operativos actuales.




Los 90's y el futuro, entramos a la era de la computacion distribuida y del multiprocesamiento a traves de multiples redes de computadoras, aprovechando el ciclo del procesador.


Se tendra una configuracion dinamica con un reconocimiento inmediato de dispositivos y software que se anada o elimine de las redes a traves de procesos de registro y localizadores.


La conectividad se facilita gracias a estandares y protocolos de sistemas abiertos por organizaciones como la Organizacion Internacional de normas, fundacion de software abierto, todo estara mas controlado por los protocolos de comunicacion OSI y por la red de servicios digital ISDN.


     Se ha desarrollado otra version, la cual se ha hecho en base a etapas o generaciones:

    1a. Etapa (1945-1955): Bulbos y conexiones.

Despues de los infructuosos esfuerzos de Babbage, hubo poco progreso en la construccion de las computadoras digitales, hasta la Segunda Guerra Mundial. A mitad de la decada de los 40's, Howard Aiken (Harvard), John Von Newman (Instituto de Estudios Avanzados, Princeton), J. Prespe R. Eckert y Williams Mauchley (Universidad de Pennsylvania), asi como Conrad Zuse (Alemania), entre otros lograron construir maquinas de calculo mediante bulbos. Estas maquinas eran enormes y llenaban cuartos completos con decenas de miles de bulbos, pero eran mucho mas lentas que la computadora casera mas economica en nuestros dias.

Toda la programacion se llevaba a cabo en lenguaje de maquina absoluto y con frecuencia se utilizaban conexiones para controlar las funciones basicas de la maquina. Los lenguajes de programacion eran desconocidos (incluso el lenguaje ensamblador). No se oia de los Sistemas Operativos el modo usual de operacion consistia en que el programador reservaba cierto periodo en una hoja de reservacion pegada a la pared, iba al cuarto de la maquina, insertaba su conexion a la computadora y pasaba unas horas esperando que ninguno de los 20,000 o mas bulbos se quemara durante la ejecucion. La inmensa mayoria de los problemas eran calculos numericos directos, por ejemplo, el calculo de valores para tablas de senos y cosenos.

A principio de la decada de los 50's la rutina mejoro un poco con la introduccion de las tarjetas perforadas. Fue entonces posible escribir los programas y leerlas en vez de insertar conexiones, por lo demas el proceso era el mismo.

    2a. Etapa. (1955-1965): Transistores y Sistemas de Procesamiento por lotes.

La introduccion del transistor a mediados de los años 50's modifico en forma radical el panorama. Las computadoras se volvieron confiables de forma que podian fabricarse y venderse a clientes, con la esperanza de que ellas continuaran funcionando lo suficiente como para realizar un trabajo en forma.

Dado el alto costo del equipo, no debe sorprender el hecho de que las personas buscaron en forma por demas rapidas vias para reducir el tiempo invertido. La solucion que, por lo general se adopto, fue la del sistema de procesamiento por lotes.

    3ra Etapa (1965-1980): Circuitos integrados y multiprogramacion.


   




La 360 de IBM fue la primera linea principal de computadoras que utilizo los circuitos integrados, lo que proporciono una gran ventaja en el precio y desempeno con respecto a las maquinas de la segunda generacion, construidas a partir de transistores individuales. Se trabajo con un sistema operativo enorme y extraordinariamente complejo. A pesar de su enorme tamano y sus problemas el sistema operativo de la linea IBM 360 y los sistemas operativos similares de esta generacion producidos por otros fabricantes de computadoras realmente pudieron satisfacer, en forma razonable a la mayoria de sus clientes. Tambien popularizaron varias tecnicas fundamentales, ausentes de los sistemas operativos de la segunda generacion, de las cuales la mas importante era la de multiprogramacion.


Otra caracteristica era la capacidad de leer trabajos de las tarjetas al disco, tan pronto como llegara al cuarto de computo. Asi, siempre que concluyera un trabajo el sistema operativo podia cargar un nuevo trabajo del disco en la particion que quedara desocupada y ejecutarlo.

    4ta Etapa (1980-Actualidad): Computadoras personales.

Un interesante desarrollo que comenzo a llevarse a cabo a mediados de la decada de los ochenta ha sido el crecimiento de las redes de computadoras personales, con sistemas operativos de red y sistemas operativos distribuidos.

En los sistemas operativos de red, los usuarios estan conscientes de la existencia de varias computadoras y pueden conectarse con maquinas remotas y copiar archivos de una maquina a otra. Cada maquina ejecuta su propio sistema operativo local y tiene su propio usuario.

Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus usuarios como un sistema tradicional de un solo procesador, aun cuando esta compuesto por varios procesadores. En un sistema distribuido verdadero, los usuarios no deben ser conscientes del lugar donde su programa se ejecute o de lugar donde se encuentren sus archivos; eso debe ser manejado en forma automatica y eficaz por el sistema operativo.