Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Procesos Pedro Chávez Lugo mailto:[email protected] 11 de mayo de 2010 Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos 1 Definición 2 Representación en memoria 3 Estados 4 Bloque de Control del proceso 5 Comunicación entre procesos Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Que es un Sistema Proceso? Un proceso es un proceso se puede definir como un programa en ejecución, y de una forma un poco más precisa, como la unidad de trabajo del SO. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Que es un Sistema Proceso? Un proceso es un proceso se puede definir como un programa en ejecución, y de una forma un poco más precisa, como la unidad de trabajo del SO. Un proceso puede necesitar ciertos recursos, tales como tiempo de CPU, memoria, archivos, y dispositivos E/S, para completar su tarea. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Procesos del SO y usuarios Un sistema consiste de una colección de procesos: Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Procesos del SO y usuarios Un sistema consiste de una colección de procesos: Procesos del SO (ejecución de códigos del sistema) Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Procesos del SO y usuarios Un sistema consiste de una colección de procesos: Procesos del SO (ejecución de códigos del sistema) Procesos de usuarios (ejecución de códigos de usuarios) Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Procesos del SO y usuarios Un sistema consiste de una colección de procesos: Procesos del SO (ejecución de códigos del sistema) Procesos de usuarios (ejecución de códigos de usuarios) Todos estos procesos pueden ejecutarse de manera concurrente con un CPU o varios CPUs multiplexados. Conmutando el CPU entre los procesos, entonces el SO puede hacer más productiva a la computadora. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Los procesos se representan en memoria y podemos decir que un proceso es más que un código de programa: Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Los procesos se representan en memoria y podemos decir que un proceso es más que un código de programa: El código del programa se representa en la sección de texto. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Los procesos se representan en memoria y podemos decir que un proceso es más que un código de programa: El código del programa se representa en la sección de texto. La actual actividad, representada por el contador de programa. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Los procesos se representan en memoria y podemos decir que un proceso es más que un código de programa: El código del programa se representa en la sección de texto. La actual actividad, representada por el contador de programa. Los datos temporales (parámetros, direccción de regreso, y variables locales) se representan en la sección denominada stack. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Los procesos se representan en memoria y podemos decir que un proceso es más que un código de programa: El código del programa se representa en la sección de texto. La actual actividad, representada por el contador de programa. Los datos temporales (parámetros, direccción de regreso, y variables locales) se representan en la sección denominada stack. Las variables globales se representan en la sección de datos. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Los procesos se representan en memoria y podemos decir que un proceso es más que un código de programa: El código del programa se representa en la sección de texto. La actual actividad, representada por el contador de programa. Los datos temporales (parámetros, direccción de regreso, y variables locales) se representan en la sección denominada stack. Las variables globales se representan en la sección de datos. La memoria dinámicamente asignada durante la ejecución del proceso es representada en la sección heap. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Los procesos se representan en memoria y podemos decir que un proceso es más que un código de programa: El código del programa se representa en la sección de texto. La actual actividad, representada por el contador de programa. Los datos temporales (parámetros, direccción de regreso, y variables locales) se representan en la sección denominada stack. Las variables globales se representan en la sección de datos. La memoria dinámicamente asignada durante la ejecución del proceso es representada en la sección heap. Max Stack Heap Data Text 0 Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Un proceso se ejecuta, lo cual implica cambios de estado. El estado de un proceso se define la actual actividad del proceso, en donde cada proceso puede encontrarse en uno de los siguientes estados: Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Un proceso se ejecuta, lo cual implica cambios de estado. El estado de un proceso se define la actual actividad del proceso, en donde cada proceso puede encontrarse en uno de los siguientes estados: Nuevo (New). El proceso ha sido creado. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Un proceso se ejecuta, lo cual implica cambios de estado. El estado de un proceso se define la actual actividad del proceso, en donde cada proceso puede encontrarse en uno de los siguientes estados: Nuevo (New). El proceso ha sido creado. Corriendo (Running). Las instrucciones son ejecutadas (uso del procesador). Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Un proceso se ejecuta, lo cual implica cambios de estado. El estado de un proceso se define la actual actividad del proceso, en donde cada proceso puede encontrarse en uno de los siguientes estados: Nuevo (New). El proceso ha sido creado. Corriendo (Running). Las instrucciones son ejecutadas (uso del procesador). Espera (Waiting). El proceso permanece en espera a un evento ocurra (ej. recepción de una señal, demanda de un dispositivo E/S). Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Un proceso se ejecuta, lo cual implica cambios de estado. El estado de un proceso se define la actual actividad del proceso, en donde cada proceso puede encontrarse en uno de los siguientes estados: Nuevo (New). El proceso ha sido creado. Corriendo (Running). Las instrucciones son ejecutadas (uso del procesador). Espera (Waiting). El proceso permanece en espera a un evento ocurra (ej. recepción de una señal, demanda de un dispositivo E/S). Listo (Ready). El proceso permanece en espera de asignación del procesador. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Un proceso se ejecuta, lo cual implica cambios de estado. El estado de un proceso se define la actual actividad del proceso, en donde cada proceso puede encontrarse en uno de los siguientes estados: Nuevo (New). El proceso ha sido creado. Corriendo (Running). Las instrucciones son ejecutadas (uso del procesador). Espera (Waiting). El proceso permanece en espera a un evento ocurra (ej. recepción de una señal, demanda de un dispositivo E/S). Listo (Ready). El proceso permanece en espera de asignación del procesador. Terminado (Terminated). El proceso ha finalizado su ejecución. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Un proceso se ejecuta, lo cual implica cambios de estado. El estado de un proceso se define la actual actividad del proceso, en donde cada proceso puede encontrarse en uno de los siguientes estados: Nuevo (New). El proceso ha sido creado. Corriendo (Running). Las instrucciones son ejecutadas (uso del procesador). Espera (Waiting). El proceso permanece en espera a un evento ocurra (ej. recepción de una señal, demanda de un dispositivo E/S). Listo (Ready). El proceso permanece en espera de asignación del procesador. Terminado (Terminated). El proceso ha finalizado su ejecución. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Terminado Nuevo Admitido Salida Interrumpido Listo Evento E/S completado Corriendo proceso despachado Espera de evento de E/S Espera Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Cada proceso se representa en el sistema operativo por un Bloque de Control del proceso (PCB) o también conocido como el bloque de control de tarea. El bloque de control tiene asociado muchas piezas de información asociadas al proceso especifico: Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Cada proceso se representa en el sistema operativo por un Bloque de Control del proceso (PCB) o también conocido como el bloque de control de tarea. El bloque de control tiene asociado muchas piezas de información asociadas al proceso especifico: Estado del proceso. El estado puede ser nuevo, listo, corriendo, etc. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Cada proceso se representa en el sistema operativo por un Bloque de Control del proceso (PCB) o también conocido como el bloque de control de tarea. El bloque de control tiene asociado muchas piezas de información asociadas al proceso especifico: Estado del proceso. El estado puede ser nuevo, listo, corriendo, etc. Contador de programa. El cual indica la dirección de la siguiente instrucción a ejecutar. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Cada proceso se representa en el sistema operativo por un Bloque de Control del proceso (PCB) o también conocido como el bloque de control de tarea. El bloque de control tiene asociado muchas piezas de información asociadas al proceso especifico: Estado del proceso. El estado puede ser nuevo, listo, corriendo, etc. Contador de programa. El cual indica la dirección de la siguiente instrucción a ejecutar. Registros del CPU. El tipo y número de los registros pueden variar dependiendo de la arquitectura del CPU. Se pueden incluir acumuladores, registros ı́ndices, stack pointers, etc. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Cada proceso se representa en el sistema operativo por un Bloque de Control del proceso (PCB) o también conocido como el bloque de control de tarea. El bloque de control tiene asociado muchas piezas de información asociadas al proceso especifico: Estado del proceso. El estado puede ser nuevo, listo, corriendo, etc. Contador de programa. El cual indica la dirección de la siguiente instrucción a ejecutar. Registros del CPU. El tipo y número de los registros pueden variar dependiendo de la arquitectura del CPU. Se pueden incluir acumuladores, registros ı́ndices, stack pointers, etc. Información para el despacho del CPU. Se puede incluir la prioridad del proceso, apuntadores a las colas de despacho, entre otros parámetros. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Cada proceso se representa en el sistema operativo por un Bloque de Control del proceso (PCB) o también conocido como el bloque de control de tarea. El bloque de control tiene asociado muchas piezas de información asociadas al proceso especifico: Estado del proceso. El estado puede ser nuevo, listo, corriendo, etc. Contador de programa. El cual indica la dirección de la siguiente instrucción a ejecutar. Registros del CPU. El tipo y número de los registros pueden variar dependiendo de la arquitectura del CPU. Se pueden incluir acumuladores, registros ı́ndices, stack pointers, etc. Información para el despacho del CPU. Se puede incluir la prioridad del proceso, apuntadores a las colas de despacho, entre otros parámetros. Información para la administración de memoria. Esta información puede incluir el valor base y a los valores de los registros limites. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Cada proceso se representa en el sistema operativo por un Bloque de Control del proceso (PCB) o también conocido como el bloque de control de tarea. El bloque de control tiene asociado muchas piezas de información asociadas al proceso especifico: Estado del proceso. El estado puede ser nuevo, listo, corriendo, etc. Contador de programa. El cual indica la dirección de la siguiente instrucción a ejecutar. Registros del CPU. El tipo y número de los registros pueden variar dependiendo de la arquitectura del CPU. Se pueden incluir acumuladores, registros ı́ndices, stack pointers, etc. Información para el despacho del CPU. Se puede incluir la prioridad del proceso, apuntadores a las colas de despacho, entre otros parámetros. Información para la administración de memoria. Esta información puede incluir el valor base y a los valores de los registros limites. Información administrativa. En esta información se puede incluir la cantidad de uso del CPU, ası́ como el tiempo real utilizado, tiempo limite, número de uso, etc. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Cada proceso se representa en el sistema operativo por un Bloque de Control del proceso (PCB) o también conocido como el bloque de control de tarea. El bloque de control tiene asociado muchas piezas de información asociadas al proceso especifico: Estado del proceso. El estado puede ser nuevo, listo, corriendo, etc. Contador de programa. El cual indica la dirección de la siguiente instrucción a ejecutar. Registros del CPU. El tipo y número de los registros pueden variar dependiendo de la arquitectura del CPU. Se pueden incluir acumuladores, registros ı́ndices, stack pointers, etc. Información para el despacho del CPU. Se puede incluir la prioridad del proceso, apuntadores a las colas de despacho, entre otros parámetros. Información para la administración de memoria. Esta información puede incluir el valor base y a los valores de los registros limites. Información administrativa. En esta información se puede incluir la cantidad de uso del CPU, ası́ como el tiempo real utilizado, tiempo limite, número de uso, etc. Información de E/S. En esta información se incluye una lista de los dispositivos de E/S asignados al proceso, Pedro Chávez Lugo Procesoslista de archivos abiertos, etc. Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Cada proceso se representa en el sistema operativo por un Bloque de Control del proceso (PCB) o también conocido como el bloque de control de tarea. El bloque de control tiene asociado muchas piezas de información asociadas al proceso especifico: Estado del proceso. El estado puede ser nuevo, listo, corriendo, etc. Contador de programa. El cual indica la dirección de la siguiente instrucción a ejecutar. Registros del CPU. El tipo y número de los registros pueden variar dependiendo de la arquitectura del CPU. Se pueden incluir acumuladores, registros ı́ndices, stack pointers, etc. Información para el despacho del CPU. Se puede incluir la prioridad del proceso, apuntadores a las colas de despacho, entre otros parámetros. Información para la administración de memoria. Esta información puede incluir el valor base y a los valores de los registros limites. Información administrativa. En esta información se puede incluir la cantidad de uso del CPU, ası́ como el tiempo real utilizado, tiempo limite, número de uso, etc. Información de E/S. En esta información se incluye una lista de los dispositivos de E/S asignados al proceso, Pedro Chávez Lugo Procesoslista de archivos abiertos, etc. Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Estado del proceso No. de proceso (id process) Contador de programa Registros Limites de memoria Lista de archivos abiertos Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Para la comunicación entre procesos se tienen varios mecanismos que permiten la comunicación local o remota entre procesos: Tuberı́as. La tuberı́a es un mecanismo que se emplea para la comunicación local y unidireccional entre procesos. Un primer proceso realiza una cierta tarea y el resultado de tal tarea es proporcionada a un segundo proceso. Se puede emplear más de una tuberı́as de manera sucesiva. . Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Para la comunicación entre procesos se tienen varios mecanismos que permiten la comunicación local o remota entre procesos: Tuberı́as. La tuberı́a es un mecanismo que se emplea para la comunicación local y unidireccional entre procesos. Un primer proceso realiza una cierta tarea y el resultado de tal tarea es proporcionada a un segundo proceso. Se puede emplear más de una tuberı́as de manera sucesiva. . Seãles. La señal es un mecanismo local y bidireccional entre procesos. Cada señal tiene asociado un significado especial correspondiente a una cierta acción, ej. la señal de STOP, CONT. Pedro Chávez Lugo Procesos Definición Representación en memoria Estados Bloque de Control del proceso Comunicación entre procesos Para la comunicación entre procesos se tienen varios mecanismos que permiten la comunicación local o remota entre procesos: Tuberı́as. La tuberı́a es un mecanismo que se emplea para la comunicación local y unidireccional entre procesos. Un primer proceso realiza una cierta tarea y el resultado de tal tarea es proporcionada a un segundo proceso. Se puede emplear más de una tuberı́as de manera sucesiva. . Seãles. La señal es un mecanismo local y bidireccional entre procesos. Cada señal tiene asociado un significado especial correspondiente a una cierta acción, ej. la señal de STOP, CONT. Sockets. Los sockets son un mecanismo que se emplea en la comunicación bidireccional local y remota entre procesos. Existen varı́os tipos de sockets, pero los sockets de Internet son los más utilizados actualmente. La comunicación mediante sockets requiere de puertos de comunicación y direcciones de internet. Pedro Chávez Lugo Procesos