Sistemas informáticos.




Introducción

  1.    Qué es un Sistema Operativo
  2.    Historia de los Sistemas Operativos - Generaciones
  3.    Conceptos de los Sistemas Operativos
  4.    Estructura de los Sistemas Operativos
  5.    Tendencias
  6.    Hardware
  7.    Software
  8.    Memoria Fija
  9.    Fin


Qué es un Sistema Operativo

Una de las definiciones más comúnmente aceptadas expresa:

El objetivo primario de un Sistema Operativo es:
A los efectos de situar a los S. O. en el conjunto del software para computadoras, podemos clasificar a este de la siguiente manera:
  • Programas de sistema:
  • Programas de aplicación:
  • En este contexto, el Sistema Operativo es el programa fundamental de todos los programas de sistema. El S. O. protege y libera a los programadores de la complejidad del hardware, colocándose un nivel de software por sobre el hardware para:
    El esquema típico de un sistema de cómputos incluye:
  • Programas de aplicación:
  • Programas de sistema:
  • Hardware:
  • Las principales características del microprograma son:
    Respecto del lenguaje de máquina es preciso señalar que:
    Una de las principales funciones del S. O. es ocultar toda esta complejidad y brindar al programador un conjunto más conveniente de instrucciones para trabajar.

    El S. O. se ejecuta en modo central o modo de supervisión, con máxima prioridad y generalmente con protección por hardware.

    Los compiladores, editores y demás programas se ejecutan en modo usuario.

    El S. O. es la serie de programas, dispuestos ya sea en el software o en la memoria fija (microcódigo), que hacen al hardware utilizable.

    Los S. O. ponen el “poder computacional básico” del hardware convenientemente a disposición del usuario, pero consumen parte de ese poder computacional para funcionar [7, Deitel].

    Los S. O. son, en primer lugar, administradores de recursos, siendo el recurso primario el hardware del sistema (ver Figura 1.1).
     

    Recursos administrados por el S. O.
    Las principales características de los S. O. son:
    Los principales recursos administrados por los S. O. son:
    Los S. O. son una interfaz con:
    El S. O. debe presentar al usuario el equivalente de una máquina extendida o máquina virtual que sea mas fácil de programar que el hardware subyacente.

    Inicio:    Fin:

    Historia de los Sistemas Operativos - Generaciones

    Los S. O. han estado relacionados históricamente con la arquitectura de las computadoras en las cuales se ejecutan, razón por la cual su historia puede analizarse según las siguientes generaciones y sus principales características [7, Deitel]:

    Inicio:    Fin:

    Conceptos de los Sistemas Operativos

    La interfaz entre el S. O. y los programas del usuario se define como el conjunto de “instrucciones ampliadas” [23, Tanenbaum] que proporciona el S. O. y son las “llamadas al sistema”:

    Procesos:
    Archivos:
    Llamadas al sistema:
    Inicio:    Fin:

    Estructura de los Sistemas Operativos

    Se considera la organización interna de los S. O. y conforme a ella se los clasifica de la siguiente manera, destacándose sus principales características:

    Sistemas monolíticos:


    Modelo de estructura simple para un modelo monolítico.


    Forma de llamada al sistema en un sistema monolítico.

    Sistemas con capas:
    5 - Operador
    4 - Programas del Usuario
    3 - Control de Entrada - Salida
    2 - Comunicaciones Operador - Proceso
    1 - Administración de la Memoria y del Disco
    0 - Asignación del Procesador y Multiprogramación
    Tabla 1.1: Estructura del S.O. en capas "THE".

    El primer sistema con este esquema fue el “THE” (Holanda - Dijkstra -1968): (ver Tabla 1.1 [23, Tanenbaum]).

    “THE”: Technische Hogeschool Eindhoven.
    • Capa 0:
      • Trabaja con la asignación del procesador.
      • Alterna entre los procesos cuando ocurren las interrupciones o expiran los cronómetros.
      • Proporciona la multiprogramación básica.
    • Capa 1:
      • Administra la memoria.
      • Asegura que las páginas (porciones de memoria) requeridas de los procesos lleguen a memoria cuando fueran necesarias.
    • Capa 2:
      • Administra la comunicación entre cada proceso y la consola del operador.
      • Por sobre esta capa, cada proceso tiene su propia consola de operador.
    • Capa 3:
      • Controla los dispositivos de e / s y almacena en buffers los flujos de información entre ellos.
      • Por sobre la capa 3 cada proceso puede trabajar con dispositivos abstractos de e / s en vez de con dispositivos reales.
    • Capa 4:
      • Aloja los programas del usuario.
      • Los programas. del usuario no tienen que preocuparse por el proceso, memoria, consola o control de e / s.
    • Capa 5:
      • Localiza el proceso operador del sistema.
    Una generalización mas avanzada del concepto de capas se presento con “Multics” (MIT, Bell Labs y General Electric):
    • “Multics”: multiplexed information and computing service.
    • Presenta una estructura en anillos concéntricos, siendo los interiores los privilegiados.
    • Un procedimiento de un anillo exterior, para llamar a un procedimiento de un anillo interior, debe hacer el equivalente a una llamada al sistema.
    Máquinas virtuales:
    Se separan totalmente las funciones de multiprogramación y de máquina extendida.

    Existe un elemento central llamado monitor de la máquina virtual que:

    • Se ejecuta en el hardware.
    • Realiza la multiprogramación.
    • Proporciona varias máquinas virtuales a la capa superior.
    Las máquinas virtuales instrumentan copias “exactas” del hardware simple, con su modo núcleo / usuario, e / s, interrupciones y todo lo demás que posee una máquina real.

    Pueden ejecutar cualquier S. O. que se ejecute en forma directa sobre el hardware.

    Las distintas máquinas virtuales pueden ejecutar distintos S. O. y en general así lo hacen.

    Soportan periféricos virtuales.

    Ejemplo de S. O. representativo de esta estructura: “VM/370” de IBM: (ver Figura 1.4 [23, Tanenbaum]).

    La estructura de VM/370 con CMS.

    Las m. v. generalmente utilizaran, entre otros, el S. O. “CMS”: Conversational Monitor System.
    Cuando un programa “CMS” ejecuta una llamada al sistema:
    • La llamada es atrapada por el S. O. en su propia m. v.; no pasa directamente al “VM/370”.
    • “CMS” proporciona las instrucciones de e / s en hardware para la lectura del disco virtual o lo necesario para efectuar la llamada.
    • “VM/370” atrapa estas instrucciones de e / s y las ejecuta sobre el hardware verdadero.
    Modelo cliente - servidor:
    Una tendencia en los S. O. modernos es la de explotar la idea de mover el código a capas superiores y mantener un núcleo mínimo, de manera similar al “VM/370”.

    Implantar la mayoría de las funciones del S. O. en los procesos del usuario.

    Para solicitar un servicio (por ej.: lectura de un bloque de cierto archivo) según el modelo cliente - servidor: (ver Figura 1.5 [23, Tanenbaum]).

    El modelo cliente - servidor.

    El proceso del usuario (proceso cliente) envía la solicitud a un proceso servidor:
    Realiza el trabajo y regresa la respuesta.
    El núcleo controla la comunicación entre los clientes y los servidores.

    Se fracciona el S. O. en partes, cada una controlando una faceta:

    Servicio a archivos, a procesos, a terminales, a memoria, etc., cada parte pequeña y más fácilmente controlable.
    Los servidores se ejecutan como procesos en modo usuario:
    • No tienen acceso directo al hardware.
    • Se aíslan y acotan más fácilmente los problemas.
    Se adapta para su uso en los sistemas distribuidos: (ver Figura 1.6 [23, Tanenbaum]).

    El modelo cliente - servidor en un sistema distribuido.

    Si un cliente se comunica con un servidor mediante mensajes:
    • No necesita saber si el mensaje se atiende localmente o mediante un servidor remoto, situado en otra máquina conectada.
    • Envía una solicitud y obtiene una respuesta.
    Algunas funciones del S. O., por ej. el cargado de comandos en los registros físicos del dispositivo de e / s, presentan problemas especiales y distintas soluciones:
    • Ejecución en modo núcleo, con acceso total al hardware y comunicación con los demás procesos mediante el mecanismo normal de mensajes.
    • Construcción de un mínimo de mecanismos dentro del núcleo manteniendo las decisiones de política relativas a los usuarios dentro del espacio del usuario.
    Inicio:    Fin:

    Tendencias

    Las principales tendencias en S. O. son las siguientes [7, Deitel]:

    Soporte generalizado para multiprocesamiento.

    Migración hacia el microcódigo de funciones de los S. O. realizadas por software.

    Distribución del control entre procesadores localizados.

    Mejora de la eficiencia en el soporte de la ejecución concurrente de programas.

    Soporte del paralelismo masivo con altísimo grado de concurrencia.

    Profundización de los esquemas de máquinas virtuales.

    Continuación del esquema de familias de S. O. para familias de computadoras, viendo las aplicaciones máquinas virtuales.

    Compatibilidad con nuevas generaciones de computadoras.

    Desarrollos en la ingeniería de software para brindar S. O. más preservables, confiables y comprensibles.

    Proliferación de redes de sistemas, distribuyendo tareas en equipos sobre los que el usuario puede no tener conocimiento ni control con énfasis en la importancia de la perspectiva de las máquinas virtuales.

    Permanencia del concepto de almacenamiento virtual.

    Permanencia de la perspectiva del S. O. como administrador de recursos, teniendo presente que los datos serán considerados cada vez más como un recurso para ser administrado.

    Profundización del desarrollo de S. O. con funciones distribuidas entre varios procesadores a través de grandes redes de sistemas [26, Tanenbaum].

    Inicio:    Fin:

    Hardware

    Los principales aspectos del hardware, de importancia para los S. O., son los siguientes [7, Deitel]:

    Compaginación del almacenamiento:
    Registro de relocalización:
    Interrupciones y escrutinio:
    Utilización del “buffer”:
    Dispositivos periféricos:
    Protección del almacenamiento:
    Temporizadores y relojes:
    Operaciones en línea y fuera de línea; procesadores satélite:
    Canales de entrada / salida:
    Robo de ciclo:
    Direccionamiento de base más desplazamiento:
    Estado de problema, estado supervisor, instrucciones privilegiadas:
    Almacenamiento virtual:
    Multiprocesamiento:
    Acceso directo a la memoria (DMA):
    Canalización:
    Jerarquía de almacenamiento:
    Inicio:    Fin:

    Software

    Consiste en los programas de instrucciones y datos que definen para el hardware los algoritmos necesarios para la resolución de problemas. Los aspectos más destacados en relación con los S. O. son los siguientes [7, Deitel]:

    Programación en lenguaje de máquina:
    “Lenguaje de máquina”:
    • Lenguaje de programación que un computador puede comprender directamente.
    • Es “dependiente de la máquina”: un programa en lenguaje de máquina escrito en el computador de un fabricante, generalmente no puede ser ejecutado en el de otro, salvo que su lenguaje de máquina sea compatible.
    • Muy poco usado actualmente.
    Ensambladores y macroprocesadores:
    Los “lenguajes ensambladores” se desarrollaron para:
    • Incrementar la velocidad de programación .
    • Reducir los errores de codificación.
    Los programas deben ser traducidos al “lenguaje de máquina” mediante un programa “ensamblador”:
    • También es dependiente de la máquina.
    Los “macroprocesadores”:
    • Se desarrollaron para acelerar la codificación de un programa ensamblador.
    • Se incorporaron en los ensambladores.
    • Una “macroinstrucción” indica la ejecución de varias instrucciones en lenguaje ensamblador.
    • El “procesador de macroinstrucciones” efectúa una “macroexpansión” cuando lee una macro durante la traducción de un programa:
      • Genera una serie de instrucciones en lenguaje ensamblador correspondientes a la macro.
    Compiladores:
    Sistemas de control de entrada / salida (IOCS: input / output control system):
    Utilización del SPOOL (Simultaneous Peripheral Operation On Line: operación simultánea de periféricos en línea):
    Lenguajes orientados hacia el procedimiento versus lenguajes orientados hacia el problema:
    Compiladores rápidos y sucios versus compiladores optimizadores:
    Interpretadores:
    Cargadores absolutos y de relocalización:
    Cargadores de enlace y editores de enlace:
    Inicio:    Fin:

    Memoria Fija

    El concepto de “microprogramación” suele atribuirse al prof. Maurice Wilkes (1951) [7, Deitel].

    La primer aplicación a gran escala fueron los S/360 (IBM - ’60) [24, Tanenbaum].

    La “microprogramación dinámica”: permite cargar fácilmente los nuevos “microprogramas” (“microcódigo”) dentro del “almacenamiento de control ”, desde donde son ejecutados:

    La “microprogramación” introduce una capa de programación por debajo del lenguaje de máquina:
    Los “microprogramas” están formados por “microinstrucciones” individuales que en relación a las instrucciones de los lenguajes de máquina son de:
    Cada instrucción de lenguaje de máquina es implementada por un microprograma completo que puede ser extenso:
    Microcódigos vertical y horizontal:

    El “microcódigo vertical ”:

    El “microcódigo horizontal ”:
    Decisión de qué funciones implementar en microcódigo:
    Emulación:
    Microdiagnósticos:
    Los microprogramas tienen más acceso al hardware que los programas de lenguaje de máquina:
    Computadores personalizados:
    El hardware proporciona un ambiente de propósito general para ejecutar programas de software:
    Asistencias de microcódigo:
    Implementan varias rutinas de manejo de interrupciones de uso más frecuente en microcódigo a fin de lograr mejoras significativas en la ejecución.
    Microprogramación y sistemas operativos:
    Las funciones implementadas frecuentemente en microcódigo son las siguientes:
    Inicio:    Fin:

    Para mayor información, seleccione una opción:

    Número de visitas efectuadas desde el 17/12/2001: 

    Estadísticas diarias desde el 10/07/2002:  

    Número de visitantes actuales disponible desde el 14/07/2002:

     

    AddFreeStats.com Free Web Stats in real-time !  

     

     

     

    Autor: lrmdavid@exa.unne.edu.ar

    Ó FACENA - http://exa.unne.edu.ar

    Servicios WEB: webmaster@exa.unne.edu.ar