domingo, 23 de enero de 2011

UNIDAD 2 : ESTADOS DE PROCESOS DE SISTEMAS OPERATIVOS

ESTADOS DE PROCESOS DE SISTEMAS OPERATIVOS

  • La tarea activa es la que está ejecutándose en un instante dado.En el caso de sistemas con un único procesador, sólo puede haber una tarea en dicho estado en cada instante.

  • En el estado de preparado, se encuentran todas las tareas que están listas para ejecutarse pero que esperan a que un/el procesador quede libre(hay otros procesos más prioritarios en ejecución).

  • Las tareas que están a la espera de que se cumpla una condición y que por lo tanto, no están preparadas para ejecutase, se dice que están en el estado bloqueado o suspendido; alguno ejemplos de condición son: que se termine una operación de E/S o que se reciba una señal de sincronización.

  • Un proceso esta muerto cuando ha terminado su ejecución o bien el sistema operativo a detectado un error fatal y lo ha transferido a dicho estado. También es posible que haya entrado él como resultado de un fallo del propio sistema operativo(cuestión que desgraciadamente suele ocurrir frecuente mente en algunos OS.

  • El estado de nonato indica que el programa realmente existe pero todavía no es conocido por el OS. 


  • 2.4 CONTROL DE PROCESOS DE SISTEMA OPERATIVO

    La mayoría de los procesadores dan soporte para dos modos de ejecución por lo menos. Ciertas instrucciones pueden ejecutarse sólo en modo privilegia do. Entre éstas están la lectura o molificación de registros de control (como la palabra de estado del programa), instrucciones primitivas de E/S e instrucciones relativas a la gestión de memoria. Además, se puede acceder a ciertas regiones de memoria sólo en el modo más privilegia do.
    El modo menos privilegia do a menudo se conoce como modo de usuario, ya que los pro¬ gramas de usuario ejecutan normalmente en ese modo. Al modo más privilegia do normal¬ mente se le conoce como modo del sistema, modo de controlo modo del núcleo.

    2.5 PROCESOS E HILOS

    Procesos E Hilos
    1. Definición de proceso.
    Espíritu animado de un programa
    Es una ejecución concreta de un programa, con un camino determinado y un valor de sus variables determinados.
    La unidad mínima de expedición y de asignación de recursos es el proceso.
    2. Estados en los que puede estar un proceso.
    • Listo. Tiene todo lo necesario para ejecutarse excepto el procesador.
    • Suspendido. No está en memoria principal.
    • Bloqueado. Está esperando un evento.
    • Bloqueado y suspendido.
    • Listo y suspendido.
    3. Tareas e hilos.
    Unidad mínima de asignación: tarea.
    Unidad mínima de expedición: hilo.

    Un hilo tendrá lo siguiente:
    • Estado.
    • Contexto del procesador. Punto en el que estamos ejecutando, la instrucción concretamente en la que nos hallamos.
    Es útil a la hora de reanudar un hilo que fue interrumpido con anterioridad, puesto que al guardar el contexto, guardamos la ultima instrucción que ejecutamos, y así podemos conocer por donde tenemos que continuar la ejecución del hilo.
    • Pila de ejecución donde se irá metiendo y sacando instrucciones.
    (Lugar donde almacenaremos las instrucciones que van a ser ejecutadas).
    • Espacio de almacenamiento estático donde almacenará las variables.
    • Acceso a los recursos de la tarea, que son compartidos por todos los hilos de la tarea.
    • Ventajas del uso de hilos.
    2.6 CONCURRENCIA Y EXCLUSIÓN  MUTUA  Y SINCRONIZACION

    Los temas fundamentales del diseño de sistemas operativos están relacionados conÇ la gestión de procesos e hilos:
    • Multiprogramación: consiste en la gestión de varios procesos dentro de un sistema mono-procesador.
    • Multiprocesamiento: consiste en la gestión de varios procesos, dentro de un sistema multiprocesador.
    • Procesamiento distribuido: consiste en la gestión de varios procesos, ejecutándose en sistemas de computadores múltiples y distribuidos. La reciente proliferación de las agrupaciones es el principal ejemplo de este tipo de sistemas.

    La concurrencia puede presentarse en tres contextos diferentes:
    • Múltiples aplicaciones: la multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varias aplicaciones activas.
    • Aplicaciones estructuradas: como ampliación de los principios del diseño modular y la programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes.
    • Estructura del sistema operativo: las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos o hilos.

    2.7 PRINCIPIOS GENERALES DE LA CONCURRENCIA

    En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo aparentando una ejecución simultánea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecución intercalada .

    2.8 EXCLUSION MUTUA

    Los algoritmos de exclusión mutua (comúnmente abreviada como mutex por mutual exclusion) se usan en programación concurrente para evitar el uso simultáneo de recursos comunes, como variables globales, por fragmentos de código conocidos como secciones críticas.
    La mayor parte de estos recursos son las señales, contadores, colas y otros datos que se emplean en la comunicación entre el código que se ejecuta cuando se da servicio a una interrupción y el código que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se toman las precauciones debidas, una interrupción puede ocurrir entre dos instrucciones cualesquiera del código normal y esto puede provocar graves fallos.
    La técnica que se emplea por lo común para conseguir la exclusión mutua es inhabilitar las interrupciones durante el conjunto de instrucciones más pequeño que impedirá la corrupción de la estructura compartida (la sección crítica). Esto impide que el código de la interrupción se ejecute en mitad de la sección crítica.

    2.9 SEMAFOROS DEL SISTEMA OPERATIVO

    Semáforos es un algoritmo de control de procesos, que tiene solo dos operaciones básicas, las cuales son:
    Wait.- Pregunta a los procesos si su contador es > ó = que cero, en caso de no ser así, los decrementa. El proceso que cambia en este caso a negativo (−1) desde la cola de procesos Listos a ser ejecutados es el que automáticamente toma el control del procesador.

    Signal.- A partir de un tiempo t definido por el despachador se ejecuta, y pregunta a los procesos si su contador es < que cero en caso de que sea afirmativa la respuesta, saca a este proceso de su ejecución y depende de su estado

    2.10 MONITORES DEL SISTEMA

    Un monitor encapsula el código relativo a un recurso compartido en un solo módulo de programa; ventajas:
    • mantenimiento más simple
    • menos errores de programación
    La implementación del monitor garantiza la exclusión mutua
    • mediante semáforos o algún otro mecanismo
    • o implícitamente en los lenguajes concurrentes

    2.11 PASO DE MENSAJES DEL SISTEMA OPERATIVO

    Paso de mensajes
    El paso de mensajes es una técnica empleada en programación concurrente para aportar sincronización entre procesos y permitir la exclusión mutua, de manera similar a como se hace con los semáforos, monitores, etc.
    Su principal característica es que no precisa de memoria compartida, por lo que es muy importante en la programación para sistemas distribuidos.

    Los elementos principales que intervienen en el paso de mensajes son el proceso que envía, el que recibe y el mensaje.

    2.12 CONCURRENCIA EN INTERBLOQUEO

    DEADLOCK

    Los procesos no son ejecutados constantemente desde que se inician hasta que son finalizados.
    Un proceso puede estar identificado con tres estados diferentes: leyendo (ready), ejecutando (running) o bloqueado (blocked). En el estado de lectura, un proceso está parado, concediendo que otro proceso sea ejecutado; en el estado de ejecución, un proceso está utilizando algún recurso; y en el estado de bloqueo, el proceso está parado y no se ejecutará mientras algo lo restaure.

    Una condición común no deseable es descripta como deadlock, que es cuando dos procesos están en un estado de ejecución, y requieren intercambiar recursos entre sí para continuar. Ambos procesos están esperando por la liberación del recurso requerido, que nunca será realizada; como no hay ningún resultado, tomará un camino que llevará a un estado de deadlock.


    No hay comentarios:

    Publicar un comentario