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

Gestión de procesos. Sistemas operativos




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    1
    Introducción
    Procesos
    Visión abstracta
    Esbozo de implementación
    Threads (Procesos ligeros)
    Comunicación entre procesos
    Condición de carrera
    Exclusión mutua y región crítica
    Implementación de la exclusión mutua
    Paso de mensajes
    Planificación de procesos
    Criterios
    Políticas
    Sistemas multiprocesador

    Monografias.com

    2
    INTRODUCCIÓN
    Interesa tener máquinas que ejecuten varios procesos al mismo tiempo
    (Gp:) 18
    (Gp:) T1
    (Gp:) T2
    (Gp:) T3
    (Gp:) t

    Aprovechar tiempos muertos E/S
    Soluciones elegantes concurrentes
    Más rapidez con más de una CPU
    (Gp:) T1
    (Gp:) T2
    (Gp:) T3
    (Gp:) t
    (Gp:) 13

    (Gp:) CPU1
    (Gp:) CPU2

    Con multiprocesadores también interesa multiplexar las CPU's
    pseudoparalelismo

    Monografias.com

    3
    PROCESOS (Visión abstracta: Recordar sus llamadas)
    Dos relaciones típicas entre proceso Padre y proceso Hijo:
    (Gp:) Procesos independientes: La "shell" crea un proceso para ejecutar un programa de usuario "ls"
    (Gp:) ls.exe
    (Gp:) shell
    (Gp:) P

    (Gp:) Debe cargarse el ejecutable en memoria
    (Gp:) ls

    (Gp:) Dotarle de registros, pila, etc.
    (Gp:) H

    El código ya está en memoria
    (Gp:) Procesos cooperantes: Un servidor Web crea un proceso para atender una petición de un cliente
    (Gp:) web
    (Gp:) P

    (Gp:) Dotarle de registros, pila, etc.
    (Gp:) H

    Parecido a Threads
    ¿fork + exec?
    ¿fork?

    Monografias.com

    4
    PROCESOS (Visión abstracta: Recordar sus llamadas)
    Proceso de arranque y grupos de procesos
    (Gp:) P1
    (Gp:) P2
    (Gp:) P3
    (Gp:) P4
    (Gp:) P5
    (Gp:) P6
    (Gp:) P7

    init
    (Gp:) id:rlevel:action:process
    (Gp:) /etc/inittab

    (Gp:) xinetd

    (Gp:) /etc/rc5.d
    (Gp:) /etc/rc.d/rc 5

    (Gp:) login
    (Gp:) login
    (Gp:) login as:
    Password:

    (Gp:) bash

    (Gp:) pcarazo:……..:/bin/bash
    (Gp:) /etc/passwd

    PC1>
    (Gp:) grupo de procesos

    (Gp:) Red

    (Gp:) putty
    (Gp:) ?

    (Gp:) gdm

    (Gp:) 0 Halt
    1 Monousuario
    2 MultiSinRed
    3 MultiConRed
    5 X11
    6 Reboot
    (Gp:) rlevel

    Monografias.com

    5
    PROCESOS (Visión abstracta: Recordar sus llamadas)

    Monografias.com

    6
    Esbozo de implementación
    (Gp:) ¿Cómo es el ciclo de vida de un proceso?
    (Gp:) CPU

    (Gp:) Creación
    (Gp:) P1

    (Gp:) P2

    P3
    (Gp:) P1

    (Gp:) P2
    (Gp:) P3

    (Gp:) P2

    (Gp:) P3

    P4
    (Gp:) Expulsión
    (Gp:) P3

    (Gp:) P4
    (Gp:) P3

    (Gp:) P1

    (Gp:) P4

    (Gp:) P3
    (Gp:) P1

    (Gp:) Terminación

    (Gp:) P1

    (Gp:) P2

    (Gp:) P4

    ¿Estados de un proceso?
    (Gp:) EnEjecución
    Preparado
    EnEspera o Bloqueado
    (Gp:) Activo

    (Gp:) Ejecu.
    (Gp:) Prep.
    (Gp:) Espera

    Monografias.com

    7
    Diagrama de transición de estados de un Proceso
    (Gp:) Preparado

    (Gp:) EnEjecución

    (Gp:) EnEspera

    (Gp:) forkh

    (Gp:) forkp

    (Gp:) exit

    (Gp:) exit

    (Gp:) exit

    (Gp:) wait

    wait
    wait
    sleep
    sleep
    F.R.
    F.R.
    F.R.
    F.R.
    (Gp:) ¿forkp?
    (Gp:) ¿forkh?

    Monografias.com

    8
    (Gp:) El contexto de un proceso está distribuido en varias zonas
    (Gp:) CPU
    (Gp:) MP
    (Gp:) MSec
    (Gp:) S.O.

    Esbozo de implementación en términos más informáticos
    (Gp:) Contexto de memoria (Código y Datos) MP/MSec

    (Gp:) Bloque de control (descriptor) del Proceso MP (S.O.)

    (Gp:) Contexto del procesador Reg/MP/MSec

    (Gp:) Ejecutándose

    (Gp:) Bloqueado
    (Gp:) pila

    Monografias.com

    9
    Esbozo de implementación ( ¿Cuántos procesos? )
    ¿#Procesos ilimitado o un máximo predeterminado?
    maxProcesos: constant:=100;
    type idProceso is NATURAL range 0..maxProcesos;
    Reservado
    (Gp:) procesos : array[1..maxProcesos] of descriptorProceso;
    (Gp:) 1
    (Gp:) 2
    (Gp:) 3
    (Gp:) 4
    (Gp:) 97
    (Gp:) 98
    (Gp:) 99
    (Gp:) 100
    (Gp:) 50

    (Gp:) type descriptorProceso is
    record
    pid: ———-;
    —————
    end record;
    (Gp:) 584

    ejecutandose : idProceso;
    ¿Correcto?

    Monografias.com

    10
    Esbozo de implementación ( ¿Cómo dar los PID's? )
    type descriptorProceso is
    record
    pid: idProceso;
    —————
    end record;
    (Gp:) 1
    (Gp:) 2
    (Gp:) 3
    (Gp:) 4
    (Gp:) 97
    (Gp:) 98
    (Gp:) 99
    (Gp:) 100
    (Gp:) 50
    (Gp:) 1..100

    ¿Problemas?
    99 procesos en el sistema
    Hago ps y veo un proceso mío (57)
    Me dispongo a kill -9 57
    Mi proceso termina antes del kill y se crea otro proceso con el código 57
    ¡ Mato a otro proceso !
    (Gp:) Mejor espaciar más los códigos
    (Gp:) pid: NATURAL;
    (Gp:) 1..65535…

    (Gp:) Algo más complejo
    dar PID's

    (Gp:) 0 ? Descriptor libre

    ¿ejecutandose?

    Monografias.com

    11
    Esbozo de implementación ( ¿Estados y su gestión? )
    type unEstado is (ejecutandose, preparado,
    espLapso, espFinHijo, zombie);

    Monografias.com

    12
    Esbozo de implementación ( ¿Estados y su gestión? )
    type unEstado is (ejecutandose, preparado,
    espLapso, espFinHijo, zombie);
    (Gp:) type descriptorProceso is
    record
    pid: NATURAL;
    estado: unEstado;

    end record;
    (Gp:) 1
    (Gp:) 2
    (Gp:) 3
    (Gp:) 4
    (Gp:) 97
    (Gp:) 98
    (Gp:) 99
    (Gp:) 100
    (Gp:) 50

    CPU queda libre. ¿A qué Pi se la doy?
    Recorro procesos buscando uno que esté preparado
    Lento e injusto
    Si decido elegir al Pi que lleva más tiempo preparado, lo mejor cola FIFO
    (Gp:) type unaCola is record
    primero: idProceso := 0;
    ultimo: idProceso:= 0;
    end record;

    (Gp:) preparados: unaCola;

    (Gp:) sig: IdProceso;

    (Gp:) ejecutandose: idProceso;

    Partes: 1, 2

    Página siguiente 

    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