27/3/09

Gestión de Entrada y Salida

El hardware asociado con un dispositivo de E/S consta de cuatro elementos básicos que son el bus para comunicarse con la CPU y es compartido entre varios dispositivos, Un puerto que consta de varios registros (Estado, Control, Datos_entrada, Datos_salida), un controlador que recibe ordenes del bus del sistema, traduce ordenes, y lee/escribe datos desde/en el bus del sistema, y por ultimo el propio dispositivo, bien sea tradicional como impresoras, teclado, modem, ratón, pantalla, entre otros, como no tradicionales joystick, actuador de robot, superficie de vuelo de un avión, sistema de inyección de un coche, etc.

Existen varias formas en que el sistema operativo se comunique con cualquier dispositivo de entrada y salida, uno de ellos es el sondeo donde el CPU espera hasta que el estado sea libre y ajusta el registro de ordenes y datos-salida (si la operación es de salida), luego ajusta el estado a orden-preparada haciendo reaccionar el controlador y pone estado a ocupado, lee registro de ordenes y ejecuta orden, pone un valor en datos-salida (si es una orden de salida), suponiendo que la orden tiene éxito el controlador cambia el estado a ocioso, la CPU observa el cambio a ocioso y lee los datos si es una operación de salida. El sondeo es buena elección si los datos van a ser manejados al instante (un modem o teclado).

Por otro lado, en lugar de tener la CPU ocupada esperando la disponibilidad del dispositivo, se encuentra la interrupción, otra forma de comunicación entre sistema operátivo-dispositivo, donde el dispositivo interrumpe a la CPU cuando ha terminado una operación de e/s, cuando esto ocurre, la cpu determina que dispositivo la provocó y si la última orden fue una operación de entrada, recupera los datos del registro del dispositivo e  inicia la siguiente operación para el dispositivo.

Arquitectura software del sistema de E/S

Se puede estructurar el software de e/s en capas:

  • Manejadores de dispositivos: Cada manejador gestiona un tipo o clase de dispositivo. Acepta peticiones “abstractas” de la capa de software independiente del dispositivo y las traduce en ordenes para el controlador del dispositivo, además controla que la petición se realiza y se bloquea o no, según tipo de operación. Si no hay errores, da respuesta si es necesario, y retorna al llamador.
  • Software de e/s independiente del dispositivo: Realiza las tareas comunes a todos los dispositivos como la protección, implementa el búfering, asigna y libera dispositivos dedicados, informar de errores producidos y suministra una interfaz común al usuario.
  • Software a nivel de usuario: permiten realizar las llamadas al sistema de e/s para la gestión de formatos y control de los dispositivos


Rendimiento y sus soluciones

En cuanto a el rendimiento de las E/S se puede decir por varias razones que son costosas, ya que, Involucran movimientos físicos lentos (cabezal disco) o líneas de comunicaciones (teléfono-red) que también lo son.

Los dispositivos de E/S son a menudo disputados por múltiples procesos y se suministran por medio de llamadas al sistema y gestión de interrupciones, que son lentas. Para solucionar esto seria mas factible reducir el número de veces que los datos son copiados manteniéndolos en caché, reducir la frecuencia de interrupciones utilizando, si es posible, grandes transferencias de datos y descargar computación de la CPU principal utilizando controladores de dispositivos que puedan escribir directamente en memoria( DMA, Direct Memory Access).

Gestión de Procesos

Proceso

Son todas aquellas instrucciones que posee un programa determinado que esperan ser ejecutadas por el microprocesador, estos a su vez poseen diferentes estados  e información necesaria para que el Sistema Operativo tome diferentes decisiones.


Estados de un Proceso

Modelo de Dos Estados

Este modelo es uno de los más simples de todos y consta de manejar los procesos como Ejecución y No Ejecución.  Esto quiere decir que cuando un proceso es creado este viene con uno de los estados, en este caso sería No Ejecución, el cual al pasar algún tiempo empezara a ejecutarse (Ejecución), para posterior mente  culminar y ceder el paso al próximo proceso.

Modelo de 5 Estados

Este modelo complementa a el anterior agregandole otros 3 estados, los cuales son:

  • Listo: El Proceso esta listo para ser ejecutado, solamente espera que el planificador del Sistema Operativo disponga su ejecución.
  • Espera: El Proceso está a la espera de algún otro proceso para poder continuar.
  • Nuevo: El Proceso recientemente fue creado pero todavía no ha sido admitido por el Sistema Operativo, generalmente estos aún no son cargados en memoria.


Bloque de Control de Proceso (PCB)

Es un almacenamiento central de información que permite al sistema operativo localizar toda la información clave sobre el proceso.  Toda la información que está dentro de la PCB es de gran importancia para los Sistemas Operativos, ya que con esta pueden saber el Estado del Proceso, su identificador, sus registros, limites de memoria, estatus de los dispositivos de E/S, entre otros.


Interrupciones

Es una señal emitida por algún proceso en ejecución al Sistema Operativo, la cual necesita ser atendida en la brevedad posible, éste coloca al o los procesos que estén en estado de Ejecución a Suspendidos, luego guarda el o los valores del contador del programa en la pila, seguidamente el Sistema Operativo salta a la dirección de rutina de interrupción del proceso, al terminar de ejecutar la rutina vuelve al contador de programas y continúa con los procesos en las instrucciones en las que habían quedado.  Las Interrupciones pueden venir tanto del Hardware como el Software.


Planificación de los Procesos

Es el encargado de pasar los procesos a la memoria principal y al microprocesador, decidiendo qué procesos de los que están listos pasarán a ejecución cuando el computador se libere de algún otro proceso.  Existen diferentes tipos de Planificación, estos son algunos:

FIFO (First In, First Out)

Consiste en que el primer proceso que este listo para ser ejecutado va a ser el primero que va a ser atendido, y los procesos consiguientes son almacenados en colas de procesos y tienen que esperar que el proceso anterior culmine para ser ejecutados.  Anteriormente cuando solo existían los Sistemas Operativos Monotareas, ésta era la política de planificación que se implementaba.

Primer Tiempo Más Corto

El Sistema Operativo realiza un paneo de los procesos que esperan ser ejecutados y los ordena de manera ascendente de acuerdo con el tiempo de ejecución, es decir, que el proceso que dure menor tiempo de ejecución será atendido primero y luego el corto más próximo.

Prioridad

Todos los Procesos guardan en su PCB su nivel de prioriad.  Con esta planificación cada proceso entrante será atendido por el microprocesador de acuerdo a su prioridad, es decir, que si un proceso entrante es de alta prioridad y hay procesos de prioridad media, éste se ejecuta primero que los demás.

Round Robin

Por lo general ésta planificación es acompañada por la de FIFO, ya que se trata de darle un Quantum  de tiempo a cada proceso, que al cumplirse el plazo éstos son devueltos al final de la cola y se atiende el siguiente proceso.

23/3/09

Estructura de los Sistemas Operativos

Sistemas Monolíticos

El Sistema Operativo es una colección de procedimientos que se pueden llamar entre si, a su vez cada uno de ellos posee una interfaz bien definida en términos de parámetros y resultados.



Para la ejecución de los servicios del Sistema Operativo (llamadas al Sistema):
  • Se solicitan colocando los parámetros en lugares bien definidos (registros o pilas).
  • Se ejecuta la llamada al núcleo o Kernel.
  • La máquina cambia a modo supervisor o Kernel.
  • Se Transfiere el control al Sistema Operativo.
  • El Sistema Operativo examina los parámetros de la llamada para determinar cuál de ellas se desea realizar.
  • El Sistema Operativo analiza una tabla que contiene en la entrada "k" un apuntador al procedimiento que realiza la "k-ésima" llamada al sistema (Identifica al procedimiento de servicio llamado).
  • La llamada al sistema y el control regresa al programa del usuario.



Cabe destacar que los procesos realizados en esta estructura son tratados de forma secuencial o estructurada.

Ejemplo: UNIX, MS-DOS.


Diseño por Capas

Consiste en organizar el Sistema Operativo como una jerarquía de capas, donde cada capa ofrece una interfaz clara y bien definida a la capa superior y solamente utiliza los servicios que le ofrece la capa inferior.

En cada una de ellas se encapsulan funciones específicas, así cada capa se encarga de una parte específica del Sistema Operativo.

El Primer sistema con este esquema fue el THE (Technische Hogeschool Eindhoven), la cual consistía de 6 capas:

5.- Operador
4.- Programas del Usuario
3.- Control de Entrada/Salida
2.- Comunicaciones Operador/Proceso
1.- Administrador de la Memoria y el Disco Duro
0.- Asignación del Procesador y Multiprogramación

La principal ventaja que nos ofrece este modelo es la modulación y la ocultación de la información, ya que una capa no necesita saber cómo fue implementada la capa sobre la que se construye, sino la interfaz que esta ofrece.


Modelo Cliente-Servidor

En este modelo se definen dos tipos de procesos: Procesos Clientes y Procesos Servidores.  El primero es quien debe enviar una solicidud al servidor, este realiza el trabajo y luego devuelve una respuesta.



La función del Kernel se reduce a funciones básicas como controlar, supervisar y coordinar la comunicación entre los procesos clientes y servidores.  Al dividir el Sistema Operativo en partes pequeñas, cada una de las cuales se encarga del manejo de una faceta del sistema, como el servicio de archivo, servicio de procesos, entre otros, cada parte se vuelve pequeña y fácil de manejar.  Además como todos los servidores corren en modo usuario y no en modo núcleo, no tienen acceso al hardware.  Esto trae como beneficio que si se activa un error oculto en el servidor de archivo por ejemplo, esto hará fallar el servicio de archivos pero por lo general no hará fallar la maquina.



Otra de las ventajas de este modelo es su adaptabilidad en sistemas distribuidos.  Si un Cliente se comunica con su servidor por medio de mensajes, no es relevante para él si el mensaje se maneja de forma local, o si bien se envió en una red a un Servidor de una máquina remota.


22/3/09

Maquina Extendida

Dentro de un Computador se pueden definir dos tipos de Maquinas:

a) Maquina Desnuda.
b) Maquina Extendida.

Al hablar de la Maquina Desnuda nos referimos al Hardware que posee el computador, la cual es importante para llevar a cabo todos los procesos que se necesiten realizar, aquí todas la operaciones se ejecutan en código binario.

En cambio al mencionar una Maquina Extendida estamos en presencia de una Maquina Desnuda junto a un Sistema Operativo que administra todos los recursos del computador, es decir, que gracias a la creación de los sistemas operativos los programadores pueden realizar aplicaciones en lenguajes de alto nivel y no solamente en código binario como anteriormente se hacían.