Descargar

Historia de los sistemas operativos

Enviado por duenas_


    1. ¿Qué es un sistema operativo? 2. Historia de los sistemas operativos 3. Conceptos de los Sistemas Operativos 4. Shell (intérprete de comandos): 5. Estructura de un Sistema Operativo

    1. ¿Qué es un sistema operativo?

    Un sistema operativo es el programa que oculta la verdad del hardware al programador y presenta una vista simple y agradable de los archivos nominados que pueden leerse y escribirse. Es sistema operativo resguarda al programador del hardware del disco y presenta una interfaz simple orientada al archivo, también disimula mucho del trabajo concerniente a interrupciones, relojes o cronómetros, manejo de memoria y otras características de bajo nivel.

    La función del sistema operativo es la de presentar al usuario con el equivalente de una máquina ampliada o máquina virtual que sea más fácil de programar que el hardware implícito.

    2. Historia de los sistemas operativos

    Los Sistemas Operativos, al igual que el Hardware de los computadores, han sufrido una serie de cambios revolucionarios llamados generaciones. En el caso del Hardware, las generaciones han sido marcadas por grandes avances en los componentes utilizados, pasando de válvulas ( primera generación ) a transistores ( segunda generación ), a circuitos integrados ( tercera generación), a circuitos integrados de gran y muy gran escala (cuarta generación). Cada generación Sucesiva de hardware ha ido acompañada de reducciones substanciales en los costos, tamaño, emisión de calor y consumo de energía, y por incrementos notables en velocidad y capacidad.

    Generacion Cero (década de 1940)

    Los primeros sistemas computacionales no poseían sistemas operativos. Los usuarios tenían completo acceso al lenguaje de la maquina. Todas las instrucciones eran codificadas a mano.

    Primera Generacion (década de 1950)

    Los sistemas operativos de los años cincuenta fueron diseñados para hacer mas fluida la transición entre trabajos. Antes de que los sistemas fueran diseñados, se perdía un tiempo considerable entre la terminación de un trabajo y el inicio del siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes, donde los trabajos se reunían por grupos o lotes. Cuando el trabajo estaba en ejecución, este tenia control total de la maquina. Al terminar cada trabajo, el control era devuelto al sistema operativo, el cual limpiaba y leía e iniciaba el trabajo siguiente.

    Al inicio de los 50's esto había mejorado un poco con la introducción de tarjetas perforadas (las cuales servían para introducir los programas de lenguajes de máquina), puesto que ya no había necesidad de utilizar los tableros enchufables.

    Además el laboratorio de investigación General Motors implementó el primer sistema operativo para la IBM 701. Los sistemas de los 50's generalmente ejecutaban una sola tarea, y la transición entre tareas se suavizaba para lograr la máxima utilización del sistema. Esto se conoce como sistemas de procesamiento por lotes de un sólo flujo, ya que los programas y los datos eran sometidos en grupos o lotes.

    La introducción del transistor a mediados de los 50's cambió la imagen radicalmente.

    Se crearon máquinas suficientemente confiables las cuales se instalaban en lugares especialmente acondicionados, aunque sólo las grandes universidades y las grandes corporaciones o bien las oficinas del gobierno se podían dar el lujo de tenerlas.

    Para poder correr un trabajo (programa), tenían que escribirlo en papel (en Fortran o en lenguaje ensamblador) y después se perforaría en tarjetas. Enseguida se llevaría la pila de tarjetas al cuarto de introducción al sistema y la entregaría a uno de los operadores. Cuando la computadora terminara el trabajo, un operador se dirigiría a la impresora y desprendería la salida y la llevaría al cuarto de salida, para que la recogiera el programador.

    Segunda Generacion (a mitad de la década de 1960)

    La característica de los sistemas operativos fue el desarrollo de los sistemas compartidos con multiprogramación, y los principios del multiprocesamiento. En los sistemas de multiprogramación, varios programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se cambia rápidamente de un trabajo a otro. En los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de procesamiento de la maquina.

    La independencia de dispositivos aparece después. Un usuario que desea escribir datos en una cinta en sistemas de la primera generación tenia que hacer referencia especifica a una unidad de cinta particular. En la segunda generación, el programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto numero de pistas y cierta densidad.

    Se desarrollo sistemas compartidos, en la que los usuarios podían acoplarse directamente con el computador a través de terminales. Surgieron sistemas de tiempo real, en que los computadores fueron utilizados en el control de procesos industriales. Los sistemas de tiempo real se caracterizan por proveer una respuesta inmediata.

    Tercera Generacion (mitad de década 1960 a mitad década de 1970)

    Se inicia en 1964, con la introducción de la familia de computadores Sistema/360 de IBM. Los computadores de esta generación fueron diseñados como sistemas para usos generales . Casi siempre eran sistemas grandes, voluminosos, con el propósito de serlo todo para toda la gente. Eran sistemas de modos múltiples, algunos de ellos soportaban simultáneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos, nunca antes se había construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy por arriba del presupuesto y mucho después de lo que el planificador marcaba como fecha de terminación.

    Estos sistemas introdujeron mayor complejidad a los ambientes computacionales; una complejidad a la cual, en un principio, no estaban acostumbrados los usuarios.

    Cuarta Generacion (mitad de década de 1970 en adelante)

    Los sistemas de la cuarta generación constituyen el estado actual de la tecnología. Muchos diseñadores y usuarios se sienten aun incómodos, después de sus experiencias con los sistemas operativos de la tercera generación.

    Con la ampliación del uso de redes de computadores y del procesamiento en línea los usuarios obtienen acceso a computadores alejados geográficamente a través de varios tipos de terminales.

    Los sistemas de seguridad se ha incrementado mucho ahora que la información pasa a través de varios tipos vulnerables de líneas de comunicación. La clave de cifrado esta recibiendo mucha atención; han sido necesario codificar los datos personales o de gran intimidad para que; aun si los datos son expuestos, no sean de utilidad a nadie mas que a los receptores adecuados.

    El porcentaje de la población que tiene acceso a un computador en la década de los ochenta es mucho mayor que nunca y aumenta rápidamente.

    El concepto de maquinas virtuales es utilizado. El usuario ya no se encuentra interesado en los detalles físicos de; sistema de computación que esta siendo accedida. En su lugar, el usuario ve un panorama llamado maquina virtual creado por el sistema operativo.

    Los sistemas de bases de datos han adquirido gran importancia. Nuestro mundo es una sociedad orientada hacia la información, y el trabajo de las bases de datos es hacer que esta información sea conveniente accesible de una manera controlada para aquellos que tienen derechos de acceso.

    3. Conceptos de los Sistemas Operativos

    Llamadas al Sistema:

    La interfaz entre el sistema operativo y los programas del usuario se define por medio del conjunto de "instrucciones extendidas" que el sistema operativo proporciona. Estas instrucciones extendidas se conocen como llamadas al sistema. Las llamadas al sistema varían de un sistema operativo a otro (aunque los conceptos fundamentales tienden a ser análogos).

    Las llamadas al sistema se clasifican normalmente en dos categorías generales: aquellas que se relacionan con procesos y la que lo hacen con el sistema de archivo.

    • Por Procesos: Un proceso es básicamente un programa en ejecución. Consta del programa ejecutable y la pila o stack del programa, su contador de programa, apuntador de pila y otros registros, así como la otra información que se necesita para ejecutar el programa. En si el proceso en el concepto de los sistemas operativos es como el sistema de tiempo compartido. Esto es, que en forma periódica, el sistema operativo decide suspender la ejecución de un proceso y dar inicio a la ejecución de otro, por ejemplo, porque el primero haya tomado ya más de su parte del tiempo de la CPU, en terrenos del segundo.

    Cuando un proceso se suspende temporalmente, debe reiniciarse después exactamente en el mismo estado en que se encontraba cuando se detuvo. Esto significa que toda la información relativa al proceso debe guardarse en forma explícita en algún lugar durante la suspensión. En muchos sistemas operativos, toda la información referente a cada proceso, diferente del contenido de su espacio de direcciones, se almacena en una tabla de sistema operativo llamada tabla de procesos, la cual es un arreglo (lista enlazada) de estructuras, una para cada proceso en existencia.

    Por lo tanto, un proceso (suspendido) consta de su espacio de direcciones, generalmente denominado imagen del núcleo (en honor de las memorias de imagen de núcleo magnético que se utilizaron en tiempos antiguos) y su registro de la tabla de procesos, que contiene sus registros entre otras cosas.

    • Por Sistema de Archivo: Una función importante del S.O. consiste en ocultar las peculiaridades de los discos y otros dispositivos de E/S y presentar al programador un modelo abstracto, limpio y agradable de archivos independientes del dispositivo. Las llamadas al sistema se necesitan con claridad para crear archivos, eliminarlos, leerlos y escribirlos. Antes de que se pueda leer un archivo, éste debe abrirse y después de que se haya leído debe cerrarse, de modo que las llamadas se dan para hacer estas cosas.

    Antes de que un archivo pueda leerse o escribirse, éste debe abrirse, en cuyo instante se verifican los permisos. Si se permite el acceso, el sistema produce un entero pequeño llamado descriptor del archivo para utilizarse en operaciones subsiguientes. Si se prohibe el acceso, se produce un código de error.

    4. Shell (intérprete de comandos):

    El sistema operativo es el código que realiza las llamadas al sistema. Los editores, compiladores, ensambladores, enlazadores e intérpretes de comandos definitivamente no son parte del sistema operativo, aunque son importantes y útiles. El Shell es el intérprete de comandos, a pesar de no ser parte del sistema operativo, hace un uso intenso de muchas características del sistema operativo y por tanto sirve como un buen ejemplo de la forma en que se pueden utilizar las llamadas al sistema. También es la interfaz primaria entre un usuario situado frente a su terminal y el sistema operativo.

    Cuando algún usuario entra al sistema, un "shell" se inicia. El shell tiene la terminal como entrada y como salida estándar. Este da inicio al teclear solicitud de entrada, carácter como un signo de pesos, el cual indica al usuario que el shell está esperando un comando. En MS-DOS normalmente aparece la letra de la unidad, seguida por dos puntos (:), el nombre del directorio en que se encuentra y por último el signo de "mayor que" (>). Esto es: C:>

    5. Estructura de un Sistema Operativo

    Internamente los sistemas operativos estructuralmente de se clasifican según como se hayan organizado intérnamente en su diseño, por esto la clasificación más común de los S.O. son:

    • Sistemas monolíticos:

    En estos sistemas operativos se escriben como un conjunto de procedimientos, cada uno de los cuales puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea esta técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados, y cada una tiene la libertad de llamar a cualquiera otra, si la última ofrece algún cálculo útil que la primera necesite.

    Para construir el programa objeto real del sistema operativo cuando se usa este método, se compilan todos los procedimientos individuales a archivos que contienen los procedimientos y después se combinan todos en un solo archivo objeto con el enlazador.

    En términos de ocultamiento de información, esencialmente no existe ninguno; todo procedimiento es visible para todos (al contrario de una estructura que contiene módulos o paquetes, en los cuales mucha información es local a un módulo y sólo pueden llamar puntos de registro designados oficialmente del exterior del módulo)

    Esta organización sugiere una estructura básica del sistema operativo:

    1.- Un programa central que invoque el procedimiento de servicio solicitado (Shell o Kernel)

    2.- Un conjunto de procedimientos de servicios que realice las llamadas al sistema.

    3.- Un conjunto de procedimientos de uso general que ayude a los procedimientos de servicio

    • Sistemas en estratos:

    Estos sistemas operativos se organizan como una jerarquía de estratos, cada uno construido arriba del que está debajo de él. El primer sistema construido en esta forma fuel el sistema THE que se fabricó en Technische Hogeschool Eindhoven de Holanda por E. W Dijkstra (1968) y sus alumnos. El sistema THE era un sistema de lote para una computadora alemana, la Electrológica X8, que tenía 32K de palabras de 27 bits ( los bits eran costosos en aquellos días)

    El sistema tenía 6 estratos, estos se muestran en la siguiente tabla:

    5

    Operador de THE

    4

    Programas del usuario

    3

    Administración de Entrada/Salida

    2

    Comunicación entre el operador y el proceso

    1

    Administración de la memoria y el tambor magnético

    0

    Distribución del procesador y multiprogramación

    – El estrato 0 trabajaba con la distribución del procesador, cambiando entre procesos cuando ocurrían interrupciones o los relojes expiraban. Sobre el estrato 0, el sistema constaba de procesos secuenciales, cada uno de los cuales podía programarse sin tener que preocuparse por el hecho de que múltiples procesos estuvieran corriendo en un solo procesador. En otras palabras, el estarto 0 ofrecía la multiprogramación básica de la CPU.

    El estrato 1 realizaba el manejo de memoria. Este distribuía espacio para procesos contenidos en la memoria central y en un tambor de 512K palabras que se usaba para contener partes de procesos (páginas) para las cuales no había espacio en la memoria central. Sobre el estrato 1, los procesos no tenía que preocuparse de si estaban en la memoria o en el tambor; el software del estrato 1 se hacía cargo de asegurar que las páginas se trajeran a la memoria siempre que se necesitaran.

    El estrato 2 manejaba la comunicación entre cada proceso y la consola de operador.

    El estrato 3 se hacía cargo de manejar los dispositivos de E/S y de separar la información en flujo que entraba y salí de ellos. Sobre el estrato 3 cada proceso podía trabajar con dispositivos de E/S abstractos con propiedades agradables, en vez de dispositivos reales con muchas peculiaridades

    El estrato 4 era donde se encontraban los programas de los usuarios. No tenían que preocuparse por el manejo de los procesos, memoria, consola o E/S. El proceso operador del sistema se localizaba en el estrato 5.

    Trabajo enviado y realizado por:

    Francisco Armando Dueñas Rodríguez Edad: 23 años Universidad La Salle Lic. en Informátic Cancún, Quintana Roo México