Monografias.com > Computación > Sistemas Operativos
Descargar Imprimir Comentar Ver trabajos relacionados

Administración de procesos en SOs




Enviado por perses_1



    Sistemas operativos

    1. Procesos
    2. Implantación de los
      procesos
    3. Comunicación entre
      procesos
    4. Instrucción
      TSL
    5. Planificación de
      procesos
    6. Colas
      múltiples
    7. Procesos
      ligeros
    8. Señales

    Introducción

    El siguiente documento describe las
    características que presentan los sistemas
    operativos para la
    administración de procesos en
    los sistemas mono y
    multiprocesadores. Se comienza con una introducción sobre la funcionalidad de un
    proceso para
    luego entrar en los detalles de implementación
    típicos de los sistemas
    operativos. Aún no termine la totalidad del documento
    pero lo quiero publicar en Internet para obtener
    feedback por parte de los lectores interesados en el
    mismo.

    Procesos

    ¿Qué es un
    proceso?

    Un proceso es un programa en
    ejecución. Un proceso simple tiene un hilo de
    ejecución, por el momento dejemos esta última
    definición como un concepto, luego
    se verá en más detalle el concepto de hilo. Una vez
    definido que es un proceso nos podríamos preguntar
    cuál es la diferencia entre un programa y un proceso, y
    básicamente la diferencia es que un proceso es una
    actividad de cierto tipo que contiene un programa, entradas
    salidas y estados.

    Los procesos pueden ser cooperantes o independientes, en
    el primer caso se entiende que los procesos interactúan
    entre sí y pertenecen a una misma aplicación. En el
    caso de procesos independientes en general se debe a que no
    interactúan y un proceso no requiere información de otros o bien porque son
    procesos que pertenecen a distintos usuarios.

    Estados de los procesos

    Un proceso puede estar en cualquiera de los siguientes
    tres estados: Listo, En ejecución y Bloqueado.

    Los procesos en el estado
    listo son los que pueden pasar a estado de
    ejecución si el planificador los selecciona. Los procesos
    en el estado ejecución son los que se están
    ejecutando en el procesador en ese
    momento dado. Los procesos que se encuentran en estado bloqueado
    están esperando la respuesta de algún otro proceso
    para poder
    continuar con su ejecución. Por ejemplo operación
    de E/S.

    Implantación de
    los procesos

    La implementación del modelo de
    procesos se logra debido a que el sistema operativo
    almacena en una tabla denominada tabla de control de
    procesos información relativa a cada proceso que se esta
    ejecutando en el procesador. Cada línea de esta tabla
    representa a un proceso.

    La información que se almacena es la
    siguiente:

    1) Identificación del proceso.

    2) Identificación del proceso padre.

    3) Información sobre el usuario y grupo.

    4) Estado del procesador.

    5) Información de control de proceso

    5.1) Información del planificador.

    5.2) Segmentos de memoria
    asignados.

    5.3) Recursos
    asignados.

    Comunicación entre procesos

    Condiciones de
    competencia

    Las condiciones de competencia se
    dan cuando dos o más procesos intentan acceder a un mismo
    recurso.

    Secciones críticas

    Para solucionar las condiciones de competencia se
    implementó un modelo para prohibir que dos procesos
    accedan al mismo recurso. El modelo en cuestión se
    denomina exclusión mutua.

    Exclusión mutua con espera
    ocupada

    Las soluciones con
    espera ocupada funcionan de la siguiente manera, cuando un
    proceso intenta ingresar a su región crítica, verifica si esta permitida la
    entrada. Si no, el proceso se queda esperando hasta obtener el
    permiso.

    Desactivación de
    interrupciones

    El método
    más simple para evitar las condiciones de competencia es
    hacer que cada proceso desactive todas sus interrupciones antes
    de entrar a su sección crítica y las active una vez
    que salio de la misma. Este modelo como se puede observar,
    éste modelo tiene una gran problema y es que si se produce
    una falla mientras que el proceso esta en la región
    crítica no se puede salir de la misma y el sistema operativo
    no recuperaría el control.

    Variables
    cerradura

    En éste caso se genera una variable la cual puede
    tener dos valores o bien
    0 (no hay ningún proceso en su sección
    crítica) o bien 1 (indicando que la sección
    crítica está ocupada) entonces cada proceso antes
    de ingresar a la sección crítica verifica el estado
    de la variable de cerradura y en caso de que la misma este en 0,
    le cambia el valor e
    ingresa a la misma y en caso de que la misma sea 1 el proceso se
    queda verificando el estado de la misma hasta que el mismo sea
    0.

    El problema aquí se presenta si dos procesos
    verifican al mismo tiempo que la
    variable cerradura esta en 0 e ingresan a la región
    crítica.

    Alternancia
    estricta

    El algoritmo de
    alternancia estricta no bloquea el ingreso a la región
    crítica cuando otro proceso se esta ejecutando. El
    problema de ésta solución es que cuando un proceso
    no esta en la sección crítica igualmente tiene
    bloqueado el acceso a la misma y por lo tanto no permite que otro
    proceso que requiera ingresar a la misma logre
    hacerlo.

    Instrucción TSL

    Esta solución requiere ayuda del hardware y es debido a que
    en general las computadoras
    diseñadas para tener más de un procesador tienen
    una instrucción TEST AND SET
    LOCK

    Dormir y despertar

    El modelo de espera acotada tienen el inconveniente que
    se desperdicia tiempo de procesador.

    El problema del productor y el
    consumidor

    El problema del productor y el consumidor
    describe el echo de que cuando hay dos o más procesos
    interactuando a través de un buffer común habiendo
    procesos que ponen información o datos y otros que
    los sacan se pueden llegar a dar condiciones en las cuales los
    procesos que ingresan los datos no puedan hacerlo debido a que el
    buffer ya se encuentra lleno y para el caso de los que sacan los
    datos del buffer intenten sacar datos cuando ya no hay nada que
    sacar. Para evitar estas condiciones se desarrollaron métodos de
    comunicación/sincronización entre
    procesos en los cuales se impide que esto suceda haciendo que el
    proceso productor "duerma" si el buffer está lleno y una
    vez que exista espacio el proceso "consumidor" despierte al
    productor para que siga generando o viceversa.

    Planificación de procesos

    La planificación es el proceso por el cual el
    sistema operativo selecciona que proceso ejecutar. La selección
    del proceso se basa en alguno de los algoritmos de
    planificación que se describen más
    abajo.

    Expulsión

    Es la característica por el cual el sistema
    operativo puede o no expulsar del estado de ejecución a un
    proceso dado. En este sentido entonces tenemos la
    planificación apropiativa en la cual el sistema operativo
    puede cortar en cualquier momento la ejecución de un
    proceso y la planificación no apropiativa en la cual una
    vez que el proceso esta en ejecución el sistema operativo
    no puede sacarlo de ese estado.

    Objetivos de la
    planificación

    Los objetivos de
    la planificación de proceso son:

    • Equidad, todos los procesos deben poder
      ejecutarse
    • Eficacia, mantener ocupada la CPU un 100%
      del tiempo
    • Tiempo de respuesta, minimizar el tiempo de respuesta
      al usuario
    • Tiempo de regreso, minimizar el tiempo que deben
      esperar los usuarios por lotes para obtener sus
      resultados
    • Rendimiento, maximizar el número de tareas
      procesadas por hora.

    Algoritmos de
    planificación

    Los algoritmos de planificación son los que
    definen que política se va a
    seguir para que un proceso pase al estado de
    ejecución.

    Planificación
    Round-Robin

    En este tipo de planificación cada proceso tiene
    asignado un quantum de tiempo para ejecutarse y en el caso de que
    no pueda terminar la ejecución en su quantum el proceso
    pasa de nuevo a la cola de procesos para ser ejecutado por otro
    quantum luego de recorrer la cola para asegurarse que todos los
    procesos reciban ese quantum de procesamiento.

    Planificación por
    prioridad

    En la planificación round-robin todos los
    procesos son tratados con la
    misma prioridad. Para el caso de este tipo de
    planificación a cada proceso se le asigna una prioridad y
    los mismos son ejecutados

    Colas múltiples

    Las colas múltiples están basadas en una
    pila que sirve como índice de una lista de procesos que se
    tienen que ejecutar.

    Primero el trabajo
    más corto

    Este tipo de algoritmo de planificación se usa
    para trabajos en batch o de procesamiento or lotes en los cuales
    se puede saber cual es el tiempo de duración de la
    ejecución de cada proceso y entonces se puede seleccionar
    primero el trabajo
    más corto. El problema que se presenta con éste
    algoritmo es que los grandes procesos podrían sufrir de
    inanición dado que cualquier proceso pequeño se
    "cuela" sobre uno de mayor tamaño y como resultado final
    se podría dar el caso que el proceso grande nunca obtenga
    procesamiento.

    Planificación
    garantizada

    En este modelo de planificación se tiene en
    cuenta la cantidad de usuarios en el sistema y se le asigna a
    cada uno el tiempo de ejecución de 1/n (siendo n la
    cantidad total de usuarios) de esa forma el planificador tiene
    que llevar cuenta del tiempo de ejecución de los procesos
    y balancear el tiempo que están utilizando el procesador
    para cumplir con la ecuación previa.

    Procesos
    ligeros

    Los procesos ligeros son programas en
    ejecución son básicamente procesos pero a
    diferencia de éstos últimos que solo tienen un hilo
    de ejecución los primeros tienen el hilo principal
    más hilos secundarios o hijos, en éste caso todos
    los procesos hijos comparten la información del hilo
    principal pero además puede cada hilo tener su
    información privada.

    Dentro de la información propia
    tenemos:

    • Contador de programa
    • Pila
    • Registros.
    • Estado del proceso ligero.
    • Dentro de la información compartida
      tenemos:
    • Variables globales.
    • Archivos abiertos
    • Señales
    • Semáforos.
    • Contabilidad.

    Señales

    Las señales
    son el mecanismo de comunicación que se establece entre
    los procesos. Para comparar se puede decir que las señales
    son a los procesos lo que las interrupciones son al procesador.
    Cuando un proceso recibe una señal detiene su
    ejecución, bifurca a la rutina del tratamiento de la
    señal que esta en el mismo proceso y luego una vez
    finalizado sigue la ejecución en el punto que había
    bifurcado anteriormente.

    Las señales se pueden originar en un proceso o
    bien en el sistema operativo. Las señales se pueden enviar
    entre procesos, solo los que tengan el mismo uid, o bien el
    sistema operativo puede enviarle una señal a un proceso,
    por ejemplo excepciones de ejecución.

     

     

    Perses Crio

    Licenciatura de sistemas

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter