36
Tema 2: Procesos en un Sistema Operativo (Parte I) NRC 8074 / NRC 8082 / ACI343 Iv´ an Jim´ enez Utiel 1 2 1 Facultad de Ingenier´ ıa y Negocios Universidad de Las Am´ ericas (Sede Providencia) 2 ISE - Research / Escuela Superior de Ingenieros Inform´ aticos Universidad de Castilla - La Mancha 2014 Iv´ an Jim´ enez Utiel (F. Ingenier´ ıa y Negocios) Sistemas Operativos UDLA 2014 1 / 36

Tema2-Gestión de Procesos_Parte1

Embed Size (px)

Citation preview

  • Tema 2: Procesos en un Sistema Operativo (Parte I)NRC 8074 / NRC 8082 / ACI343

    Ivan Jimenez Utiel1 2

    1Facultad de Ingeniera y NegociosUniversidad de Las Americas (Sede Providencia)

    2ISE - Research / Escuela Superior de Ingenieros InformaticosUniversidad de Castilla - La Mancha

    2014

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 1 / 36

  • Tabla de Contenidos

    1. Introduccion a los SO

    2. Procesos en un Sistema Operativo2.1 Concepto de proceso: Estados de un proceso. Modelos de 5 estados

    de procesos.2.2 Control de procesos. Modos de ejecucion. Creacion de procesos.2.3 Administracion de Procesos en Unix/Linux2.4 Procesos e hilos2.5 Referencias bibliograficas

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 2 / 36

  • Tema 2: Procesos en un Sistema Operativo

    Requerimientos

    Todos los entornos de multiprogramacion en los SO (ya sean los quesoporten un usuario como Windows o miles como z/OS de IBM) tienenque cumplir los siguientes requerimientos:

    Debe ser capaz de intercalar Procesos (P) multiples para maximizar eluso del procesador (P o nP) (con un Trespuesta razonable)

    El SO debe reservar recursos a los procesos conforme a polticasdefinidas (prioridades), evitando los deadlocks o nterbloqueos.

    El SO debe permitir la comunicacion interproceso y la creacion de losmismos por los usuarios.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 3 / 36

  • 2.1 Concepto de proceso: Estados de un proceso. Modelosde 5 estados de procesos.

    Algunos conceptos previos:

    - Existen una serie de recursos HW como el procesador, RAM, I/O,timers, HD,... Disponibles para las aplicaciones.

    - El nP va cambiando las aplicaciones que procesa.

    - El nP y los dispositivos I/O son utilizados eficentemente.

    Proceso:

    Un programa en ejecucion.

    Una instancia de un programa en ejecucion.

    Puede ser asignada y ejecutada en un nP.

    Una unidad de actividad caracterizada por la ejecucion de unasecuencia de instrucciones, estado actual y con un conjunto de R(recursos) asociados,

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 4 / 36

  • 2.1 Concepto de proceso: Estados de un proceso. Modelosde 5 estados de procesos.

    Elementos esenciales del Proceso:

    Codigo de Programa: compartido con otros procesos que estanejecutando el mismo programa.

    Conjunto de datos: asociado a ese codigo.

    PCB:

    Todos los procesos tienen una estructura de datos llamada PCB(Bloque de Control de Proceso) y es gestionada por el SO.

    Los Procesos consisten en codigo de programa asociado al PCB.

    Intercambio entre procesos guardando su informacion Dispatcher

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 5 / 36

  • 2.1 Concepto de proceso: Estados de un proceso. Modelosde 5 estados de procesos.

    Mientras el P esta en ejecucion:

    Identificador

    Estado

    Prioridad

    PC (Program Counter)

    Punteros a memoria

    Contexto

    Informacion de estado de I/O

    Accounting (clock, time used,time limits, ...)

    Fig. 1 : PCBIvan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 6 / 36

  • 2.1 Concepto de proceso: Estados de un proceso. Modelosde 5 estados de procesos.

    Fig. 2 : Procesos y sus PCBsIvan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 7 / 36

  • 2.1 Concepto de proceso: Estados de un proceso. Modelosde 5 estados de procesos.

    Fig. 3 : Modelo de 5 estados

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 8 / 36

  • 2.1 Concepto de proceso: Estados de un proceso. Modelosde 5 estados de procesos.

    Los cinco estados de un Proceso son los siguientes:

    Running: en ejecucion (con 1P, al menos uno)

    Ready: preparado para ejecutarse cuando tenga oportunidad.

    Blocked/Waiting: un P no puede ejecutarse hasta que ocurra unevento (operacion I/O completa).

    New: un P nuevo no se carga en MP hasta que el PCB se hayacreado y se ejecutara cuando el SO lo admita.

    Exit: un P es liberado de lista de Ps ejecutables por el SO (tambienpor que sea abortado o parado por otras razones).

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 9 / 36

  • 2.1 Concepto de proceso: Estados de un proceso. Modelosde 5 estados de procesos.

    Transiciones entre estados:

    NullNew: Proceso creado.NewReady: Cuando el SO decide que el P tiene todo listo.ReadyRunning: El Scheduler/Dispatcher elige el Proceso queentrara en ejecucicon.

    RunningExit: Cualaquier causa: (tarea finalizada, memoriainsuficiente, abortado por otro proceso, etc.)

    RunningReady: El Scheduler/Dispatcher lo enva a la cola poragotamiento de tiempo.

    RunningBlocked: El proceso se bloquea por una operacion I/O.BlockedReady: Finaliza la operacion I/O y se enva a la cola deReady.

    ReadyExit: El padre puede terminar sus hijos.BlockedExit: Si un proceso pasa mucho tiempo bloqueado, el SOlo termina.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 10 / 36

  • 2.1 Concepto de proceso: Estados de un proceso. Modelosde 5 estados de procesos.

    Fig. 4 : (a) cola de procesos unica; (b) cola multiple de procesosIvan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 11 / 36

  • 2.2 Control de procesos. Modos de ejecucion. Creacion deprocesos.

    Modos de Ejecucion:

    Modo Usuario (user mode): los programas se ejecutan tpicamente eneste modo.

    Modo Kernel (system mode, control mode, kernel mode): realizaimportantes funciones del sistema.

    Objetivo

    Es necesario proteger el SO: los PCBs, tablas de sistema, etc., de lainterferencia de programas de usuario.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 12 / 36

  • 2.2 Control de procesos. Modos de ejecucion. Creacion deprocesos.

    Funciones del modo kernel:

    Fig. 5 : Modelo de 5 estados

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 13 / 36

  • 2.2 Control de procesos. Modos de ejecucion. Creacion deprocesos.

    Eventos por los que se crea un proceso:

    Nuevo batch job: cuando el SO toma un nuevo trabajo, leyendo lasecuencia de comandos de control de trabajos.

    Log-on interactivo: un usuario se loquea en un terminal.

    Creado por el SO para un servicio: el SO crea un proceso para realizaruna funcion para un programa de usuario sin que el usuario tenga queesperar (p.e. un proceso de impresion).

    Generacion por otro proceso existente: un programa de usuario pudegenerar la creacion de un numero de procesos.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 14 / 36

  • 2.2 Control de procesos. Modos de ejecucion. Creacion deprocesos.

    Fig. 6 : Eventos por los que termina un proceso

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 15 / 36

  • 2.2 Control de procesos. Modos de ejecucion. Creacion deprocesos.

    La Creacion de un Proceso se lleva a cabo de la siguiente forma:

    1. Asignar un identificado de proceso unico al nuevo proceso

    2. Reservar espacio para el proceso: el SO debe conocer cuanto espaciorequiere para el usuario (programa y datos).

    3. Inicializar el PCB: se inicializan los descriptores, memoria, IDs,atributos por defecto del proceso que lo creo.

    El proceso se inicializa en estado Ready.Prioridad (suele tener una prioridad baja, a menos que se leespecifique una prioridad mas alta).No hay recursos (I/O, ficheros) asignados por defecto (a menos quevengan heredados por el padre).

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 16 / 36

  • 2.2 Control de procesos. Modos de ejecucion. Creacion deprocesos.

    4. Configurar enlaces: por ejemplo, si el SO mantiene una cola deplanificacion, el nuevo proceso debe ponerse en esa lista.

    5. Crear o expandir otras estructuras de datos: el SO debe tener unfichero de auditora de cada proceso.

    Fig. 7 : Jerarqua de procesos en Linux

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 17 / 36

  • 2.3 Administracion de Procesos en Unix/Linux

    #Creacion de un proceso con la primitiva fork()

    #Uso: python fork.py

    import os

    parent_pid = os.getpid ()

    print "[parent] comienza con PID: %d" % (parent_pid)

    forked_pid = os.fork()

    if forked_pid == 0:

    print "[child] el proceso hijo no puede utilizar os.fork()

    PID , desde su %d" % (forked_pid)

    print "[child] pero si puede realizar os.getpid () para

    conocer su propio PID: %d" % (os.getpid ())

    else:

    print "[parent] El proceso padre ha creado un hijo con PID:

    %d" % (forked_pid)

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 18 / 36

  • Creacion de un Proceso en Unix/Linux: fork()

    Con este codigo tenemos dos hechos

    Se puede siempre acceder al PID del proceso actual utilizandoos.getpid(), no importa si eres el padre del proceso.

    os.fork() devuelve 0 dentro del proceso hijo (esto es estandar paraSistemas Unix) y el PID del hijo al padre.

    Salida fork.py:

    [parent] starts PID: 6889[parent] parent process have created child with PID: 6890[child] child process cant use os.fork() PID, since its 0[child] but it can reevaluate os.getpid() to get its own PID: 6890

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 19 / 36

  • Creacion de un Proceso en Unix/Linux: fork()

    Basandonos en la salida de fork.py, podemos aseverar:

    Cuando se ejecuta el fork(), el SO crea un proceso (el cualllamaremos proceso padre en termino que tiene un PID = 6889(utilizamos parent-pid).

    Cuando ejecutemos os.fork, el proceso esta forked o bifurcado. Loque significa que existen dos procesos ahora. El proceso original(parent) que continua la ejecucion y el nuevo proceso creado (child,que es una copia del proceso padre).

    El valor de parent-pid es el mismo en ambos procesos, desde que lamemoria fue copiada del padre al hijo. Pero el os.fork resultadiferente: tiene el 6890 y el 0. En base a esta diferencia, se determinaque proceso somos.

    Si quieres conocer el PID del hijo dentro del mismo, solo tienes quellamar a os.getpid() dentro del codigo del proceso hijo.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 20 / 36

  • 2.3 Administracion de Procesos en Unix/Linux

    Fig. 8 : Llamada fork en Unix

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 21 / 36

  • Resumen: Creacion de un Proceso en Unix/Linux: fork()

    Llamada fork() en Unix/Linux:

    1. Reserva un slot al nuevo proceso creado dentro de la tabla deprocesos.

    2. Asigna unico ID al proceso hijo.

    3. Hace una copia de la imagen del proceso padre.

    4. Incrementa contadores de todos los ficheros propiedad del padre.

    5. El proceso hijo pasa del estado Ready a Run.

    6. Devuelve el numero ID del hijo al proceso padre y 0 al proceso hijo.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 22 / 36

  • 2.3 Administracion de Procesos en Unix/Linux

    En Linux un proceso (o tarea) es representada por una estructura de datosllamada task struct y que contiene las siguientes categoras de informacion:

    Linux Tasks

    State: o estado de ejecucion del proceso (executing, ready,suspended, stopped, zombie).

    Scheduling information: informacion necesaria para la planificacionde procesos (procesos en Tiempo Real son planificados antes de losnormales: aplicaciones de video/audio, sensores, etc.).

    Indentifiers: cada proceso tiene un identificador unico.

    Interprocess communication: Linux soporta mecanismos de IPC(heredados de Unix).

    Links: cada proceso incluye un link a el proceso padre(parent process) y a sus procesos hijos.

    Times and Timers: Tiempo de creacion y tiempo consumido en elprocesador.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 23 / 36

  • 2.3 Administracion de Procesos en Unix/Linux

    Linux Tasks

    File System: Incluye punteros a los ficheros abiertos por el proceso ya los directorios.

    Address space: espacio de direcciones virtuales asignadas al proceso.

    Processor-specific context: registros y pila de contexto del proceso.

    Running: si esta ejecutandose (Runnning) o preparado (Ready).

    Interruptible: proceso bloqueado (Blocked) esperando un evento(recurso, I/O, senal de otro proceso).

    Uninterruptible: proceso bloqueado y en espera de condiciones HWque le permitan seguir.

    Stopped: Proceso parado y a la espera de que lo ejecuten.

    Zombie: Proceso terminado aunque sigue en la task structure de latabla de procesos.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 24 / 36

  • 2.3 Administracion de Procesos en Unix/Linux

    Fig. 9 : Diagrama de estados de procesos en Linux

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 25 / 36

  • 2.4 Procesos e hilos

    Los procesos tienen las siguientes caractersticas:

    1. Propiedad de los procesos:incluye un espacio de MV que alberga la imagen del proceso(programa, datos, pila, PCB).puede tener asignado recursos, memoria, dispositivos, ficheros.

    2. Planificacion/ejecucion: La ejecucion de un proceso es intercaladacon otros.

    Dispatcher: el encargado de elegir los Procesos a la CPU de la cola.Prioridad: nivel de ejecucion (0 por defecto en Linux de -20 a 20, demayor a menor prioridad).

    Definicion:

    Un hilo o thread es un proceso ligero, el cual va a ser menos costoso degestionar que un proceso. Los hilos se ejecutan dentro de un proceso, elcual puede tener uno o varios.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 26 / 36

  • 2.4 Procesos e hilos

    Multithreading

    - Es la capacidad de que un SO soporte multiples, y de forma concurrente,varios hilos en un mismo proceso.

    Example

    - MSDOS tiene un solo proceso de usuario y un solo thread.- La JVM (Java Run Time) es un ejemplo de un proceso con multipleshilos o threads.

    Hilos y los SO modernos

    Generalmente, en los sistemas Unix/Linux, Windows, MacOS, IBM, etc.,implementan sistemas de multithreading

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 27 / 36

  • 2.4 Procesos e hilos

    Fig. 10 : Multithreading

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 28 / 36

  • 2.4 Procesos e hilos

    Dentro de un proceso, puede haber uno o mas hilos con lo siguiente:

    Estado de ejecucion (Running, Ready, etc.).Un contexto de hilo salvado (pero no en ejecucion).Pila de ejecuion.Variables locales.Memoria y recursos compartidos con otros hilos.

    Fig. 11 : Hilo en unico proceso y en varios

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 29 / 36

  • 2.4 Procesos e hilos

    Caractersticas:

    Todos los hilos de un proceso comparten el estado, los recursos, elespacio de memoria y tienen acceso a los mismos datos.

    Si un hilo altera un dato en memoria, los otros hilos ven el resultado.

    Si un hilo abre un fichero con privilegios de solo lectura, los otrostambien pueden leerlo al mismo tiempo.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 30 / 36

  • 2.4 Procesos e hilos

    Ventajas de los hilos:

    Es mucho menos costoso crear un nuevo hilo en un proceso existenteque crear un proceso (como x10).

    Es mucho menos costoso terminar un hilo que un proceso.

    De igual forma, cambiar entre dos hilos es mucho menos costoso quecambiar entre procesos.

    Mejora la comunicacion entre los distintos programas en ejecucion En la comunicacion de procesos se requiere la intervencion del kernel(mayor coste).

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 31 / 36

  • 2.4 Procesos e hilos

    Examples

    Un servidor de ficheros: responde a muchas peticiones muchoshilos creados y destruidos en un corto espacio de tiempo.

    Si hubiera mas de un procesador el proceso podra ejecutarsesimultaneamente.

    Es mas rapido utilizar hilos para procesos que comparten memoria.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 32 / 36

  • 2.4 Procesos e hilos

    Examples

    Tareas en (foreground y background): una hoja de calculo un hilopuede visualizar menus y recibir datos de entrada, mientras otro hiloejecuta comandos de usuario y actualiza la hoja mayor sensacionde rapidez.

    Proceso asncrono: hilo que guarda la informacion de un procesadorde textos de RAM a disco cada minuto.

    Velocidad de ejecucion: un proceso multihilo puede realizar una tareamatch mientras lee el siguiente trabajo en el dispositivo.

    Estructura de programa modular: programa que integran una granvariedad de actividades, dispositivos destinos y fuentes.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 33 / 36

  • 2.4 Procesos e hilos

    Suspension y terminacion:

    - Si un hilo se suspende (al compartir memoria, etc.) se suspendentodos los hilos del proceso.- Si un proceso termina terminan tambien los hilos dentro de eseproceso.

    Estados de un hilo:

    Spawn(engendrar): creacion de hilo.

    Block: cuando un hilo espera un evento se bloquea (salva registros,PC, stack) el SO ejecuta otro hilo de otro o el mismo proceso.Unblock: cuando un hilo se desbloquea pasa a la cola de READY.

    Finish: Un hilo termina y su informacion es desasignada.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 34 / 36

  • 2.4 Procesos e hilos

    Fig. 12 : Relaciones de estados de hilos y procesos

    Fig. 13 : Relaciones de estados de hilos y procesosIvan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 35 / 36

  • Referencias bibliograficas I

    William Stallings. Operating Systems. Prentice Hall, Captulo 2. 7ed.2012.

    Ivan Jimenez Utiel (F. Ingeniera y Negocios) Sistemas Operativos UDLA 2014 36 / 36

    Introduccin a los SOProcesos en un Sistema OperativoConcepto de proceso: Estados de un proceso. Modelos de 5 estados de procesos.Control de procesos. Modos de ejecucin. Creacin de procesos.Administracin de Procesos en Unix/LinuxProcesos e hilosReferencias bibliogrficas