Procesos
description
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