Procesos

31
2.1 Introducci´ on 2.2 Comunicaci´on entre procesos Sistemas Operativos Unidad II Administrador de procesos Jos´ e David Ortega Pacheco Instituto Polit´ ecnico Nacional Escueal Superior de C´ omputo Departamento de Ingenier´ ıa en Sistemas Computacionales Academia de Sistemas Distribuidos 20 de octubre de 2015 Jos´ e David Ortega Pacheco Sistemas Operativos

description

Procesos en Linux del profesor Pacheco de ESCOM

Transcript of Procesos

2.1 Introduccion2.2 Comunicacion entre procesos

Sistemas OperativosUnidad II

Administrador de procesos

Jose David Ortega Pacheco

Instituto Politecnico NacionalEscueal Superior de Computo

Departamento de Ingenierıa en Sistemas ComputacionalesAcademia de Sistemas Distribuidos

20 de octubre de 2015

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Objetivo

Describir la comunicacion entre procesos, mediante la definicion desemaforos, monitores y transferencia de mensajes, para aplicarlosen la solucion de los problemas clasicos de la comunicacion entre

procesos, la planificacion de sistemas y administracion de procesos.

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Orden de la presentacion

1 2.1 Introduccion

2 2.2 Comunicacion entre procesos

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Definicion de proceso

Un proceso es una entidad activa (programa en ejecucion) quecuenta con dos elementos principales como conceptoabstracto, 1) Codigo de programa y 2) Un conjunto derecursos y datos asociados para su administracion (Bloque deControl de Proceso - BCP - ).

De manera fısica, un proceso se representa mediante unaimagen de proceso, la cual hace referencia a: codigo deprograma, datos, pila y al BCP.

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Bloque de Control de Proceso

Estructura de datos asociada a un proceso, la cual contiene lainformacion necesaria para que el sistema operativo puedaadministralo (detener o continuar con su ejecucion). De manerageneral incluye informacion como la siguiente:

1 Identificador: Identificador unico para distinguir a un procesode otro

2 Estado: Definido a partir del ciclo de vida del proceso(depende de cada sistema operativo)

3 Prioridad: Nivel de prioridad relativo a otros procesos

4 Contador de programa: Apuntador a la siguiente instrucciondel programa a ser ejecutado

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Bloque de Control de Proceso

5 Apuntadores a memoria: Apuntadores al codigo de programa ydatos asociados, junto con apuntadores a memoria compartidacon otros procesos

6 Datos de contexto: Datos presentes en los registros delprocesador mientras el proceso es ejecutado

7 Informacion de Entrada/Salida: Requerimiento o asignacionde recursos de E/S

8 Informacion de auditorıa: Tiempo de procesador, lımites detiempo, quıen y cuando ejecuto el proceso, etc.

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Modelo de estados

Descripcion del comportamiento (ciclo de vida) de los procesos enun sistema operativo.Modelo de dos estados

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Creacion de procesos

Un proceso puede ser creado por las siguientes razones:

Trabajo por lotes

Inicio inteactivo (login)

Proveer un servicio (por parte de sistema operativo)

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Creacion de procesos

A peticion de un proceso.Dos posibilidades de ejecucion:

1 El padre se ejecuta concurrentemente con el hijo2 El padre espera a que alguno o todos sus hijos terminen

Respecto al espacio de direcciones en memoria para el nuevoproceso:

1 El hijo es un duplicado del padre (tiene el mismo codigo deprograma y datos que el padre)

2 El hijo tiene un codigo de programa y datos diferentes al padre

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Creacion de procesos

Proceso general para la creacion de procesos:

1 Asignar un identificador de proceso: Identificador unico delproceso

2 Reserva espacio para el proceso: Memoria de datos y deprograma

3 Inicializar bloque de control de proceso: Valores por defaultestablecidos para el inicio del proceso

4 Inicializar ligas: Planificacion mediante listas ligadas,determinar si el nuevo proceso se asocia a la cola de procesoslistos o listos/suspendidos por ejemplo.

5 Crear estructuras adicionales: Estructuras o archivos paraestadıstica y o propositos de desempeno

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Eliminacion de procesos

Un proceso puede ser eliminado debido a alguna de las siguientesrazones:

Culminacion normal.

Lımite de tiempo de ejecucion excedido

Memoria no disponible (Requiere mas memoria)

Violacion de acceso a memoria

Error por proteccion (Acceso no permitido a recurso)

Error Aritmetico

Tiempo de espera excedido (recurso/evento)

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Eliminacion de procesos

Falla de Entrada/Salida (Operacion invalida o error en laoperacion de E/S)

Instruccion invaida (Del conjunto de instrucciones delprocesador)

Instruccion privilegiada (Reservada al SO)

Error en especificacion de dato (Tipo equivocado o noinicializado)

Intervencion del usuario o del SO

Culminacion del padre

Requerimiento del padre

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Modelo de estados

Modelo de cinco estados

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Modelo de estados

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Modelo de estados

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Modelo de estados

Suspencion.

Se utiliza cuando todos los estados descritos en el modelo decinco estados se cargan en memoria principal, lo cualrepresenta un riesgo

Se puede extender la memoria principal, lo cual implicacostos, ademas de que los programas demandan de maneraidividual cada vez mas espacio de memoria

Otra solucion es el Swapping

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Modelo de estados

Swapping.

Implica mover procesos de memoria principal aalmacenamiento secundario (disco) mediante un estadodenominado como suspencion

Operacion de Entrada/Salida que tiene riesgos inherentes alos dispositivos de E/S, sin ambargo termina siendo unabuena solucion debido a que el disco es de los dispositivos deE/S mas rapidos

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Modelo de estados

Modelo de seis estados.

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Modelo de estados

Modelo de siete estados.

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Cambio de contexto

Mecanismos que interumpen la ejecucion normal de un proceso enel procesador.

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Cambio de contexto

Pasos generales para el cambio de proceso en el uso de procesador.

1 Guardar el contexto del procesador (Program Counter y otrosregistros)

2 Actualizar el BCP del proceso actual, cuyo estado esEjecutando (Se cambia de estado)

3 Mover el BCP del proceso al estado apropiado

4 Seleccionar otro proceso para su ejecucion

5 Actualizar el BCP del proceso seleccionado

6 Actualizar estructuras de datos para el manejo de memoria

7 Establecer el contexto del procesador con los datos decontexto del proceso a ejecutar

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Introduccion

Los procesos se ejecutan de manera concurrente en el sistemaoperativo y pueden ejecutarse como procesos independientes ocomo procesos cooperativos.

Un proceso independiente es aqel que no puede afectar o serafectado por otro proceso

Un proceso es cooperativo si puede afectar o verse afectadopor otro proceso

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Razones para la cooperacion entre procesos

Compartir informacion

Incrementear la velocidad de computo

Modularidad

Conveniencia

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Comunicacion entre procesos

Existen dos mecanismos para la comuicacion entre procesos:

Memoria compartida: Mas rapido

Paso de mensajes: Facil de implementar

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Comunicacion entre procesos

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Memoria compartida

Region compartida de memoria

La memoria compartida termina siendo el espacio dedirecciones de un proceso

El sistema operativo cuida que ningun proceso interfiera conotro, por llo que los procesos en comunicacion aceptaneliminar esta condicion para comunicarse

los procesos en comunicacion peden leer y escribir en el areacompartida

Los procesos son responsables de asegurarse de que noescriben en la misma direccion de memoria de manerasimultanea.

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Paso de mensajes

No se comparte el espaco de direcciones

Util de manera particular en ambientes distribuidos

Se tienen dos operaciones: enviar y recibir

Tamano fijo de envo facilita la implementacion de paso demensaje pero dificulta la tarea de programacion

Tamano variable del envıo dificulta la implementacion de pasode mensajes pero facilita la tarea de programacion

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Paso de mensajes

Formas de comunicacion

Comunicacion directa o indirecta (Nombrado)

Comunicacion sıncrona o asıncrona (Sincronizacion)

Buffer automatico o explıcito (Buffering)

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Paso de mensajes

Nombrado

Esquema simetrico: Envıas mensaje al proceso P send(P,message), Recibe mensaje del proceso Q receive(Q, message)

Esquema asimetrico: Envıas mensaje al proceso P send(P,message), Recibe mensaje de cualquier proceso receive(id,message)

Mailbox: Enviar mensaje al mailbox A send(A, message),Recibir mensaje del mailbox A receive(A, message). El sistemaoperativo debe permitir crear un mailbox, enviar y recibirmensajes a partir de un mailbox y eliminar un mailbox

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Paso de mensajes

Sincronizacion

El paso de mensajes puede ser bloqueante (sıncrono) ono-bloqueante (asıncrono)

Envıo bloqueante: El proceso que envıa es bloqueado hastaque el mensaje es recibido por el proceso o mailbox destino

Envıo no-bloqueante: El proceso de envıo manda el mensaje ycontinua su operacion

Recepcion bloqueante: El proceso receptor se bloquea hastaque tiene un mensaje

Recepcion no-bloqueante: El receptor recupera un mensaje oun mensaje nulo

Jose David Ortega Pacheco Sistemas Operativos

2.1 Introduccion2.2 Comunicacion entre procesos

Paso de mensajes

Buffering

Comunicacion mediante una cola temporal

Capacidad Cero: Se bloquea al proceso que envıa hasta que elreceptor reciba el mensaje

Capacidad Limitada: Capacidad n. Si se llena, el proceso queenvıa se bloquea hasta que haya espacio

Capacidad Ilimitada: Cantidad ilimitada de mensajes y elproceso que envıa no se bloquea

Jose David Ortega Pacheco Sistemas Operativos