lunes, 7 de diciembre de 2015

Resumen  de la clase dictada  11,18 y 25 noviembre y 2 de diciembre 2015

1.   INTRODUCCIÓN

Los sistemas operativos Fueron desarrollados hace más de medio siglo, durante este tiempo se han creados un sin número de ellos.
Los sistemas operativos se pueden estructurar en varias formas. Las más comunes son como un sistema monolítico, una jerarquía de capas, microkernel, cliente-servidor, máquina virtual o exokernel.

2.   OBJETIVO 

Conocer la estructura de los sistemas operativos 

3.   MARCO TEÓRICO

   3.1  PROCESOS

Un proceso es en esencia un programa en ejecución. Cada proceso tiene asociado un espacio de direcciones, una lista de ubicaciones de memoria que va desde algún mínimo (generalmente 0) hasta cierto valor máximo, donde el proceso puede leer y escribir información.
En esencia, un proceso es un recipiente que guarda toda la información necesaria para ejecutar un programa.

3.1.1      ESTADOS DE UN PROCESO

 

  • Nuevo: el proceso se está creando.
  • En ejecución: el proceso está en la CPU ejecutando instrucciones.
  • Bloqueado: proceso esperando a que ocurra un suceso
  • Preparado: esperando que se le asigne a un procesador. 
  • Terminado: finalizó su ejecución, por tanto no ejecuta más instrucciones y el SO le retirará los recursos que consume.

  3.2 HILOS

Un hilo es una unidad básica de utilización de CPU, la cual contiene un id de hilo, su propio program counter, un conjunto de registros, y una pila; que se representa a nivel del sistema operativo con una estructura llamada TCB (thread control block).
Los hilos comparten con otros hilos que pertenecen al mismo proceso la sección de código, la sección de datos, entre otras cosas. Si un proceso tiene múltiples hilos, puede realizar más de una tarea a la vez (esto es real cuando se posee más de un CPU).

3.2.1     VENTAJAS DE USAR HILOS

·         Respuesta: el tiempo de respuesta mejora, ya que el programa puede continuar ejecutándose, aunque parte de él esté bloqueado.
·         Compartir recursos: los hilos comparten la memoria y los recursos del proceso al que pertenecen, por lo que se puede tener varios hilos de ejecución dentro del mismo espacio de direcciones.
·         Economía: Es más fácil la creación, cambio de contexto y gestión de hilos que de procesos.
·         Utilización múltiples CPUs: permite que hilos de un mismo proceso ejecuten en diferentes CPUs a la vez. En un proceso mono-hilo, un proceso ejecuta en una única CPU, independientemente de cuantas tenga disponibles.
  Figura 1. Hilos


   3.3  ESTRUCTURA DE LOS SISTEMAS OPERATIVOS

S    Se considera la organización interna de los S.O. y conforme a ella se clasifica de la siguiente manera:

3.3.1      SISTEMAS MONOLÍTICOS.

E   En este diseño, que hasta ahora se considera como la organización más común, todo el sistema operativo se ejecuta como un solo programa en modo kernel. El sistema operativo se escribe como una colección de procedimientos, enlazados entre sí en un solo programa binario ejecutable extenso.

     Características:

  • ·         Es muy común: no existe estructura propiamente dicha o es mínima.
  • ·         Es S.O. es una colección de procedimientos que se pueden llamar entre sí.
  • ·         Cada procedimiento tiene una interfaz bien definida en términos de parámetros.
  • ·         Se ejecuta una instrucción especial de trampa: llamada al núcleo o llamada al supervisor.


3.3.2      SISTEMAS OPERATIVOS POR CAPAS

 

  •  Es una generalización del modelo de estructura simple para un sistema monolítico
  • Consiste en organizar en S.O. como una jerarquía de capas, cada una construida sobre la inmediata inferior.
  • Proporciona la multiprogramación

  • · Capa 1:

    Administra la memoria
    Asegura que las paginas (Porciones de memoria) requeridas de los procesos que lleguen a memoria cuando fueran necesarias.

    ·  Capa 2:
    Administra la comunicación entre cada proceso y al consola del operador
    Por sobre esta capa, cada proceso tiene su propia consola de operador

    · Capa 3:
    Controla los dispositivos de e/s y almacenamiento en buffers los flujos de información entre ellos.
    Por sobre esta capa 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, la memoria, consola o control de e/s.

    Capa 5:
    Localiza el proceso operador del sistema.
     

    3.3.3 MICROKERNELS

     

    La idea básica detrás del diseño de microkernel es lograr una alta confiabilidad al dividir el sistema operativo en módulos pequeños y bien definidos, sólo uno de los cuales (el microkernel) se ejecuta en modo kernel y el resto se ejecuta como procesos de usuario ordinarios, sin poder relativamente.
    En especial, al ejecutar cada driver de dispositivo y sistema de archivos como un proceso de usuario separado, un error en alguno de estos procesos puede hacer que falle ese componente, pero no puede hacer que falle todo el sistema. Así, un error en el driver del dispositivo de audio hará que el sonido sea confuso o se detenga, pero la computadora no fallará. En contraste, en un sistema monolítico con todos los drivers en el kernel, un driver de audio con errores puede hacer fácilmente referencia a una dirección de memoria inválida y llevar a todo el sistema a un alto rotundo en un instante.

    3.3.4 MODELO CLIENTE-SERVIDOR


    Una ligera variación de la idea del microkernel es diferenciar dos clases de procesos: los servidores, cada uno de los cuales proporciona cierto servicio, y los clientes, que utilizan estos servicios.
    Este modelo se conoce como cliente-servidor. A menudo la capa inferior es un  microkernel, pero eso no es requerido. La esencia es la presencia de procesos cliente y procesos servidor.
    La comunicación entre clientes y servidores se lleva a cabo comúnmente mediante el paso de mensajes. Para obtener un servicio, un proceso cliente construye un mensaje indicando lo que desea y lo envía al servicio apropiado. Después el servicio hace el trabajo y envía de vuelta la respuesta.
    Si el cliente y el servidor se ejecutan en el mismo equipo se pueden hacer ciertas optimizaciones, pero en concepto estamos hablando sobre el paso de mensajes.

    3.3.5     EXOKERNELS

     

    En vez de clonar la máquina actual, como se hace con las máquinas virtuales, otra estrategia es particionarla; en otras palabras, a cada usuario se le proporciona un subconjunto de los recursos. Así, una máquina virtual podría obtener los bloques de disco del 0 al 1023, la siguiente podría obtener los bloques de disco del 1024 al 2047 y así sucesivamente.
    En la capa inferior, que se ejecuta en el modo kernel, hay un programa llamado exokernel (Engler y colaboradores, 1995). Su trabajo es asignar recursos a las máquinas virtuales y después comprobar los intentos de utilizarlos, para asegurar que ninguna máquina trate de usar los recursos de otra. Cada máquina virtual de nivel de usuario puede ejecutar su propio sistema operativo, al igual que en la VM/370 y las Pentium 8086 virtuales, con la excepción de que cada una está restringida a utilizar sólo los recursos que ha pedido y que le han sido asignados. La ventaja del esquema del exokernel es que ahorra una capa de asignación.


    4. CONCLUSIÓN

    La estructura de los sistemas operativos nos permite saber cuáles son los recursos y servicios que está controlando el sistema operativo.
    Los procesos son de gran importancia ya son instancias, ya sea de un programa en ejecución o  de cualquier instrucción que realiza el usuario, los hilos son parte de los procesos se pueden denominar como subprocesos o procesos ligeros, lo que permiten es que un proceso tenga más de un hilo al mismo tiempo, con ello se pueden realizar varias cosas, escribir un archivo, guardar un archivo, dar formato a un archivo en el mismo tiempo de ejecución.

    5. BIBLIOGRAFÍA

    Amaya, J. 2010. Sistemas de información comerciales. 2ed.Colombia, Bogotá. p 5-7.
    Ortiz, H. 2005.Sistems Operativos.1ed. Colombia. p 11-16.
    Tanenbaum, A. 2009. Sistemas Operativos Modernos. 3ed. México, D. F. p 1-18.
    Villar, A. 2006. Introducción a la informática y al uso de y manejo de aplicaciones comerciales. España. p