TEMA 2: GESTIN DE PROCESOS - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

TEMA 2: GESTIN DE PROCESOS

Description:

Modo n cleo. No puede ejecutar las instrucciones ... Conmutaci n de modo ... Provoca la ejecuci n de c digo del SO que se hace siempre en modo privilegiado. ... – PowerPoint PPT presentation

Number of Views:97
Avg rating:3.0/5.0
Slides: 27
Provided by: PCC92
Category:
Tags: gestin | procesos | tema | modo

less

Transcript and Presenter's Notes

Title: TEMA 2: GESTIN DE PROCESOS


1
TEMA 2 GESTIÓN DE PROCESOS
  • 1. Introducción
  • 1.1. Aparición del concepto de Proceso
  • 1.2. Definición de Proceso
  • 1.3. Requisitos del Sistema Operativo para los
    procesos
  • 1.4. Modelo de Procesos
  • 2. Descripción de Procesos
  • 3. Ciclo de Vida de Procesos
  • 3.1. Modelo de cinco estados
  • 3.2. Modelo General
  • 3.3. Implantación del modelo
  • 4. Control de Procesos
  • 4.1. Modos de Ejecución
  • 4.2. Cambio de Proceso
  • 5. API del Sistema Operativo para la Gestión de
    Procesos
  • 6. Conceptos Avanzados
  • 6.1. Hebras
  • 6.2. Cuestiones de Rendimiento

2
1.1. Aparición del Concepto de Proceso
  • En sistemas antiguos ? 1 único programa en
    ejecución que tenía control absoluto sobre el
    sistema y todos sus recursos
  • Evolución de los sistema informáticos ? nuevas
    necesidades
  • mejor rendimiento, interacción con el usuario,
    varios usuarios, tiempo real
  • Nuevos objetivos de diseño para los sistemas
    operativos
  • Multiprogramación, tiempo compartido, tiempo real
  • Origen de la abstracción de proceso
  • Multiprogramación Multiplexar los recursos del
    sistema entre los programas a ejecutar
  • Tiempo compartido Soporte a varios usuarios
  • Necesidad de una abstracción que represente la
    ejecución de un programa ? supervisión y control
    de la ejecución de los distintos programas.

3
  • Multiprogramación
  • Multiplexar recursos entre programas
  • Objetivo
  • Mantener al procesador ocupado ? cambiar su
    atención entre los distintos programas a
    ejecutar.
  • Elevar el nivel de la máquina subyacente
  • SO transforma máquina física ? múltiples máquinas
    virtuales en la que ejecutar los procesos
  • Ciclo de Ejecución de un proceso
  • Ejecutar P hasta que debe esperar (completar E/S)
  • SO le quita la CPU a P y se la da a Q.
  • Para implementar multiprogramación es necesario
    poder intercalar las instrucciones de un programa
    con las de otro.
  • Ciclo de ejecución típico de una instrucción
  • Busca ? decodifica ? ejecuta
  • Siguiente instrucción ejecutada por el Procesador
    ? PC
  • PC evoluciona a la siguiente instrucción a la
    actual.
  • Pero, es posible poner otra instrucción diferente
    a esta, incluso, de otro programa.
  • Principal herramienta para el desarrollo de
    sistemas de multiprogramación y en tiempo
    compartido ? interrupción.

4
  • Interrupciones
  • Permite interrumpir la ejecución de un programa
    ante el acontecimiento de un suceso determinado.
  • Pprocesador puede ejecutar otras instrucciones
    mientras se está realizando alguna operación de
    E/S.
  • Ciclo ejecución instrucciones con interrupción
  • Busca ? decodifica ? ejecuta ? trata
    interrupción.
  • Nueva etapa que determina y trata interrupciones
  • Procesador registra situación exacta de la
    ejecución del trabajo actual
  • Se desvía a la rutina de tratamiento de la
    interrupción,
  • La procesa según su naturaleza y, posteriormente,
    reanudar el mismo u otro trabajo de usuario.
  • La rutina de tratamiento de la interrupción forma
    parte del sistema operativo. Este programa
    determina la naturaleza de la interrupción y
    ejecuta cuantas acciones sean necesarias.
  • Interrupciones software
  • Se provocan mediante la invocación de una
    instrucción que existe en casi todos los
    procesadores ??trap al SO
  • Esta instrucción permite provocar interrupciones
    software desde el programa
  • Se usa para pedir servicios al S.O. sistema
    operativo y se gestiona como si fuese una
    interrupción

5
  • main(int argc, char argv)
  • procesador.reloj0 / Inicializar el reloj/
  • while (hay_algo_que_ejecutar())
  • / Simulación ciclo ejecución instrucciones /
  • busca_instrucción(...)
  • decodificaejecutainstruccion(...)
  • comprobarinterrupciones()
  • procesador.reloj
  • / fin while /
  • void decodificaejecutainstruccion(...)
  • / Simulación del procesador /
  • switch (instrucción_a_ejecutar)
  • / Instrucciones varias del procesador /
  • case 'T' / Trap al sistema operativo /
  • / Poner en el registro adecuado el valor 1 para
    indicar que hay interrupción /
  • / Poner en el registro adecuado el valor que
    indique el tipo de interrupción /

6
  • void llamadaalsistema() / Ejecución del trap /
  • switch(numsyscall)
  • case E/S elegirprocesoaejecutar()
  • void comprobarinterrupciones()
  • / Aquí se comprueban las interrupciones de fin
    de E/S y las de llamada al sistema ... /
  • / Comprobar si hay llamada al sistema /
  • if (procesador.hayllamadaalsistema)
  • llamadaalsistema()
  • procesador.hayllamadaalsistema0
  • / Comprobar si hay interrupcion de fin de E/S /
  • if(procesoi.finalentradasalida)
  • procesoi.estadoLISTO

7
1.2. Definición de Proceso
Memoria Principal
  • Proceso ? programa en ejecución
  • Cargado en memoria
  • Proceso versus Programa
  • Entidad dinámica / estática
  • Compuesto por un conjunto de zonas de memoria
    llamadas en conjunto contexto del proceso
  • texto, datos, pila
  • información que el s.o. necesita para administrar
    el proceso?? PCB.

Lista de Procesos
PCB
texto
Proceso A
datos
pila
Registros Procesador
PCB
Proceso B
texto
PC
datos
pila
8
1.3. Requisitos del Sistema Operativo para la
Gestión de Procesos
  • Sistemas operativos de multiprogramación ?
    construidos en torno al concepto de proceso
  • Requisitos de diseño que debe satisfacer un
    sistema operativo relativos a este concepto
  • Intercalar la ejecución de un conjunto de
    procesos para maximizar el uso de la CPU
    garantizando que el proceso progresa hasta
    terminar
  • Asigna recursos a los procesos que compite por
    ellos siguiendo políticas específicas
  • Da soporte a la creación y destrucción de
    procesos por parte del usuario y a la
    comunicación entre ellos.
  • Creación ? Crea PCB que vive durante toda la vida
    del proceso
  • Destrucción ? Libera memoria ocupada por el PCB

9
1.4. Modelo de Procesos
  • SO ? programa de control que controla la
    ejecución de los procesos
  • Describir el comportamiento que se quiere que
    exhiban ? Ciclo de Vida de los Procesos
  • Modelo sencillo
  • Cuestiones de diseño
  • Información acerca de los procesos para poder
    restaurarlos luego
  • Proceso que no tiene la CPU?

10
1.4. Modelo de Procesos Entrada y Salida de
Procesos del Modelo
  • Independientemente del modelo, ?dos sucesos que
    delimitan la vida del proceso Nacimiento y
    muerte.
  • Creación de Procesos
  • La lleva a cabo el sistema operativo
  • Creación transparente al usuario no relación
  • process spawning Jerarquía
  • Compartición de recursos Padre e hijo comparten
    todos, parte o ninguno
  • Ejecución
  • Se ejecutan concurrentemente
  • Padre espera a que termine el hijo
  • Implica crear estructuras de datos para
    representar el proceso Crear PCB
  • Asignar espacio de direcciones que necesita
  • Eliminación de Procesos
  • Instrucción de finalización como última
    instrucción de código
  • llamada explícita a un servicio del sistema
    operativo (exit)
  • errores
  • padre mata hijo

11
2. Descripción de Procesos
  • 2.1. El PCB
  • SO administra el uso que los procesos hacen de
    los recursos
  • Para gestionar procesos y administrar el uso que
    hacen de los recursos, el SO construye y mantiene
    estructuras de control
  • PCB
  • Estructura de datos con campos para registrar los
    diferentes aspectos de la ejecución de un proceso
    y del uso de recursos.
  • Sirve como repositorio para cualquier información
    que puede variar de proceso en proceso.
  • Todas las operaciones que SO realiza sobre
    procesos las realiza en realidad sobre los PCB o
    al menos, implica el uso de los mismos
  • Identifica al proceso de cara al sistema
    operativo
  • SO conoce Proceso sólo si hay un PCB asociado a
    él
  • Elegible para competir por los recursos del
    sistema ? Crear proceso ? SO crea PCB y Fin
    proceso ? liberación PCB

12
2.2. Descripción de Procesos Contenido del PCB
  • Diferentes organizaciones según los sistemas
  • Identificación del proceso
  • Información de estado del procesador
  • Información de control del proceso.
  • Identificación del proceso
  • Identificador numérico único del proceso, de su
    padre y del usuario responsable del trabajo.
  • Información de estado del procesador
  • Contenido de los registros del procesador
  • Información de control del proceso.
  • Información de planificación y estado estado del
    proceso, prioridad, información de planificación,
    sucesos,
  • Estructuración de datos enlaces en colas
  • Comunicación entre procesos
  • Privilegios de los procesos
  • Ubicación en memoria
  • Propiedad y uso de los recursos

Puntero a PCB
Estado del Procesador
Identificador del Proceso
Registros (Contador de Programa, palabra de
estado del procesador, reg. Generales)
Información de memoria
13
3. CICLO DE VIDA DE LOS PROCESOS3.1. Modelo de 5
estados
  • Procesos Sólo en ejecución y listos?
  • Problema Procesos que no pueden ejecutarse
    aunque se les de la CPU
  • Bloqueados esperando un suceso
  • Cola listos ? Cola listos y cola bloqueados
  • Necesario incluir estados

14
3.2. Modelo General
  • Memoria principal limitada operaciones E/S
    lentas CPU ociosa
  • Soluciones
  • Aumento cantidad memoria
  • Intercambio
  • Nuevo estado Suspendidos
  • SO trae a MP un Suspendido o atiende petición de
    nuevo proceso
  • Combinación suspendido con espera suceso
  • Varios estados nuevos
  • Varias colas para cada estado

15
3.3. Implementación del modelo
  • Para implementar la pertenencia de los procesos a
    determinado estado, se guardan, asociadas con
    cada estado, listas de PCB.
  • Cola de Listos
  • Cola inicial donde se colocan los procesos
  • PCB de aquellos procesos que no tienen el
    procesador en este momento pero están esperando
    que se lo den para poder ejecutarse.
  • SO selecciona siguiente a ejecutar de esta cola
  • Cola de Bloqueados
  • PCB de procesos esperando suceso para poder
    continuar
  • Varias colas de Bloqueados, una para cada suceso.
  • Cuando ocurra un suceso, el sistema operativo
    puede pasar a listo la lista entera de procesos
    de la cola correspondiente.

16
4. Control de Procesos
  • 4.1. Modos de ejecución
  • Hardware Soporta modo usuario y núcleo
  • Modo kernel
  • Control absoluto sobre el procesador
  • Instrucciones privilegiadas sólo pueden
    ejecutarse en modo núcleo (primitivas de E/S,
    lectura y modificación de los registros de
    control, además del acceso a ciertas regiones de
    memoria)
  • Puede acceder a cualquier dato
  • Modo núcleo
  • No puede ejecutar las instrucciones privilegiadas
  • Sólo tiene acceso a su memoria
  • Por qué dos modos de ejecución?
  • Protección
  • Implementación Bit en el PSW

17
4.2. Cambio de Proceso
  • Cambio de proceso
  • Proceso en Ejecución se interrumpe (no puede
    seguir ejecutándose)
  • SO pasa el control del procesador a otro proceso
    y lo pone listo para ejecutar
  • Proceso original pasa a bloqueado o listo
  • Ocurre en respuesta a sucesos que alteran el
    estado del sistema ? sistema operativo toma el
    control.
  • Interrupciones o cepos Las interrupciones son
    provocadas por un suceso externo e independiente
    del programa en ejecución los cepos tienen
    relación con una condición de error o excepción
    generada dentro del programa que se está
    ejecutando
  • Llamadas al sistema se producen desde el
    programa en ejecución y provoca la transferencia
    a una rutina que forma parte del S.O.
  • Procesamiento
  • Conmutación de modo ?
  • Salvar información de estado del procesador para
    ejecución del proceso actual ? PCB
  • cambio de estado en el PCB y mover a la lista
    adecuada
  • Seleccionar otro proceso para ejecución
  • Sacarlo de la cola y ponerlo en estado En
    Ejecución
  • Restaurar información estado del procesador para
    el nuevo proceso.
  • Conmutación de modo ?

18
4.2. Cambio de Proceso(II)
19
4.3. Overhead
  • Todas las tareas del sistema operativo son puro
    overhead pero son necesarias para que todo
    funcione bien.
  • Cambio proceso ? Costosa, compleja y frecuente
  • Afecta significativamente al rendimiento de SO de
    multiprogramación.
  • Eficiencia del cambio de proceso mejora con ayuda
    hardware y con una técnica de estructuración de
    procesos denominada hebras
  • Esquema hardware empleado para acelerar la
    conmutación de procesos
  • Disponer de múltiples conjuntos estructuralmente
    idénticos de registros del procesador.
  • Mínimo dos uno para el S.O. y otro para el
    usuario.
  • Cambio proceso ? cambiar puntero al conjunto de
    registros actual.
  • Si existen más procesos activos que conjuntos de
    registros, el sistema copia los datos de los
    registros desde y hacia memoria.

20
5. API del sistema operativo para la gestión de
procesos
  • 5.1. Definición de Llamada al Sistema
  • Libertad al usuario para ejecutar cualquier cosa
    ? Riesgos
  • Degradación sistema Necesario mecanismo
  • Destrucción de datos otros controlado y seguro
    de ejecución
  • procesos o del S.O. Instrucciones peligrosas
  • Peligros ? debe hacerse siempre bajo control del
    S.O.
  • Acceso a los recursos (hardware o software)
  • Creación y gestión de procesos
  • Acciones sobre memoria, etc.
  • Llamadas al sistema
  • Proporcionan la interfaz entre el SO y un
    programa en ejecución
  • Permiten la solicitud de servicios al sistema
    operativo.
  • Provoca la ejecución de código del SO que se hace
    siempre en modo privilegiado.

21
5.2. Interfaz de alto nivel de las llamadas al
sistema
  • Llamadas al sistema normalmente disponibles como
    instrucciones de bajo nivel
  • Lenguajes alto nivel permiten hacer llamadas al
    sistema desde el programa ? parecen llamadas a
    procedimientos o funciones normales
  • Estos sistemas generan llamada a rutina especial
    de tiempo de ejecución que hace llamada sistema o
    bien puede ser generada in-line.
  • Ejemplo
  • Programa que lee datos de un fichero y los copia
    a otro.
  • Parámetros Nombres de ambos ficheros.
  • Acciones
  • Programa debe abrir fichero origen y crear el
    destino.
  • Cada operación implica llamada al sistema y trae
    consigo la necesidad de gestionar los errores que
    se produzcan.
  • Bucle lectura datos del origen y escritura en
    destino (ambas llamadas al sistema).
  • Programador debe cerrar ambos ficheros.
  • Sistema en tiempo de ejecución de lenguajes de
    alto nivel proporciona interfaz más simple con
    funciones como open, close, read y write.
  • Por ejemplo, función write en C se compila a una
    llamada en tiempo de ejecución que realiza las
    llamadas al sistema necesarias, chequea errores
    y, finalmente, retorna al programa de usuario.

22
5.3. Gestión de una Llamada al Sistema
  • Muchos procesadores cuentan con una instrucción
    especial denominada interrupción software,
    llamada al sistema, trap al S.O.,...
  • Cuando se ejecuta, el hardware la trata como una
    interrupción.
  • El control pasa a través del vector de
    interrupciones a una rutina de procesamiento del
    S.O. y se cambia a modo privilegiado.
  • Rutina procesamiento forma parte del sistema
    operativo.
  • S.O. examina la instrucción que provocó la
    interrupción
  • Determina tipo servicio requerido e información
    adicional.
  • El sistema operativo ejecuta la solicitud y
    devuelve el control a la instrucción siguiente a
    la llamada al sistema.
  • dibujo

23
5.4. Llamadas al sistema para la gestión de
procesos
  • Sistema Operativo ofrece una serie de Servicios a
    los programas de usuario referentes a la gestión
    de procesos
  • Accesibles mediante llamadas al sistema
  • Cada sistema operativo ofrece las que quiere.
  • Crear(IdProceso, Atributos)
  • Crear nuevo proceso con el identificador y los
    atributos que se pasan como parámetro.
  • S.O. obtiene nuevo identificador y PCB
  • Asigna memoria para el nuevo proceso
  • Rellena PCB con atributos proporcionados o
    predeterminados
  • Enlaza proceso con las estructuras del S.O.,
    insertando el PCB del proceso en la lista de
    Preparados.
  • Eliminar(IdProceso)
  • SO destruye proceso y lo elimina del sistema
  • Reclama los recursos asignados al proceso
  • Elimina el PCB de la lista en que está y queda
    libre
  • Un proceso puede eliminarse a sí mismo y a otros
  • Se invoca como parte de la terminación ordenada
    de un programa

24
  • Dividir/Unir
  • Método de creación y terminación de procesos.
  • Dividir ? Divide una secuencia de instrucciones
    en dos secuencias ejecutables concurrentemente
  • Se crea nuevo proceso (hijo) que ejecuta parte
    del código y padre ejecuta la otra
  • Devuelve identidad del hijo al padre que lo puede
    usar para esperar fin del hijo antes de invocar
    unir.
  • Unir ? Reune las secuencias de código divididas y
    el padre puede usarlo para sincronizarse con el
    hijo.
  • Bloquear (IdProceso)
  • Proceso IdProceso permanece en el sistema ?
    bloqueado indefinidamente y estado bloqueado
  • Proceso puede bloquearse a sí mismo o a otros
    dependiendo de su nivel de privilegios.
  • El SO responde poniendo el PCB del proceso en la
    lista de bloqueados y actualizando el estado
  • Reanudar(IdProceso)
  • Reanuda proceso bloqueado
  • SO pone PCB en listos para ejecución y actualiza
    estado
  • Retardar(IdProceso, tiempo)
  • Proceso queda bloqueado el tiempo especificado
  • Leer_Atributos(IdProceso, grupoatributos)
  • Consulta a la que el SO responde proporcionando
    los valores actuales de los atributos del proceso
    designado.
  • Modificar_Prioridad(IdProceso, nuevaprioridad)

25
6. Conceptos avanzados hilos
  • Hebras o hilos o procesos ligeros (LWP)
  • Unidad básica de uso de la CPU
  • Consiste en Contador de programa Conjunto de
    registros Espacio para la pila
  • Comparte con sus iguales la sección de código,
    datos y recursos del sistema operativo, conocido
    como task.
  • Un proceso tradicional task con un hilo.
  • Hilos de usuario
  • Librerías
  • Cambio de hilo no necesita llamada al sistema que
    causa interrupciones al kernel, por tanto, es muy
    rápido.
  • Hilos kernel
  • Llamadas al sistema.

26
6. Conceptos avanzados
  • Similitudes entre procesos e hilos
  • Hilos varios estados listo, bloqueado,
    ejecutándose o terminado
  • Comparten CPU y sólo hay un hilo activo al tiempo
  • Hilo en ejecución dentro de un proceso tiene su
    propia pila y contador de programa.
  • Pueden crear hilos hijos, bloquearse en llamadas
    al sistema ? otros hilos siguen su ejecución
    normal
  • Diferencias
  • Hilos comparten espacio de direcciones de una
    task
  • No son independientes unos de otros
  • Un hilo puede leer o escribir la pila de otros
    hilos.
  • No hay protección entre hilos.
  • Sería necesaria?.
Write a Comment
User Comments (0)
About PowerShow.com