Unidad III Administración de procesos

Slides:



Advertisements
Presentaciones similares
GESTION DE PROCESOS.
Advertisements

Concurrencia Exclusión mutua y sincronización
Tabla de Contenido Concurrencia.
TEMA 1 Introducción a la Programación Concurrente
1.3. PROGRAMACION PARALELA
UNIX COMP 240.
III - Gestión de memoria
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
T5-multithreading SO-Grado Q1.
Computación PROGRAMACIÓN.
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
Daniel Morillo Jorge Boscán Gregory Carrasco
Profesor: Ing. Matías Vallerga Ayudante: Lic. Cristian Kenny
TRABAJO DE SISTEMAS OPERATIVOS
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Comunicación y sincronización entre procesos
SISTEMAS OPERATIVOS UNIDAD 1..
Comunicación y sincronización de procesos Comunicación por tuberías.
7a.1 Silberschatz, Galvin y Gagne ©2003 Sistemas Operativos 6ª edición Capítulo 7: Sincronización de procesos parte a.
INTEGRANTES ALEXIS MENDOZA ALDAIR ARRIETA CARLOS PASTOR LORENA RODRIGUEZ ANTHONY JIMENEZ.
Estructuración y modularidad de los programas Fundamentos de Programación/ Programación I
Sincronización de procesos
Introducción a los SSOO Sebastián Sánchez Prieto.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
Concurrencia: Exclusión Mútua y Sincronización
Sistemas Operativos Procesos.
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Sincronización de Procesos Semáforos Emely Arráiz Ene-Mar 08.
Archivos.
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
Profesor: Rodrigo Sanhueza Figueroa
Sincronización de procesos Mariano Gómez Plaza.  Mariano Gómez Plaza Sincronización de procesos 2 Tipos de procesos IndependientesCooperantes.
IET110 Sistemas Operativos P04: Exclusión Mutua Prof. Jonathan MakucSlide: 1.
Sistemas en tiempo real (STR)
SISTEMA OPERATIVO Un sistema operativo es un programa que actúa como intermediario entre el usuario y el hardware de un computador y su propósito es proporcionar.
SISTEMAS OPERATIVOS.
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Capítulo 7 Gestión de memoria.
Programación secuencial vs programación concurrente
Monitores Mecanismo sincronización de nivel más alto que semáforos Construcción a nivel de lenguaje de programación que controla el acceso a datos compartidos.
Sincronización de Procesos
Sincronización de Procesos
Tema 9.6: Sincronización de Procesos
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Programación secuencial vs programación concurrente
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
Administrador de procesos
Introducción a los SOs.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Tema 5: Multiprocesadores
Informática III 2009 Ing. Estela D'Agostino 1 Programación secuencial vs programación concurrente Pascal, C, Fortran, Cobol Secuenciales único hilo de.
Sistema operativo Unix
Estructura de los Sistemas Operativos
Teoría de Sistemas Operativos Sincronización Procesos
Metodología de la programación
Unidad 2 – Gestión de Procesos
HISTORIA DE LOS SISTEMAS OPERATIVOS
UTFSM - Sistemas Operativos
Elementos y tipos de sistemas operativos
Desarrollador Profesional de Juegos Programación III Unidad II Trabajando con bloqueo de datos.
TIPOS DE SISTEMAS OPERATIVOS.  Que es un sistema operativo??  Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar,
Interfaz de programación de aplicación 5R1221. Las API’s API es la abreviatura de Aplication Programming Interface. Un API no es más que una serie de.
Desventajas Poco eficiente: lectura y escritura en disco es lenta Necesita otro mecanismo de sincronización para acceder a los datos Son los procesos.
ARCHIVO Es una colección de información o bien es una secuencia de bits, bytes, líneas o registros definida por su creador.
1 Tema 6: Concurrencia de Procesos Sistemas Operativos.
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Transcripción de la presentación:

Unidad III Administración de procesos Sistemas Operativos Unidad III Administración de procesos

Administración de procesos Procesos concurrentes Problemas clásicos de comunicación y sincronización Mecanismos de comunicación y sincronización Paso de mensajes Aspectos de implementación de los mecanismos de sincronización

Procesos concurrentes Multiprogramación con un solo CPU Plataformas: Multiprogramación en un único procesador. Multiprocesador. Multicomputador (procesamiento distribuido) Razones Compartir recursos físicos. Compartir recursos lógicos. Almacenar los cálculos Modularidad Comodidad Multiprogramación con dos CPU’s

Procesos concurrentes (2) Tipos de procesos concurrentes Independientes Se ejecuta sin requerir la ayuda o cooperación de otros procesos. Ejemplo: el shell o intérprete de mandatos. Cooperantes Están diseñados para trabajar conjuntamente en alguna actividad. Deben ser capaces de comunicarse entre ellos Ejemplo: el compilador (gcc: precompila, compila y enlaza).

Procesos concurrentes (3) Interacción entre procesos Los procesos comparten o compiten por el acceso a recursos físicos o lógicos. Por ejemplo dos procesos independientes pueden competir por el acceso a disco. El SO debe garantizar que todos los procesos accedan ordenadamente a los recursos. Los procesos se comunican y sincronizan. Se trata de alcanzar un objetivo común Por ejemplo al generar código ejecutable los procesos de compilación y ensamble deben comunicarse y sincronizarse.

Problemas clásicos de comunicación y sincronización La interacción entre procesos plantea una serie de situaciones clásicas de comunicación y sincronización: El problema de la sección crítica El problema del Productor-Consumidor El problema de los Lectores-Escritores Comunicación Cliente-Servidor

Problemas clásicos de comunicación y sincronización (2) El problema de la sección crítica Es el de mayor frecuencia cuando se ejecutan n procesos concurrentes. Cada uno tiene un fragmento de código: la sección crítica. Sólo uno de los procesos en cada instante puede ejecutar en la sección crítica Cuando un proceso está ejecutando en la sección crítica, ningún otro puede hacerlo. Ejemplos: Generación de un PID en un sistema mutiprocesador. Calcular la suma de los n primeros números naturales de forma paralela con dos hilos.

Problemas clásicos de comunicación y sincronización (3) Ejemplo 1: Generación de un PID en un sistema multiprocesador Si no existe sincronización se puede incurrir en el error de asignar el mismo PID a dos procesos distintos

Problemas clásicos de comunicación y sincronización (4) Ejemplo 2: Calcular la suma de los n primeros números naturales de forma paralela con dos hilos.

Problemas clásicos de comunicación y sincronización (5) Solución al problema de la sección crítica La estructura general de cualquier mecanismo para resolver el problema de la sección crítica es: Entrada en la sección crítica Código de la sección crítica Salida de la sección crítica Los tres requisitos que debe tener cualquier solución del problema de la sección critica son: Exclusión mutua Si un proceso está ejecutando un código de la sección crítica, ningún otro proceso lo podrá hacer. Progreso Si ningún procesos esta ejecutando dentro de la sección crítica, la decisión de qué proceso entra en la sección se hará sobre los procesos que desean entrar, tal decisión debe realizarse en un tiempo finito. Espera acotada Debe haber un límite en el número de veces que se permite que los demás procesos entren a ejecutar código de la sección crítica.

Problemas clásicos de comunicación y sincronización (6) Problema del productor-consumidor Uno o más procesos, los “productores”, generan un cierto tipo de datos que son utilizados por otros procesos, los “consumidores”. Es necesario un mecanismo de comunicación para que productores y consumidores intercambien información. Cuando el mecanismo de comunicación se llena el productor debe dejar de producir. Cuando el mecanismo de comunicación está vacío el lector debe esperar a que se produzca un dato

Problemas clásicos de comunicación y sincronización (7) El problema de los lectores-escritores Existe un determinado objeto que va a ser utilizado y compartido por una serie de procesos concurrentes. Algunos procesos solo acceden al objeto sin modificarlo y algunos acceden para modificarlo, lo que lleva a algunas restricciones: Solo se permite que un escritor tenga acceso al mismo tiempo. Se permite cualquier numero de lectores accediendo al mismo tiempo.

Problemas clásicos de comunicación y sincronización (8) Comunicación cliente-servidor Existen procesos llamados servidores que ofrecen una serie de servicios a otros proceso denominados clientes. El proceso servidor puede residir en la misma máquina o en una máquina distinta. Se utilizan técnicas basadas en el paso de mensajes.

Mecanismos de comunicación y sincronización El SO ofrece una serie de servicios que permiten a los procesos comunicarse y sincronizarse. Principales mecanismos de comunicación: Archivos. Tuberías. Variables en memoria compartida. Paso de mensajes. Principales mecanismos de sincronización: Semáforos. Mutex y variables condicionales.

Mecanismos de comunicación y sincronización (2) Archivos Es un mecanismo que puede utilizarse para comunicar procesos. Presenta las siguientes ventajas: Permite comunicar un número potencialmente ilimitado de proceso. Los servidores de archivos ofrecen servicios sencillos y fáciles de utilizar. También presenta una serie de inconvenientes: Es poco eficiente, la escritura y lectura a disco es lenta. Necesita de algún otro mecanismo que permita que los procesos se sincronicen en el acceso de los datos almacenados en el archivo.

Mecanismos de comunicación y sincronización (3) Tuberías Es un mecanismo de comunicación y sincronización. Existen dos tipos: Tuberías sin nombre (pipe) Solo el proceso que la crea y sus descendientes pueden utilizarla. Tuberías con nombre (FIFO) Para los procesos que no guardan ninguna relación de parentesco. Conceptualmente cada proceso ve a la tubería como un conducto con dos extremos, uno para insertar y otro para extraer datos de la tubería.

Mecanismos de comunicación y sincronización (4) Comunicación bidireccional con tuberías.

Mecanismos de comunicación y sincronización (5) Escritura en una tubería Introduce los datos en orden FIFO Si tubería llena se bloquea el escritor. Si no hay lectores se retorna el error correspondiente. Lectura de una tubería Recupera los datos en el orden en que se introdujeron. Si tubería vacía se bloquea el lector. Si la tubería almacena M bytes y se quieren leer n bytes, entonces: Si M ≥ n, se recuperan n bytes Si M < n, se recuperan M bytes Si no hay escritores y la tubería está vacía se retorna fin de archivo Ambas operaciones (escritura y lectura) son atómicas, es decir, si dos procesos intenta acceder al mismo tiempo, uno de ellos se bloqueará.

Mecanismos de comunicación y sincronización (6) Sección crítica con tuberías La solución consiste en crear una tubería y escribir en ella un dato testigo. Escrito el dato testigo, los procesos protegen su código de la sección crítica. Ej: Leer dato de la tubería Código correspondiente a la sección crítica Escribir el dato en la tubería void main(void){ int fildes[2]; char c; pipe(fildes); write(fildes[1], &c, 1); if( fork() == 0){ for( ; ; ){ read( fildes[0], &c, 1); /*SECCION CRITICA*/ write( fildes[1], &c, 1); } else{

Mecanismos de comunicación y sincronización (7) Productor-consumidor con tuberías Cuando el productor ha elaborado un elemento lo escribe en la tubería. Cuando el consumidor quiere procesar algún elemento lo lee de la tubería. void main(void){ int fildes[2]; int dato_p[4]; char dato_c; pipe(fildes); if( fork() == 0){ for( ; ; ){ /*PRODUCIR DATO p*/ write( fildes[1], dato_p, 4*sizeof(int)); } else{ read( fildes[0], &dato_c, sizeof(int)); /*CONSUMIR DATO p*/

Mecanismos de comunicación y sincronización (8) Semáforos Mecanismo de sincronización que se utiliza generalmente en sistemas con memoria compartida. Es un objeto con un valor entero Se le puede asignar un valor inicial no negativo. Se accede mediante dos operaciones atómicas: wait signal wait(s) { s = s-1; if( s < 0 ) /*BLOQUEAR PROCESO*/ } signal(s) s = s+1; if( s <= 0) /*DESBLOQUEAR UN PROCESO BLOQUEADO POR WAIT*/

Mecanismos de comunicación y sincronización (9) Sección crítica con semáforos wait(s); /*Entrada a la sección crítica*/ <sección crítica> signal(s); /*Salida de la sección crítica*/

Mecanismos de comunicación y sincronización (10) Productor-Consumidor con semáforos Se usa un buffer circular compartido por ambos procesos. Existen dos tipos de recursos: elementos y huecos. Un semáforo por cada uno. Productor ( ){ int posicion = 0; for( ; ; ){ Producir un dato; wait (huecos); buffer[posicion] = dato; posicion = (posicion + 1) % TAMBUFF; signal (elementos); } Consumidor ( ){ wait (elementos); dato = buffer [posicion]; signal (huecos); Consumir el dato;

Mecanismos de comunicación y sincronización (11) Memoria compartida Permite comunicar a procesos que se ejecutan en la misma máquina. Dos procesos acceden a una misma variable.

Mecanismos de comunicación y sincronización (12) Mutex Son mecanismos de sincronización especiales para hilos. Es un semáforo binario con dos operaciones atómicas: lock(m) Intenta bloquear el mutex, si el mutex ya está bloqueado el hilo se suspende. unlock(m) Desbloquea el mutex, si existen procesos bloqueados en el mutex se desbloquea uno. variables condicionales Variables de sincronización asociadas a un mutex Conviene ejecutarlas entre un lock y unlock Dos operaciones atómicas wait Bloquea el hilo y lo expulsa del mutex signal Desbloquea uno o varios procesos suspendidos en la variable condicional. El hilo que despierta compite nuevamente por el mutex.

Mecanismos de comunicación y sincronización (13) Sección critica con mutex La operación unlock debe realizarla el hilo que ejecutó el lock lock (m); < sección crítica > unlock (m);

Paso de mensajes Son especialmente útiles cuando se necesita comunicar y sincronizar procesos que se ejecutan en máquinas distintas. Permiten resolver: Exclusión mutua Sincronización entre un proceso que recibe un mensaje y otro que lo envía. Comunicación entre espacios de memoria diferentes (en la misma computadora o de una computadora a otra) Se tienen dos primitivas básicas: send (destino, mensaje) envía un mensaje al proceso destino. receive (destino, mensaje) recibe un mensaje del proceso destino.

Paso de mensajes (2) Aspectos de implementación Tamaño del mensaje Tamaño (fijo o variable) Flujo de datos Unidireccional o bidireccional Nombrado Directo Nombrar de forma explicita al proceso receptor o emisor Indirecto El menaje es enviado a través de colas de mensajes o puertos. Sincronización Tres combinaciones habituales Envío y recepción bloqueante Envío no bloqueante y recepción bloqueante Envío y recepción no bloqueante Almacenamiento Tiene o no tiene capacidad para almacenar mensajes.

Paso de mensajes (3) Uso de colas y puertos para comunicación indirecta

Aspectos de implementación de los mecanismos de sincronización Todo mecanismo de sincronización conlleva un bloqueo bajo determinadas circunstancias y se puede conseguir de dos formas: Espera activa Los procesos efectúan un ciclo continúo hasta que pueden continuar, lo que representa un problema en sistemas multiprogramados. Espera pasiva La operación de bloqueo coloca un proceso en una cola de espera asociada al mecanismo de sincronización y transfiere el control al planificador.

Aspectos de implementación de los mecanismos de sincronización (2)

Aspectos de implementación de los mecanismos de sincronización (3) Implementación de las espera pasiva Operaciones para bloquear a un proceso en un semáforo

Aspectos de implementación de los mecanismos de sincronización (4) Implementación de las espera pasiva Operaciones para desbloquear a un proceso bloqueado en un semáforo