INTERPROCESS COMMUNICATIONS-1 Cátedra: Sistemas Operativos UTN-FRSF

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
UNIX COMP 240.
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
Uno de los conceptos mas importantes que gira entorno a un sistema operativo es el de proceso. Un proceso es un programa en ejecución junto con el entorno.
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Programación 1 Introducción
Programación Concurrente DAI - UNSAAC.
SISTEMAS OPERATIVOS UNIDAD 1..
Unidad 2: Comunicación entre Procesos (1ra parte)
PROGRAMACIÓN ORIENTADA A OBJETOS
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.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
ConceptoDefiniciónCaracterísticas (palabra clave) Ejemplo/Aplicación Sistema operativo Un sistema operativo es un software, es decir, forma parte de la.
ESTRUCTURAS DE CONTROL
Concurrencia: Exclusión Mútua y Sincronización
Capítulo 3 Concurrencia: exclusión mutua y sincronización. Comunicación entre 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.
Unidad III Administración de procesos
Profesor: Rodrigo Sanhueza Figueroa
Tecnología de la información Unidad: 3 El software Profesor: Fernando J. Martini.
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)
PROGRAMACION CONCURRENTE
EL SISTEMA OPERATIVO.
Hilos En La Computación. (THREADS).
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Sincronización de Procesos Conceptos Problema SC Soluciones Software Soluciones Hardware Emely Arráiz Ene-Mar 08.
ConceptoDefiniciónCaracterísticas (palabra clave) Ejemplo/Aplicación Sistema operativo Es el software que permite al usuario interactuar con la computadora.
Gestión de Procesos Gestión de Procesos Procesos Planificación CPU
FUNDAMENTOS TECNOLÓGICOS DE INFORMACIÓN
Gestión de procesos Sistemas Operativos Edwin Morales
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
Monitores Cabudare, noviembre de 2010 Universidad Fermín Toro
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.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
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.
Universidad Metropolitana Introducción a la Computación
Teoría de Sistemas Operativos Sincronización Procesos
Metodología de la programación
UTFSM - Sistemas Operativos
Cliente-Servidor La arquitectura cliente-servidor permite al usuario en una máquina, llamada el cliente, requerir algún tipo de servicio de una máquina.
Lic. Carla Aguirre Montalvo
Elementos y tipos de sistemas operativos
Objetivos del tema. Hemos visto lo que es la estructura de un programa, los datos, que esos datos en realidad se convierten en variables de distinto.
SOFTWARE APLICACIÓN programa informático diseñado para facilitar al usuario la realización de un determinado tipo de trabajo. APLICACIÓN programa informático.
Desarrollador Profesional de Juegos Programación III Unidad II Trabajando con bloqueo de datos.
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
Fundamentos de Programación Unidad I Conceptos Básicos.
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.
Procesos Un proceso es un programa en ejecución. Modelo de procesos secuenciales. Abstracción del SO.
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.
Transcripción de la presentación:

INTERPROCESS COMMUNICATIONS-1 Cátedra: Sistemas Operativos UTN-FRSF

STDIN, STDOUT, STDERR

IPC en DOS y UNIX Archivo PEPE: HOLA QUE TAL COMO TE VA AGRADECELE A CHOLA DOS C:\DOS> TYPE PEPE | FIND “HOLA” | SORT AGRADECELE A CHOLA HOLA QUE TAL C:\DOS> _ UNIX $ cat PEPE | grep “HOLA” | sort AGRADECELE A CHOLA HOLA QUE TAL $ _

“IPC” en DOS

IPC en UNIX

Interacción entre procesos Los Procesos no son entidades independientes: Cooperan y compiten para realizar su labor. Necesidad de sincronizarse y comunicarse Aspectos a Analizar: Mecanismos de sincronización y comunicación ofrecidos por OS. Sincronización dentro del propio OS.

Comunicación/Sincronización Comunicación: permite ejecución de un proceso para influenciar ejecución de otro. Comunicación: Está basada en el uso de variables compartidas o envío de mensajes. La sincronización: es necesaria frecuentemente cuando los procesos se comunican. La sincronización: puede verse como un conjunto de restricciones para el ordenamiento de eventos.

Condiciones de Competencia EJEMPLO Cuando un proceso desea imprimir un archivo escribe el nombre de este en un directorio de SPOOL. Otro proceso, demonio impresión (lpd) verifica si existen archivos por imprimir, los imprime y elimina sus nombres del directorio

Condiciones de Competencia

Condiciones de Competencia Proceso_A() { ....... Print_File(in, fileA); in = in + 1; ..... } Proceso_B() { ....... Print_File(in, fileB); in = in + 1; ..... } Secuencia de ejecución: Print_File(in, fileA); => in = 7 Print_File(in, fileB); => in = 7 in = in + 1; => in = 8 in = in + 1; => in = 9 Resultado: El archivo fileA nunca se imprime y la ranura 8 queda vacía !!

Condiciones de Competencia Proceso_A() { ....... in = in + 1; Print_File(in-1, fileA); ..... } Proceso_B() { ....... in = in + 1; Print_File(in-1, fileB); ..... } Secuencia de ejecución: in = in + 1; => in = 8 in = in + 1; => in = 9 Print_File(in-1, fileB); => in-1 = 8 Print_File(in-1, fileA); => in-1 = 8 Resultado: El archivo fileB nunca se imprime y la ranura 7 queda vacía !!

Condiciones de Competencia Los procesos Concurrentes (o threads) necesitan frecuentemente compartir datos y recursos. Si no comparten datos de manera controlada puede obtener una vista inconsistente de los mismos El resultado obtenido dependerá entonces del orden de ejecución!!! INTOLERABLE !! A estas situaciones se las denomina Condiciones de Competencia o Concurso (Race Conditions)

Regiones Críticas Cuando un proceso manipula datos o recursos compartidos, se dice que ese proceso se encuentra en una Región Crítica (para ese dato compartido). La ejecución de una RC debe ser mutuamente exclusiva en cualquier momento. (serializada). Solo un proceso por vez debe estar ejecutando la RC. Los procesos deben requerir permiso para ingresar en la RC.

Regiones Críticas

Regiones Críticas

Características de la Solución Todo proceso se ejecuta a una velocidad distinta de cero, pero no pueden hacerse estimaciones respecto a la velocidad relativa de los procesos.

Características de la Solución No hacer estimaciones respecto al orden relativo de ejecución. Estructura Genérica: repeat enter_region() critical section leave_region() remainder section forever

Características de la Solución Exclusión Mutua En cualquier momento, a lo sumo un proceso puede estar en la RC Progreso Ningún proceso fuera de la RC debe impedir que otro proceso ingrese en la RC Espera Acotada Después que un proceso ha requerido ingresar en la RC, debe acotarse el número de veces que otro proceso pueda ingresar a la RC o el proceso en cuestión sufrirá de inhanición.

Tipos de Soluciones Soluciones de Software Soluciones de Hardware Son algoritmos que no se basan en ninguna otra hipótesis. Soluciones de Hardware Recaen en instrucciones especiales de la Máquina Soluciones del Sistema Operativo Provee primitivas al programador (System Calls) Soluciones del Compilador/Lenguaje Provee primitivas al programador utilizando las soluciones de Hard, Soft o SO.

Clasificación de Primitivas CON ESPERA OCUPADA Variable Cerrojo o Candado Alternancia Estricta Activación/Desactivación de Interrupciones TSL/XCHG Solución de Peterson

Clasificación de Primitivas CON BLOQUEO sleep()/wakeup() Semáforos ( up()/down()) De exclusión De eventos Contadores de Eventos ( await()/advance()) Barreras Monitores Variables de Condición (wait()/signal()) Transferencia de Mensajes Con Principio de Cita Con Buzones

Variable Cerrojo (spinlocks)

Alternancia Estricta Cuando la Región NO-Crítica de un proceso es mas lenta que la del otro, un proceso fuera de la Región Crítica impide la entrada de un proceso que está intentando ingresar a la RC.

Desactivación de Interrupciones En uniprocesadores: Se preserva la exclusión mutua pero se degrada la eficiencia Si está en RC otros procesos no pueden ejecutar estando fuera de la RC No sirve en multiprocesadores No es una primitiva para darle a “cualquiera” Process Pi: repeat disable_interrupts critical section enable_interrupts remainder section forever

TSL

TSL

TSL Se preserva la Exclusión Mutua: si un proceso está en la RC otro no puede ingresar. Problema: Utiliza espera ocupada. Los procesadores Intel ofrecen xchg(a,b) que permite intercambiar el contenido de a y b.

XCHG La variable compartida b se inicializa en 0 Cada proceso Pi tiene una variable local k El único proceso que puede ingresar a la RC es el que tiene b=0 El resto de los procesos tiene b=1 Process Pi: repeat k:=1 repeat xchg(k,b) until k=0; critical section b:=0; remainder section forever

Solución de Peterson

Problemas de la Espera Ocupada

Problemas de la Espera Ocupada

Productor/Consumidor Un proceso Productor produce información que será consumida por el proceso Consumidor Ejemplo1: un programa que lista un archivo y otro que filtra el texto que le es suministrado por el primero. Ejemplo2: un driver de teclado que genera caracteres que son consumidos por el programa de usuario. Se necesita un Buffer para contener los items producidos mientras se van consumiendo Es un problema típico de los procesos que cooperan entre sí.

BUFFER

Sleep/Wakeup

Sleep/Wakeup