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

Diseño de sistemas operativos. Gestión de procesos




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    Índice
    Concepto de proceso y multiprogramación
    Implementación de procesos
    Operaciones sobre procesos
    Threads
    Planificación de procesos

    Monografias.com

    Concepto de proceso y multiprogramación
    Concepto "clásico": Programa secuencial en ejecución
    Multiprogramación: Múltiples programas en ejecución
    S.O. reparte recursos entre procesos salvando/restaurando su contexto:
    Programa cree que tiene una máquina dedicada
    Proceso: Abstracción de un "procesador virtual"
    Beneficios de la multiprogramación:
    Uso eficiente del procesador
    Soporte de múltiples usuarios
    Expresión del paralelismo de las aplicaciones

    Monografias.com

    Programa versus Proceso
    Programa (pasivo) != Proceso (activo)
    Múltiples procesos ejecutando el mismo programa (p.e. shell)
    En UNIX se aprecia claramente la diferencia:
    FORK: Nuevo Proceso – Mismo Programa
    EXEC: Mismo Proceso – Nuevo Programa
    Un proceso puede ejecutar varios programas durante su vida
    En otros sistemas proceso asociado a programa "de por vida"
    En Win32:
    CreateProcess: Nuevo Proceso – Nuevo Programa
    En UNIX sería necesario: FORK + EXEC en hijo

    Monografias.com

    Implementación de procesos
    Explicación basada en modelo proceso/núcleo
    S.O. no es un proceso: crea la abstracción de proceso
    S.O. pasivo:
    Sólo activo en inicio hasta que crea 1º proc. y le cede control
    1º proc. (init en UNIX) crea otros y éstos a su vez otros …
    Proceso única entidad activa
    Siempre hay un proceso ejecutando (aunque sea el nulo)
    Código del S.O. lo ejecutan los procesos
    Cuando se produce interrup., excepción o llamada al sistema

    Monografias.com

    Modos de ejecución de un proceso
    Proceso con dos modos de ejecución: usuario y núcleo
    Fase de usuario:
    Ejecutando el programa correspondiente
    Procesador en el nivel de usuario: privilegio restringido
    Fase de núcleo:
    Ejecutando el S.O. (rutina de interrup., de excepción o llamada)
    Procesador en el nivel de núcleo: privilegio total
    Proceso tiene asociadas dos pilas:
    Pila de usuario: usada en fase de usuario
    Pila del núcleo: usada en fase de núcleo
    excep., inter. y llamadas mientras proceso ejecuta usan esta pila

    Monografias.com

    Ejecución en modo núcleo
    2 tipos de actividades: síncronas y asíncronas
    Actividades síncronas:
    Asociadas a llamada al sistema o excepción
    Ejecución en el contexto del proceso "solicitante"
    Actividades asíncronas:
    Asociadas a interrupciones
    Ejecución en contexto de proceso no relacionado con la interrup.
    Rutina de tratamiento no debe acceder a mapa de memoria de proceso actual ya que no está vinculado con interrup.
    S.O. puede considerarse dividido en 2 partes:
    Capa superior que trata eventos síncronos
    Capa inferior que trata eventos asíncronos

    Monografias.com

    Tipos de procesos
    Proceso de usuario
    Ejecuta un programa, en modo usuario excepto cuando:
    Se inicia el proceso (véase "creación de un proceso")
    Realiza una llamada al sistema
    Genera una excepción
    Se produce una interrupción mientras ejecuta
    Proceso de núcleo
    Ejecuta sólo código del S.O., siempre en modo núcleo
    Realiza labores del sistema que se hacen mejor en el contexto de un proceso independiente (operaciones de gestión de memoria)
    En Linux: bdflush, kupdate, etc.
    Normalmente, alta prioridad, pero no siempre (p.e. proceso nulo)
    No confundir con "procesos del sistema"

    Monografias.com

    Procesos del sistema
    Procesos de usuario creados por el superusuario
    Ejecutan en modo usuario
    "Pero sus llamadas al sistema son siempre atendidas"
    En sistemas monolíticos realizan labores del sistema como spooling o servicios de red (demonios de UNIX)
    En sistemas microkernel realizan funcionalidades "clásicas" del S.O. como p.e. la gestión de ficheros

    Monografias.com

    Vectores de interrupción
    Tabla de vectores de interrupción:
    Contiene direcciones de rutinas del S.O.
    Únicos puntos de entrada del S.O.
    S.O. inicia contenido de la tabla en su arranque
    Interrupciones externas (de dispositivos):
    Dispositivo proporciona vector (puede configurarse)
    P.e. En Linux usan vectores de 32-47
    Excepciones (dividir por cero, instrucción privilegiada, …)
    Vector predefinido por cada excepción
    Ej. En Intel vector 0 corresponde con excep. por división por cero
    Llamadas al sistema:
    Instrucción especial (en Intel INT): vector como operando
    P.e. En LINUX sobre Intel se usa el vector 0x80

    Monografias.com

    Niveles de interrupción
    Mayoría de procesadores proporciona niveles de interrupción
    En cada momento UCP ejecuta en un nivel (Nivel UCP)
    Sólo admite int. de nivel > Nivel UCP
    Cuando acepta int. de nivel N, automáticamente Nivel UCP=N
    Existen instrucciones para cambiar nivel de UCP
    Prohíben ints. del mismo nivel o inferiores
    Algunos procesadores proporcionan instrucciones que causan interrupciones software
    Interrupciones de mínima prioridad

    Monografias.com

    Tratamiento HW de int., exc. y llamadas
    Operaciones realizadas por HW cuando se activa inter., exc. o llamada
    Si viene de modo usuario ? activa pila de núcleo del proceso
    Salva algunos registros (típicamente PC y R.estado) en pila
    Fija un nivel de ejecución de núcleo
    Si se trata de interrupción ? Nivel UCP = Nivel interrup.
    Salta a rutina almacenada en vector ? Entra el S.O. (SW)
    Fin del manejo de interr., exc. o llamada:
    S.O. ejecuta instrucción de retorno correspondiente (p.e. RETI)
    Restaura registros salvados en pila recuperando nivel de ejecución y estado de interrupciones previo

    Monografias.com

    Tratamiento de interrupciones
    Rutina en ensamblador: vector contiene dirección de comienzo
    Estructura típica:
    Salvar registros en pila de núcleo
    Invocar función donde se realiza tratamiento específico
    Normalmente está escrita en lenguaje de alto nivel
    Restaurar registros de la pila del núcleo del proceso
    RETI
    En sistemas con N niveles pueden anidarse N rutinas de interrup.
    En total hasta N+1 actividades del S.O. anidadas:
    1 llamada al sistema + N rutinas de interrupción

    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