Procesos, hilos y Recursos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Procesos, hilos y Recursos"

Transcripción

1 Sistemas Operativos Pontificia Universidad Javeriana Febrero de 2010

2 Process Manager Procesos Clasicos Procesos Modernos Process Manager Objetivo El manejador de procesos provee un espectro de servicios para definir, soportar y administrar los procesos, hilos y recursos del sistema.

3 Process Manager Procesos Clasicos Procesos Modernos Process Manager Objetivo El manejador de procesos provee un espectro de servicios para definir, soportar y administrar los procesos, hilos y recursos del sistema. Dado el desarrollo de los sistemas operativos se da una división en el concepto de proceso.

4 Process Manager Procesos Clasicos Procesos Modernos Procesos Clasicos Un ambiente Un proceso clasico hace referencia al concepto de un programa en ejecución. Este proceso define un ambiente computacional (recursos, datos, instrucciones, etc) en el cual un programa es ejecutado.

5 Process Manager Procesos Clasicos Procesos Modernos Procesos Clasicos Un ambiente Un proceso clasico hace referencia al concepto de un programa en ejecución. Este proceso define un ambiente computacional (recursos, datos, instrucciones, etc) en el cual un programa es ejecutado. Nota: Recordar que cada proceso clasico posee un hilo llamado hilo base, este es el encargado de ejecutar el programa.

6 Process Manager Procesos Clasicos Procesos Modernos Procesos Modernos Dividido en 2 Se cuenta con 2 especificaciones para su definición:

7 Process Manager Procesos Clasicos Procesos Modernos Procesos Modernos Dividido en 2 Se cuenta con 2 especificaciones para su definición: El proceso moderno que define la forma de computacion y su ambiente.

8 Process Manager Procesos Clasicos Procesos Modernos Procesos Modernos Dividido en 2 Se cuenta con 2 especificaciones para su definición: El proceso moderno que define la forma de computacion y su ambiente. El hilo que es la parte que mantiene el registro de la ejecucion del codigo en ese ambiente.

9 Process Manager Procesos Clasicos Procesos Modernos Procesos Modernos Dividido en 2 Se cuenta con 2 especificaciones para su definición: El proceso moderno que define la forma de computacion y su ambiente. El hilo que es la parte que mantiene el registro de la ejecucion del codigo en ese ambiente. Analogia: El proceso moderno es como un estudio de musica. El hilo es como el musico que usa el estudio para hacer musica.

10 Procesos Clasicos Manejador de procesos Multiprogramming Procesos Modernos Multitask Procesos Clasicos Multiprogramming Los sistemas operativos usan la multiprogramación para proveer programas con la ilusión de que tienen el uso exclusivo de la máquina física. Si existen N procesos compartiendo el procesador, entonces cada uno tendra el control por K segundos de un intervalo de KxN segundos.

11 Procesos Clasicos Manejador de procesos Multiprogramming Procesos Modernos Multitask Procesos Clasicos Multiprogramming Los sistemas operativos usan la multiprogramación para proveer programas con la ilusión de que tienen el uso exclusivo de la máquina física. Si existen N procesos compartiendo el procesador, entonces cada uno tendra el control por K segundos de un intervalo de KxN segundos. La máquina abstracta define el ambiente computacional lógico en el cual el proceso clasico se ejecuta.

12 Procesos Clasicos Manejador de procesos Multiprogramming Procesos Modernos Multitask Manejador de procesos El manejador de procesos al interior del SO es el que se encarga de crear procesos, hilos y abstracciones de recursos que son en conjunto la caparazón de la máquina abstracta.

13 Procesos Clasicos Manejador de procesos Multiprogramming Procesos Modernos Multitask Manejador de procesos El manejador de procesos al interior del SO es el que se encarga de crear procesos, hilos y abstracciones de recursos que son en conjunto la caparazón de la máquina abstracta. Llamada fork() en linux, CreateProcess() en windows; procesos clasicos.

14 Procesos Clasicos Manejador de procesos Multiprogramming Procesos Modernos Multitask Manejador de procesos El manejador de procesos al interior del SO es el que se encarga de crear procesos, hilos y abstracciones de recursos que son en conjunto la caparazón de la máquina abstracta. Llamada fork() en linux, CreateProcess() en windows; procesos clasicos. Llamada pthread create() en linux, CreateThread() en windows; implementa threads en el contexto de procesos modernos.

15 Procesos Clasicos Manejador de procesos Multiprogramming Procesos Modernos Multitask Manejador de procesos El manejador de procesos al interior del SO es el que se encarga de crear procesos, hilos y abstracciones de recursos que son en conjunto la caparazón de la máquina abstracta. Llamada fork() en linux, CreateProcess() en windows; procesos clasicos. Llamada pthread create() en linux, CreateThread() en windows; implementa threads en el contexto de procesos modernos. Llamada close() en linux, CloseHandle() en windows; petición de liberar recurso.

16 Procesos Clasicos Manejador de procesos Multiprogramming Procesos Modernos Multitask Multiprogramming Figura: Tomado de Operating Systems, 3 Edition, Gary Nutt

17 Procesos Clasicos Manejador de procesos Multiprogramming Procesos Modernos Multitask Procesos Modernos Multitask Con los procesos clasicos solo un ente podía estar ejecutandose en la máquina abstracta. Con los modernos procesos lo que se permitir a unos agentes llamados hilos compartir los recursos del proceso (tal como procesador abstracto y memoria abstracta).

18 Procesos Clasicos Manejador de procesos Multiprogramming Procesos Modernos Multitask Procesos Modernos Multitask Con los procesos clasicos solo un ente podía estar ejecutandose en la máquina abstracta. Con los modernos procesos lo que se permitir a unos agentes llamados hilos compartir los recursos del proceso (tal como procesador abstracto y memoria abstracta). Idea: Suponga que cada máquina abstracta es diseñada para se una máquina multiprogramada!

19 Procesos Clasicos Manejador de procesos Multiprogramming Procesos Modernos Multitask Multitask

20 Resources Introducción Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Lo necesario Un recurso es cualquier elemento que sea necesitado o pedido por el proceso a la máquina abstracta, y que pueda causar ls suspención del proceso si el elemento no está disponible.

21 Resources Introducción Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Lo necesario Un recurso es cualquier elemento que sea necesitado o pedido por el proceso a la máquina abstracta, y que pueda causar ls suspención del proceso si el elemento no está disponible. Estos recursos se piden usando llamados al sistema. Cuando se le asigna un recurso, este es configurado en la máquina abstracta del proceso.

22 Process Address Space Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Direcciones El espacio de direcciones de un proceso es una colección de de direcciones al cual un hilo puede referenciar.

23 Process Address Space Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Direcciones El espacio de direcciones de un proceso es una colección de de direcciones al cual un hilo puede referenciar. Los recursos mapeados a memoria pueden ser accedidos por sus direcciones y referenciados por el address space.

24 Process Address Space Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Direcciones El espacio de direcciones de un proceso es una colección de de direcciones al cual un hilo puede referenciar. Los recursos mapeados a memoria pueden ser accedidos por sus direcciones y referenciados por el address space. Cada manejador particular es el encargado ligar o asociar las direcciones con los elementos referenciables del recurso (dependiendo del diseño).

25 Process Address Space Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Direcciones El espacio de direcciones de un proceso es una colección de de direcciones al cual un hilo puede referenciar. Los recursos mapeados a memoria pueden ser accedidos por sus direcciones y referenciados por el address space. Cada manejador particular es el encargado ligar o asociar las direcciones con los elementos referenciables del recurso (dependiendo del diseño). En sistemas como Linux y Windows el tamaño del address space es aproximadamente 4 GigaBytes.

26 Address Space Introducción Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface

27 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Manejador de Procesos Proveer funciones Creacion y terminación de procesos - process abstraction

28 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Manejador de Procesos Proveer funciones Creacion y terminación de procesos - process abstraction Creacion y terminación de hilos - thread abstraction

29 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Manejador de Procesos Proveer funciones Creacion y terminación de procesos - process abstraction Creacion y terminación de hilos - thread abstraction Sincronización de procesos/hilos

30 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Manejador de Procesos Proveer funciones Creacion y terminación de procesos - process abstraction Creacion y terminación de hilos - thread abstraction Sincronización de procesos/hilos Asignación de recursos a los procesos

31 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Manejador de Procesos Proveer funciones Creacion y terminación de procesos - process abstraction Creacion y terminación de hilos - thread abstraction Sincronización de procesos/hilos Asignación de recursos a los procesos Protección de recursos

32 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Manejador de Procesos Proveer funciones Creacion y terminación de procesos - process abstraction Creacion y terminación de hilos - thread abstraction Sincronización de procesos/hilos Asignación de recursos a los procesos Protección de recursos Coopera con manejador de dispositivos para implementar I/O (iniciar I/O, manejo interrupciones, transferir info desde memoria a controladores).

33 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Manejador de Procesos Proveer funciones Creacion y terminación de procesos - process abstraction Creacion y terminación de hilos - thread abstraction Sincronización de procesos/hilos Asignación de recursos a los procesos Protección de recursos Coopera con manejador de dispositivos para implementar I/O (iniciar I/O, manejo interrupciones, transferir info desde memoria a controladores). Implementación del espacio de direcciones.

34 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Compuesto por addres space la collección de dirrecciones que puede referenciar el programa.

35 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Compuesto por addres space la collección de dirrecciones que puede referenciar el programa. program define el comportamiento del proceso.

36 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Compuesto por addres space la collección de dirrecciones que puede referenciar el programa. program define el comportamiento del proceso. data los datos usados por el proceso.

37 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Compuesto por addres space la collección de dirrecciones que puede referenciar el programa. program define el comportamiento del proceso. data los datos usados por el proceso. resources los recursos requeridos para la ejecución del programa. Hilos comparten recursos que se asignan al proceso.

38 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Compuesto por addres space la collección de dirrecciones que puede referenciar el programa. program define el comportamiento del proceso. data los datos usados por el proceso. resources los recursos requeridos para la ejecución del programa. Hilos comparten recursos que se asignan al proceso. process identifier para identificar el proceso duranre su existencia.

39 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Compuesto por (hilos) ambiente el ambiente definido por el proceso que crea el hilo.

40 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Compuesto por (hilos) ambiente el ambiente definido por el proceso que crea el hilo. thread identifier para identificar el hilo duranre su existencia.

41 The Hardware Process Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface bootstrap Al iniciar el computador, la máquina inicia el ciclo de obtener-ejecutar. Lo primero es iniciar con el código del bootstrap que es el encargado de iniciar el sistema operativo. Hasta aquí no existen procesos ni hilos, puesto que el sistema operativo no se ha iniciado aún.

42 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Inicia el código de boostrap.

43 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Inicia el código de boostrap. Inicializa componentes y estructuras de datos necesarias.

44 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Inicia el código de boostrap. Inicializa componentes y estructuras de datos necesarias. Despues de inicializar el kernel el sistema carga n diferentes procesos.

45 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Inicia el código de boostrap. Inicializa componentes y estructuras de datos necesarias. Despues de inicializar el kernel el sistema carga n diferentes procesos. El componente de planificacion (scheduler) elije el orden de ejecución.

46 Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface Inicia el código de boostrap. Inicializa componentes y estructuras de datos necesarias. Despues de inicializar el kernel el sistema carga n diferentes procesos. El componente de planificacion (scheduler) elije el orden de ejecución. Se cambia de un proceso/hilo a otro cambiando el PC de la unidad de control (dependiendo si es cambio de proceso, llamado a funcion del SO o una interrupción de I/O)

47 The Hardware Process Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface

48 Abstract Machine Interface Resources Process Address Space Address Space Manejador de Procesos The Hardware Process Abstract Machine Interface

49 Multiples Procesos Process Descriptor Cambio de estados Process States Multiples Procesos Cambio de contexto El manejador de procesos crea un ambiente en el cual multiples procesos pueden coexistir. Este ejecuta un algoritmo que hace un cambio en el sistema de un contexto a otro. Estos cambios de contexto (context switches) pueden ocurrir cada vez que el SO tome el control de la máquina.

50 Multiples Procesos Process Descriptor Cambio de estados Process States Multiples Procesos Cambio de contexto El manejador de procesos crea un ambiente en el cual multiples procesos pueden coexistir. Este ejecuta un algoritmo que hace un cambio en el sistema de un contexto a otro. Estos cambios de contexto (context switches) pueden ocurrir cada vez que el SO tome el control de la máquina. El cambio de contexto se refiere al hecho de cambiar los datos de los registros de la CPU.

51 Multiples Procesos Process Descriptor Cambio de estados Process States Process Descriptor El process descriptor de un procesos contiene cosas como: Internal process name

52 Multiples Procesos Process Descriptor Cambio de estados Process States Process Descriptor El process descriptor de un procesos contiene cosas como: Internal process name state

53 Multiples Procesos Process Descriptor Cambio de estados Process States Process Descriptor El process descriptor de un procesos contiene cosas como: Internal process name state Owner

54 Multiples Procesos Process Descriptor Cambio de estados Process States Process Descriptor El process descriptor de un procesos contiene cosas como: Internal process name state Owner execution statistics

55 Multiples Procesos Process Descriptor Cambio de estados Process States Process Descriptor El process descriptor de un procesos contiene cosas como: Internal process name state Owner execution statistics Thread

56 Multiples Procesos Process Descriptor Cambio de estados Process States Process Descriptor El process descriptor de un procesos contiene cosas como: Internal process name state Owner execution statistics Thread List of related process

57 Multiples Procesos Process Descriptor Cambio de estados Process States Process Descriptor El process descriptor de un procesos contiene cosas como: Internal process name state Owner execution statistics Thread List of related process List of child process

58 Multiples Procesos Process Descriptor Cambio de estados Process States Process Descriptor El process descriptor de un procesos contiene cosas como: Internal process name state Owner execution statistics Thread List of related process List of child process Address space

59 Multiples Procesos Process Descriptor Cambio de estados Process States Process Descriptor El process descriptor de un procesos contiene cosas como: Internal process name state Owner execution statistics Thread List of related process List of child process Address space Resources

60 Multiples Procesos Process Descriptor Cambio de estados Process States Process Descriptor El process descriptor de un procesos contiene cosas como: Internal process name state Owner execution statistics Thread List of related process List of child process Address space Resources stack

61 Multiples Procesos Process Descriptor Cambio de estados Process States Context Switching

62 Multiples Procesos Process Descriptor Cambio de estados Process States Cambio de estados Un proceso/hilo puede variar su estado a lo largo de su existencia. State Diagram Los diagramas de estado representa los diferentes estados y sus respectivas transiciones en la ejecución de un proceso/hilo. Estos estados son cambiados por el manejador de procesos, por ejemplo, asignando un recurso, bloqueandolo por I/O, o tan solo dejandolo en la lista de espera.

63 Multiples Procesos Process Descriptor Cambio de estados Process States Process States

64 Manajador de recursos Generic Manajador de recursos Se posee una parte generica para asignar recursos a los procesos, este se conoce como su mecanismo. Además se posee una politica que define como y en que momento se asignan los recursos de un manejador en particular.

65 Manajador de recursos Generic Existen m tipos distuintos de recursos. Cada tipo de recurso tiene multiples unidades de él. Los procesos puede pedir una cantidad determinada de unidades. En un momento dado cualquiera un numero de unidades de recurso está disponible.

66 Manajador de recursos Generic Generic

67 Manajador de recursos Generic Fin de la Clase Nos vemos en la próxima!!!