CONCURRENCIA. Sincronización. Sistemas Operativos y Distribuidos. Prof. Javier Echaiz 1. Material Adicional (SOSD Mod 4)
|
|
- Mercedes Mora Marín
- hace 6 años
- Vistas:
Transcripción
1 Material Adicional (SOSD Mod 4) Concurrencia Exclusión mutua y sincronización CONCURRENCIA Slides de Samuel Oporto Díaz 2 Concurrencia La concurrencia es la simultaneidad de hechos. Un programa concurrente es aquel en el que ciertas unidades de ejecución internamente secuenciales (procesos o threads), se ejecutan paralela o simultáneamente. Incluye los siguientes aspectos: comunicación entre procesos. compartición y competencia por los recursos. sincronización de la ejecución de varios procesos. asignación del tiempo de procesador a los procesos. Surgen en entornos con un solo procesador, con multiprocesadores y proceso distribuido. 3 Concurrencia Un programa concurrente está formado por una colección de procesos secuenciales autónomos que se ejecutan (aparentemente) en paralelo. Tres formas de ejecutar procesos concurrentes: 1. Los procesos multiplexan sus ejecuciones sobre un único procesador (multiprogramación). 2. Los procesos multiplexan sus ejecuciones sobre un sistema multiprocesador de memoria compartida (multiproceso). 3. Los procesos multiplexan sus ejecuciones en varios procesadores que no comparten memoria (procesamiento distribuido). El término concurrencia indica paralelismo potencial. 4 Concurrencia En un sistema multiprogramado (1 µp), los procesos se intercalan, para dar la apariencia de simultaneidad. Concurrencia P3 En un sistema con varios procesadores (n µp), los procesos se superponen. multiprogramación multiproceso Procesamiento distribuido P3 5 6 Prof. Javier Echaiz 1
2 Dificultades con la Concurrencia Un ejemplo simple Los problemas generados por la multiprogramación surgen por que no es posible predecir la velocidad relativa de los procesos: La actividad de un proceso depe de la actividad de los otros procesos y de la forma cómo el SO trata las interrupciones y las políticas de planificación. chin chout Dificultades: Compartir recursos globales (variable global) Manejar la asignación de recursos Detectar un error es difícil, dado que es difícil reproducir la situación un ejemplo simple void echo() { char_in = getchar(); char_out = char_in; putchar(char_out); un ejemplo simple Process Process.. chin = getchar();.. chin = getchar(); chout = chin; chout = chin; putchar(chout);.. putchar(chout);.. chin = a chin = b Se asume que esta función es usada por muchos procesos en el SO y dado que existe una sola pantalla y un solo teclado, todos los programas interactúan con este programa. Por lo que lo que es recomable tenerlo siempre en memoria 9 Conclusiones: Proteger las variables compartidas. cómo? Evitando que otro proceso ejecute a echo hasta que el proceso actual termine. Evitando que el proceso actual sea interrumpido hasta que termine 10 Tipos de proceso INTERACCION ENTRE PROCESOS Son deterministas Son reproducibles Indepientes Su estado no es compartido Ejemplo: Un programa que calcula 1000 cifras decimales de π Cooperantes Su estado es compartido Su funcionamiento no es determinista Su funcionamiento puede ser irreproducible Ejemplo: un proceso que escribe en el terminal la cadena abc y en otro la cadena cba Prof. Javier Echaiz 2
3 Interacción entre procesos La concurrencia se presenta cuando existen: multiprogramación de aplicaciones indepientes. aplicaciones con varios procesos. Interacción entre procesos Existen tres maneras en que los procesos interactúan: 1 competencia por recursos escasos. Los procesos no conocen a los demás Interbloqueo Inanición Exclusión mutua el uso de las estructuras de datos del SO. el computador se dispone de varios procesadores. 2 cooperación por compartición Los procesos conocen indirectamente a los demás Interbloqueo Inanición Exclusión mutua Coherencia de datos (multiprogramación). (multiproceso). (procesamiento distribuido). 3 cooperación por comunicación Los proceso conocen directamente a los otros. Interbloqueo Inanición Competencia por recursos escasos Los procesos compiten por recursos escasos. Recursos disponibles Ejemplo Si dos procesos compiten por un recurso el SO asigna el recurso a uno y el otro espera Problemas. Interbloqueo (estancamiento) Inanición Exclusión mutua P 1 P 2 P 3 Estado inicial P 1 P 2 P 3 P 1 P 2 P 3 P 1 P 2 P 3 P 1 P 2 P 3 Estado seguro Estado seguro Estado inseguro Estado inseguro La cooperación por compartición Los procesos no se conocen. Los procesos cooperan para evitar inconsistencias Recursos compartidos: variables compartidas ficheros bases de datos Problema Confianza Solución Exclusión mutua Sección crítica La escritura debe ser mutuamente excluyente. La lectura puede ser concurrente Ejecución consistente : a = a + 1 b = b + 1 : b = 2 * b a = 2 *a Ejecución concurrente : a = a + 1 : b = b * 2 : b = b + 1 : a = 2 *a Ejemplo a = a + 1 b = b + 1 b = 2 *b a = 2 *a a = a + 1 b = b * 2 b = b + 1 a = 2 *a Prof. Javier Echaiz 3
4 3 La cooperación para la comunicación Los procesos se conocen explícitamente. La comunicación se da con mensajes: s, receive. No se comparten recursos no exclusión mutua. Problemas. Interbloqueo. Cada proceso espera un mensaje del otro proceso PROBLEMAS POTENCIALES A RESOLVER Inanición. Dos procesan envían sus mensaje mutuamente mientras que esperan un mensaje del otro proceso Exclusión mutua Es un mecanismo empleado en el diseño de los sistemas operativos para evitar los problemas de competencia por recursos, se basa en definir una zona o región crítica la cual está marcada por las instrucciones que hacen uso del recurso en competencia (recurso crítico). 2. Interbloqueo (deadlock) condiciones : requiere R1 y R2 requiere R1 y R2 acciones: 1. obtiene R1 2. obtiene R2 3. Y están bloqueados esperando cada uno al otro R1 1 R1 0 R1 0 1 R2 1 R2 0 R Inanición Los procesos siempre están bloqueados y nunca acceden a los recursos que necesitan Sean 3 procesos. solicita recurso. y P3 solicitan recursos suelta el recurso Se asigna el recurso a solicita el recurso suelta el recurso Se asigna el recurso a SECCION CRÍTICA Prof. Javier Echaiz 4
5 Sección Crítica Es la parte del programa que accede a un recurso compartido Solo un programa puede acceder a su sección crítica en un momento dado NO se puede confiar simplemente en el SO para hacer cumplir esta restricción Se suspe la ejecución de la sección crítica hasta que acabe el anterior Ejemplo: solo un proceso en cada momento estará enviando comandos a la impresora Requerimientos para exclusión mutua 1. Exclusión mutua. Sólo un procese accede a la vez a su SC 2. Un proceso suspido en su SC no debe estorbar a otros 3. No inanición, no interbloqueo. Si un proceso solicita acceso a su SC no debe demorar su atención. 4. Si ningún proceso está en su SC, no se puede evitar que otro proceso entre a su SC. sección crítica 5. No suponer la velocidad relativa de los procesos. 6. Se permanece en la SC por un tiempo finito Intento inicial SOLUCIONES DE SOFTWARE obtener_entrada entrar_exclusion_mutua count = count + 1 salir_exclusion_mutua procesar_entrada ; procedure proceso_dos obtener_entrada entrar_exclusion_mutua count = count + 1 salir_exclusion_mutua procesar_entrada ; count = 0; par par;. par, par hacen que proceso_uno y proceso_dos operen concurrentemente. estos procesos se encuentran en un ciclo infinito de entrada/salida a sus secciones criticas Primer intento Segundo intento while turno=2 do espera; turno = 2; ; procedure proceso_dos while turno=1 do espera; seccion_critica_dos; turno = 1; proceso_dos_proceso; ; turno=1; par par;. while p2entro do espera; p1entro = TRUE; p1entro = FALSE ; procedure proceso_dos while p1entro do espera; p2entro = TRUE seccion_critica_dos; p2entro = FALSE proceso_dos_proceso; ; p1entro = FALSE; p2entro = FALSE; par par;. Los procesos entran a sus SC alternativamente, y el proceso 1 entra primero. Si uno de los procesos falla entonces el otro proceso quedará bloqueado indefinidamente. problemas: supuesto de velocidad, prioridad. sincronización en tándem. (por dos lados). 29 Cada proceso puede ver el estado del otro pero no alterarlo. Si un proceso quiere entrar a su SC verifica el estado del otro (false) y luego pone su estatus en true. Al salir pone false en su estado. problema: que y intenten entrar al mismo tiempo a su SC. El momento en que un proceso determina si puede entrar a su sección critica y el momento en que informa que esta en exclusión mutua. puede ser usado por otro proceso para verificar si puede entrar. pp: p1entro = FALSE; p2en tro = FALSE; p1: while p2entro do; p2: while p1entro do; p1: p1entro = TRUE; p2: p2entro = TRUE; 30 Prof. Javier Echaiz 5
6 p1deseaentrar = TRUE; while p2deseaentrar do espera; ; Tercer intento procedure proceso_dos p2deseaentrar = TRUE while p1deseaentrar do espera; seccion_critica_dos; proceso_dos_proceso; ; p1deseaentrar=false; p2deseaentrar=false; par par;. Este algoritmo trata de asegurar que mientras un proceso pasa su verificación ningún otro proceso puede pasar su verificación. Se hace uso de las variables p1deseaentrar y p2deseaentrar. problema: cada proceso puede asignar TRUE a su indicador antes de realizar la verificación y por lo tanto ambos procesos se bloquearían uno al otro (interbloque). p1deseaentrar = TRUE; while p2deseaentrar do espera de algunos ciclo p1deseaentrar = TRUE otras_tareas_uno; ; Cuarto intento p2deseaentrar = TRUE; while p1deseaentrar do espera de algunos ciclo p2deseaentrar = TRUE ; p1deseaentrar=false; p2deseaentrar=false; par par;. El problema de los algoritmos anteriores es que los procesos podrían bloquearse durante la verificación. Este algoritmo asigna FALSE a su propio indicador durante cierto tiempo, si es que se encuentra durante la verificación. Esto permite que el otro proceso salga de la espera con TRUE en su indicador. La exclusión mutua esta garantizada y no puede haber interbloqueo Cuarto intento problema: Pero se puede dar el aplazamiento indefinido, dado que no se puede hacer ningún supuesto respecto a la velocidad de los procesos. Así, si los procesos se ejecutan en tándem (alternativamente), se puede dar la siguiente secuencia de instrucciones, en la cual ninguno de los procesos entra a su sección critica: Ciclo reloj p1deseaentrar = TRUE while p2deseaentrar do : p1deseaentrar = TRUE while p2deseaentrar do : p1deseaentrar = TRUE p2deseaentrar = TRUE while p1deseaentrar do : p2deseaentrar = TRUE 33 p1deseaentrar = TRUE; while p2deseaentrar do if proceso_activo = DOS then ; while proceso_activo=dos do; p1deseaentrar = TRUE; ; proceso_activo = DOS otras_tareas_uno; ; Solución correcta p2deseaentrar = TRUE; while p1deseaentrar do if proceso_activo = UNO then ; while proceso_activo=uno do; p2deseaentrar = TRUE; ; seccion_critica_dos; proceso_activo = UNO ; ; ; proceso_activo = UNO; par par;. Cada proceso consigue una vuelta a la sección crítica Si un proceso quiere la sección crítica, pone su bandera y puede tener que esperar a su vuelta. No hay aplazamiento indefinido. Pero se puede presentar la posibilidad de que uno de los procesos sea interrumpido luego de salir de su sección critica. 34 Algoritmo de Peterson p1deseaentrar = TRUE; proceso_activo = DOS while p2deseaentrar and proceso_activo = DOS do espera; otras_tareas_uno; ; procedure proceso_dos p2deseaentrar = TRUE; proceso_activo = UNO while p2deseaentrar and proceso_activo = UNO do espera; ; ; ; proceso_activo = UNO; par par;. SOLUCIONES DE HARDWARE Prof. Javier Echaiz 6
7 Inhabilitación de interrupciones Un proceso corre hasta que invoca un servicio del SO o hasta que es interrumpido. Deshabilitar interrupciones garantiza la exclusión mutua. Pero el µp es limitado en su habilidad para intercalar programas Multiproceso inhabilitar interrupciones puede no garantizar la exclusión mutua Instrucciones especiales de máquina Ejecutó en un ciclo de instrucción sencillo No sujeto a la interferencia de otras instrucciones Leyo y escribio Leyo y probando Instrucción comparar y fijar (test y set) Instrucción intercambiar Instrucciones test y set boolean testset (int i) { if (i == 0) { i = 1; return true; else { return false; Instrucción intercambiar void exchange(int register, int memory) { int temp; temp = memory; memory = register; register = temp; Ventajas de soluciones con hardware Pertinente a muchos procesos en un procesador sencillo o procesadores múltiples dividio la memorial principal Es simple y por lo tanto fácil de verificar Puede estar acostumbrado a soportar secciones críticas múltiples Ventajas de soluciones con hardware Que espera ocupado consuma tiempo de unidad central de proceso El hambre es posible cuando un proceso deja una sección crítica y más de un proceso están esperando. Estancamiento Si un bajo proceso de prioridad tiene la región crítica y unas necesidades de proceso de prioridad más altas, el proceso de prioridad más alto obtrá el procesador para esperar a la región crítica Prof. Javier Echaiz 7
8 SEMAFOROS Semáforos La variable especial llamado un semáforo es usado para comunicar Si un proceso está esperando para una señal, es suspido hasta esa señal se envía Espera y operaciones de señales no pueden ser interrumpidas Forme fila están acostumbrado a tener los procesos esperando en el semáforo Semáforos El semáforo es una variable que tiene un valor de entero, número entero El mayo se inicializa a un número no negativo La operación de espera decrementa el valor de semáforo Los incrementos de operación de señales comunican por señales valor Problema del Productor - Consumidor Unos o más productores están generando datos y ponio estos en un parachoques un consumidor sencillo está tomando artículos fuera del parachoques un a ratos Sólo un productor o consumidor puede acceder el parachoques a cualquier un tiempo Productor producer: while (true) { /* produce item v */ b[in] = v; in++; Consumidor consumer: while (true) { while (in <= out) /*do nothing */; w = b[out]; out++; /* consume item w */ Prof. Javier Echaiz 8
9 El productor con Buffer Circular producer: while (true) { /* produce item v */ while ((in + 1) % n == out) /* do nothing */; b[in] = v; in = (in + 1) % n El consumidor con Circular Buffer consumer: while (true) { while (in == out) /* do nothing */; w = b[out]; out = (out + 1) % n; /* consume item w */ Buffer Circular Finito Parachoques infinito Problema de barbería MONITORES Prof. Javier Echaiz 9
10 Monitores El monitor es un módulo de software Características principales Las variables de datos locales son accesibles sólo por el monitor Procese entre monitor invocando unos de sus procedimientos Sólo un procese pueda estar ejecutando en el monitor a la vez Estructura de un monitor 55 Paso de mensajes PASO DE MENSAJES Imponga exclusión mutua Información de cambio envie ( destino, envie mensajes) reciba ( fuente, envie mensajes) Remitente y receptor no pueden o no pueden estar bloqueando ( esperando para mensaje) El entramado envia, bloqueando reciba Ambos remitente y receptor es bloqueado hasta el mensaje se da Llame una cita El Nonblocking envia, bloqueando reciba El remitente continúa el proceso tales como mensajes de transmisión tan pronto como sea posible El receptor es bloqueado hasta el mensaje pedido llegue El Nonblocking envia, nonblocking reciba Ni la fiesta se requiere para esperar Prof. Javier Echaiz 10
11 Direccionamiento directo Direccionamiento envie primitivo incluya un identificador específico del proceso de destino reciba el primitivo pudo saber adelantado que procese un mensaje es esperado reciba el primitivo pudo usar parámetro de fuente para retornar un valor cuando la operación de receive ha sido ejecutado Direccionamiento indirecto Direccionamiento los mensajes son enviados a una estructura de datos dividida consistio de las colas las colas son llamados los buzones un proceso envia a un mensaje para el buzón y el otro proceso romper y remover el mensaje del buzón Comunicación de procesos indirectos Formato de mensaje 64 Problema de los lectores y escritores Muchos lectores pueden leer simultáneamente el archivo Sólo un escritor a la vez puede escribir al archivo Si un escritor está escribio al archivo, ningún lector puede leerlo 65 Prof. Javier Echaiz 11
Concurrencia, exclusión mutua y sincronización. Capítulo 5 HungriaBerbesi
Concurrencia, exclusión mutua y sincronización Capítulo 5 HungriaBerbesi 1 Concurrencia Múltiples aplicaciones Aplicaciones estructuradas Estructura del sistema operativo 2 Concurrencia 3 Sección Crítica:
Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia
Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia
Concurrencia: Exclusión mutua y Sincronización
Concurrencia: Exclusión mutua y Sincronización Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer Concurrencia Múltiples aplicaciones Aplicaciones estructuradas
SISTEMAS OPERATIVOS:
SISTEMAS OPERATIVOS: Lección 6: Procesos concurrentes y problemas en la comunicación y la sincronización Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Sistemas Computacionales Sistemas Operativos Docente: M.G.A.
Unidad 2: Gestión de Procesos
Unidad 2: Gestión de Procesos Tema 6, Concurrencia: Exclusión mutua y sincronización. 6.1 Principios generales de concurrencia. 6.2 EM: Soluciones software (Algoritmos de Dekker y Peterson). 6.3 EM: Soluciones
Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas
Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Introducción y Conceptos Básicos Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas, Facultad de Ingeniería
Sistemas Operativos. Características de la Multiprogramación. Interacción entre Procesos. Características de la Multiprogramación
Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC3731 Arquitectura del Computador II Prof. Osberth De Castro Prof. Juan C. Regidor Sistemas Operativos Concurrencia y Sincronización de
Programación Concurrente y Paralela. Unidad 1 Introducción
Programación Concurrente y Paralela Unidad 1 Introducción Contenido 1.1 Concepto de Concurrencia 1.2 Exclusión Mutua y Sincronización 1.3 Corrección en Sistemas Concurrentes 1.4 Consideraciones sobre el
Acceso coordinado a recursos compartidos
Programación Concurrente en Linux Acceso coordinado a recursos compartidos Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1 Contenido 1. Recursos compartidos 2. Mecanismos
Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria
Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de
Teoría de Sistemas Operativos Sincronización Procesos
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica º Semestre, 00 Gabriel Astudillo Muñoz http://www.elo.utfsm.cl/~elo1 Dos o más procesos leen o escriben ciertas zonas compartidas
Unidad 1: Gestión de Procesos
Unidad 1: Gestión de Procesos Tema 1, Concurrencia: Exclusión mutua y sincronización. 1.1 Problema de la sección crítica, alternativas al uso de semáforos: - Regiones críticas, Monitores, Variables de
Introducción a los Sistemas Operativos S.O.
Introducción a los Sistemas Operativos S.O. Contenido 1. Conceptos 2. Evolución de los Sistemas Operativos 3. Administración del Entorno de Hardware 1. CONCEPTOS 1.1. Definición de Sistema Operativo Es
7. Programación Concurrente
7. Programación Concurrente 1. Qué es la programación concurrente? Se conoce por programación concurrente a la rama de la informática que trata de las técnicas de programación que se usan para expresar
Programación concurrente
23 de Marzo de 2017 Condiciones generales Docente: Hernán Melgrati (hmelgra@...) Horario: Teóricas: Jueves de 14 a 17 Prácticas: Martes de 14 a 17 Evaluaciones: Un parcial (mediados de mayo) Un trabajo
Estructura de los sistemas de cómputo
Estructura de los sistemas de cómputo Introducción Elementos básicos de un computador Registro del procesador Ejecución de las instrucciones Interrupciones Hardware de protección Introducción Qué es un
Concurrencia. Primitivas IPC con bloqueo
Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región
Tipos de Diseño. Ing. Elizabeth Guerrero V.
Tipos de Diseño Ing. Elizabeth Guerrero V. Tipos de Diseño Tipos de diseño de Procesos: Centralizado, Distribuido y Cooperativo Procesos Centralizados Un sistema centralizado está formado por un computador
Sistemas Operativos. Procesos
Sistemas Operativos Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor de proceso
Sistemas operativos. Tema 6: Interbloqueo ( (deadlock)
Sistemas operativos Tema 6: Interbloqueo ( (deadlock) Concurrencia de procesos Conceptos de concurrencia y exclusión mutua. Herramientas de sincronización. n. Comunicación n entre procesos. Interbloqueo.
Tema 1: Programación Multiproceso. Curso
Tema 1: Programación Multiproceso. Curso 2012-2013 1 Patricia Hurtado Sayas Índice de contenidos: 1. Elementos funcionales de un SI. Repaso. 2. Concepto de Proceso o Tarea. 1. PCB, Bloque de Control de
Concurrencia Condiciones de Carrera. Guillermo Román Díez
Concurrencia Condiciones de Carrera Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Condiciones de Carrera 1/20 Condiciones de carrera Condición
UNIDAD 3 MEMORIA COMÚN. El problema de exclusión mutua
UNIDAD 3 MEMORIA COMÚN El problema de exclusión mutua Exclusión mutua Exclusión mutua significa asegurar que un recurso compartido (variable, estructura de datos, etc.) sea accedida por un solo hilo a
Taller de Programación Paralela
Taller de Programación Paralela Departamento de Ingeniería Informática Universidad de Santiago de Chile April 26, 2007 Concurrencia 2 Concurrencia y sincronización.............................................................
Uso de recursos compartidos
Uso de recursos compartidos Cada proceso o hebra se ejecuta de forma independiente. Sin embargo, cuando varias hebras (o procesos) han de acceder a un mismo recurso, se ha de coordinar el acceso a ese
PARADIGMA y LENGUAJES DE PROGRAMACIÓN
CATEDRA CARRERA: PARADIGMA y LENGUAJES DE PROGRAMACIÓN LICENCIATURA EN SISTEMAS DE INFORMACION FACULTAD DE CIENCIAS EXACTAS QUIMICAS Y NATURALES UNIVERSIDAD NACIONAL DE MISIONES Año 2017 2do Cuatrimestre
Grafo acíclico orientado cuyos nodos corresponden a sentencias individuales.
GRAFOS DE PRECEDENCIA Grafo acíclico orientado cuyos nodos corresponden a sentencias individuales. Un arco de un nodo Si al nodo Sj significa que la sentencia Sj puede ejecutarse sólo cuando ha acabado
Sistemas Operativos. Paso de Mensajes. Direccionamiento de Mensajes. Sincronización de mensajes. Mensajes permiten: Paso de Mensajes
Paso de Mensajes Sistemas Operativos Paso de Mensajes Mario Medina (mariomedina@udec.cl) Mensajes permiten: Sincronización de procesos Comunicación entre procesos Aptos para: Beware of bugs in the above
Introducción a los Sistemas Operativos
Introducción a los Sistemas Operativos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es 1 Índice General Conceptos sobre ordenadores Concepto
Concurrencia entre Procesos.
Concurrencia entre Procesos. Sistemas Operativos Tema 3. 1 Procesamiento concurrente. Procesamiento concurrente: base de los sistemas operativos modernos (multiprogramados): Un conjunto de procesos que
Tema 12: El sistema operativo y los procesos
Tema 12: El sistema operativo y los procesos Solicitado: Tarea 06 Arquitecturas de una computadora y el funcionamiento del software M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx
Concurrencia. Programación Concurrente. Espera ocupada. Primitivas IPC con bloqueo
Concurrencia Programación Concurrente Espera ocupada. Primitivas IPC con bloqueo Programación concurrente Los lenguajes concurrentes tienen elementos para: Crear procesos Sincronizar procesos Comunicar
SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009
SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 4. (2 p) Dos procesos A y B se ejecutan concurrentemente en un determinado sistema. El proceso A ejecuta unas tareas ( Tareas
Sistemas Operativos Tema 2: Estructura del computador José Miguel Santos Alexis Quesada Francisco Santana
Sistemas Operativos Tema 2: Estructura del computador 1998-2008 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenidos Estructura de la E/S Sistema de Interrupciones DMA Jerarquía de memorias
Tema 3. Paso de mensajes. mensajes. Bibliografía. Sistemas de paso de mensajes (2) Sistemas de paso de mensajes. Ventajas del paso de.
Tema 3. Paso de mensajes Bibliografía Programación Concurrente J. Palma, C. Garrido, F. Sánchez, A. Quesada, 2003 Capítulo 7 Principles of Concurrent and Distributed Programming M. Ben-Ari. Prentice Hall,
*** SOLUCIONES *** SISTEMAS OPERATIVOS Examen Parcial 24 de Abril de 2010
Calificación SISTEMAS OPERATIVOS Examen Parcial 24 de Abril de 2010 1 2 3 4 Nombre *** SOLUCIONES *** Titulación Dispone de tres horas para realizar el examen 1 (5 puntos) Test. En cada uno de los siguientes
Concurrencia y paralelismo
Introducción a los Sistemas Operativos Concurrencia y paralelismo 1. Ejecución de programas. Procesos. 2. Multiprogramación Bibliografía Silberschatz and Galvin Sistemas Operativos. Conceptos fundamentales.
Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos
Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria
Mensajes. Interbloqueo
CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose
Cuestionario 1-Parte 1
Cuestionario 1-Parte 1 Sistemas Operativos José Antonio Méndez Barrios 201118720 1. Qué es un Sistema Operativo? Programa que controla la ejecución de los programas de aplicación y que actúa como interfaz
Concurrencia, exclusión mutua y sincronización.
Resumen de sistemas operativos. Segundo Corte. Secciones 703M- 704M y 705M Msc Hungria Berbesi Concurrencia, exclusión mutua y sincronización. Multiporgramación: consiste en la gestión de varios procesos
CAPITULO 6. Control de Concurrencia y Recuperación
CAPITULO 6 Control de Concurrencia y Recuperación 6.1 Protocolos de Bloqueo Un protocolo de bloqueo nace de la necesidad creada cuando una transacción solicita un bloqueo de un modo particular sobre un
Guillermo Román Díez
Concurrencia Creación de Procesos en Java Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Creación de Procesos en Java 1/18 Concurrencia
Tema 6. Gestión de Interbloqueo
Tema 6. Gestión de Interbloqueo Introducción (I) Protocolo de acceso a recursos compartidos: Solicitud. Utilización. Liberación. El sistema operativo suspende a los procesos cuyas solicitudes no pueden
Preguntas de autoevaluación tema 1
0.21. Qué es un canal o procesador de E/S? Es un procesador auxiliar que se encarga de realizar todas las operaciones de E/S con un determinado conjunto de dispositivos de E/S. 0.22. Describir el proceso
Concurrencia. Programación Concurrente Procesos Comunicación entre Procesos (IPC) con espera ocupada.
Concurrencia Programación Concurrente Procesos Comunicación entre Procesos (IPC) con espera ocupada. Introducción a Procesos Todas las computadoras moderas realizan varias cosas al mismo tiempo. En cada
ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda
Tipos de Dispositivos ENTRADA-SALIDA 1. Dispositivos de Bloque: Almacena información en bloques de tamaño fijo (512b hasta 32Kb) Se puede leer o escribir un bloque en forma independiente 2. Dispositivos
Tarea 2. Descripción y Control de Procesos
1 Tarea 2. 1. En qué consiste una traza de instrucciones? Consiste en listar las secuencias de instrucciones que ejecuta cada proceso. El procesador puede caracterizarse mostrando la forma en que intercalan
Interbloqueo. Concurrencia: Interbloqueo e Inanición
Interbloqueo Concurrencia: Interbloqueo e Inanición Capítulo 6 Bloqueo permanente de un conjunto de procesos que compiten por recursos del sistema o por comunicación con los otros No existe una solución
INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos
INDICE Prólogo XV 1. Introducción 1 1.1. Evolución de los sistemas operativos 2 Procesamiento en serie 3 Procesamiento por lotes 4 Multiprogramación 7 1.2. Tipos de Sistemas Operativos 9 Sistemas operativos
Primitivas de Sincronización (continuación) MONITORES: Primitiva de alto nivel, es a nivel de lenguajes como: ADA, PASCAL, JAVA.
Primitivas de Sincronización (continuación) MONITORES: Primitiva de alto nivel, es a nivel de lenguajes como: ADA, PASCAL, JAVA. Carácterísticas: Construcción de alto nivel. Estructura de datos estática:
Comunicación y sincronización
Comunicación y sincronización Son conceptos relacionados con la interacción entre los procesos La comunicación se refiere al paso de información de un proceso a otro La sincronización corresponde al cumplimiento
Concurrencia Monitores. Guillermo Román Díez
Concurrencia Monitores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de
Capítulo 3: Procesos. n Concepto de Proceso. n Despacho (calendarización) de Procesos. n Operaciones en Procesos. n Procesos en cooperación
3.- Procesos Capítulo 3: Procesos Concepto de Proceso Despacho (calendarización) de Procesos Operaciones en Procesos Procesos en cooperación Compunicación Interprocesos Communicación en sistemas Cliente-Servidor
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema
SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009
SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 4. (2 p) Dos procesos A y B se ejecutan concurrentemente en un determinado sistema. El proceso A ejecuta unas tareas ( Tareas
Organización del Sistema Operativo
del Sistema Operativo Sistemas Operativos Pontificia Universidad Javeriana Febrero de 2010 del Sistema Operativo Funciones Básicas Funciones Básicas Perspectivas del Computador Responsabilidades del SO
Hilos Secciones Stallings:
Capítulo 4 Hilos Secciones Stallings: 4.1 4.3 Contenido Procesos e hilos. Hilos a nivel de núcleo y a nivel de usuario. Multiprocesador simétrico (SMP). Micronúcleos. 1 Proceso Unidad de propiedad de los
Sistemas Operativos- Evolución Histórica
Esquema Primeros Computadores Accesos por operador Secuencia automática de trabajos Mejora del rendimiento Multiprogramación Proceso distribuído Multiproceso Primeros Computadores Lenguaje Máquina Monoprogramación
Estados de un proceso
Semáforos Estados de un proceso Inactivo Listo Ejecutando Completo Escribimos p.state := ready p. state := running Bloqueado Para indicar que un proceso cambia de estado Semáforo Es un tipo de dato abstracto
SOLUCIONES. Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática
Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Examen Parcial, 7 de mayo de 2005 Nombre SOLUCIONES Dispone de tres horas para
Sistemas Operativos (Parte 2)
Sistemas Operativos (Parte 2) M. en C. Mario Farias-Elinos e-mail: elinos@ci.ulsa.mx web: http://www.ci.ulsa.mx/~elinos Maestría en Tecnologías de Información Contenido Proceso Scheduller Thread Sincronización
Procesos cooperativos:
Procesos cooperativos: Procesos concurrentes: Los procesos pueden tener distintas relaciones de comunicación entre sí: Independientes: No puede afectar, ni ser afectado por los demás procesos que se ejecutan
Manipulación de procesos
Manipulación de procesos Las primeras computadoras solo podían manipular un programa a la vez. El programa tenía control absoluto sobre todo el sistema. Con el desarrollo vertiginoso del hardware ese panorama
PROGRAMACIÓN CONCURRENTE
PROGRAMACIÓN CONCURRENTE Lenguajes de Programación - Progr. Concurrente 1 Introducción El concepto fundamental de la programación concurrente es la noción de Proceso. Proceso: Cálculo secuencial con su
Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero
Introducción a los sistemas operativos Ing Esp Pedro Alberto Arias Quintero Unidad 1: Conceptos generales de Sistemas Operativos. Tema 1: Introducción: 1.1 Introducción: Qué es un sistema operativo?. 1.2
Universidad Autónoma de Baja California Facultad de Ciencias Administrativas Unidad Mexicali
SISTEMAS OPERATIVOS I Clave: 4595 HC: 3 HL: 2 HT: HPC: HCL: HE: CR: 8 Etapa de formación a la que pertenece: Básica Carácter de la Asignatura: Obligatoria PROPÓSITO GENERAL DEL CURSO Proporcionar al estudiante
Unidad 1: Conceptos generales de Sistemas Operativos.
Unidad 1: Conceptos generales de Sistemas Operativos. Tema 2: Estructura de los stmas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejec. de instrucciones e interrupciones y estructura
Lección 6: Ejemplos de programación con semáforos
Lección 6: Ejemplos de programación con semáforos El problema de la cena de los filósofos El problema de los lectores y escritores Ejercicios Gestión de concurrencia mediante paso de testigo (implementación
TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS
TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS 1. Definición, funciones y objetivos de un SO. 1.1. Sistema Informático 1.2. Definiciones de Sistema Operativo 1.3. Objetivos y/o funciones de un SO 1.4.
Funcionamiento de la computadora
Funcionamiento de la computadora La computadora es una maquina destinada a procesar datos. Este procesamiento involucra dos flujos de información: el de datos y el de instrucciones. Se parte del flujo
Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav
Sistemas Operativos Dr. Luis Gerardo de la Fraga E-mail: fraga@cs.cinvestav.mx http://cs.cinvestav.mx/~fraga Departamento de Computación Cinvestav 12 de junio de 2015 Dr. Luis Gerardo de la Fraga Cinvestav,
Ingeniería en Computación
Universidad Autónoma del Estado de México Centro Universitario UAEM Valle de México Ingeniería en Computación Unidad de Aprendizaje: Programación Paralela y Distribuida Tema: Introducción a los Sistemas
Sistemas Operativos. Dr. Wenceslao Palma M.
Sistemas Operativos Dr. Wenceslao Palma M. www.inf.ucv.cl/~wpalma/so Introducción a los Sistemas Computacionales Un vistazo de alto nivel caracteriza a un sistema computacional
Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de
Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de múltiples tareas interactivas. Estas tareas pueden ser un
SEMAFOROS. if hay procesos suspendidos en este semáforo then despertar a uno de ellos else S = S + 1
1 de 21 22/12/2007 21:48 SEMAFOROS 1. DEFINICIONES 1.1. Semáforo general 1.2. Semáforo binario 1.3. Semáforo con cola de procesos bloqueados 1.4. Semáforo con espera activa (busy-wait) 1.5. Consecuencias
Velocidades Típicas de transferencia en Dispositivos I/O
Entradas Salidas Velocidades Típicas de transferencia en Dispositivos I/O Entradas/Salidas: Problemas Amplia variedad de periféricos Entrega de diferentes cantidades de datos Diferentes velocidades Variedad
Sobre la programación concurrente
Sobre la programación concurrente Lecturas recomendadas: G. Andrews, introducción parte 1 Ben-Ari, secciones 2.1 y 2.3 A. Burns, A. Wellings, capítulo 2 (hasta 2.4) Andrews & Schneider, todo el artículo
Historia Logros. Sistemas Operativos. Introducción a los Sistemas Operativos. Esteban De La Fuente Rubio L A TEX
Introducción a los esteban@delaf.cl L A TEX Universidad Andrés Bello 19 ago 2010 Tabla de contenidos Qué es? 1 Qué es? Definición Desde el punto de vista del usuario Visto desde la administración de recursos
Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo
Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Hilo (theread) llamado también proceso ligero o subproceso, es la unidad de ejecución de un proceso y esta asociado con una secuencia
SISTEMAS OPERATIVOS Arquitectura de computadores
SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios
Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o
Unidad 4 - Procesamiento paralelo. D o c e n t e : E r n e s t o L e a l E q u i p o : J e s s i c a F i e r r o L u i s N a v e j a s Arquitectura de computadoras Introducción Cuestionario Conclusiones
1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:
Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Convocatoria de Junio, 26 de Junio de 2003 SOLUCIONES Calificación 1 2 3 4 Nombre
Problemas que resuelve un S.O. (2)
Sistemas Operativos y Distribuidos D.C.I.C. U.N.S. http://cs.uns.edu.ar/~jechaiz je@cs.uns.edu.ar Los Sistemas Operativos son programas para la administración eficiente de los recursos de la computadora.
Evolución del software y su situación actual
Evolución del software y su situación actual El software es el conjunto de programas que permite emplear la PC, es decir, es el medio de comunicación con la computadora, el control de sus funciones y su
Resumen Tema 5: Proceso de transacciones
Resumen Tema 5: Proceso de transacciones Transacción Unidad lógica de procesamiento secuencial compuesta por una o mas acciones que se ejecutan en bloque sobre una BD. Sentencias: Begin/end transaction.
ESCUELA DE INGENIERIA Informática Y Sistemas
ESCUELA DE INGENIERIA Informática Y Sistemas ASIGNATURA SISTEMAS OPERATIVOS CODIGO ST0257 SEMESTRE 2013-2 INTENSIDAD HORARIA 64 horas semestral CARACTERÍSTICAS Suficientable CRÉDITOS 4 1. JUSTIFICACIÓN
Concurrencia. Primitivas IPC con bloqueo
Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región
Ejercicios sobre tuberías
Boletín 3. Ejercicios sobre tuberías July 14, 016 1. Indica de manera justificada si las siguientes afirmaciones sobre la utilización de tuberías como mecanismo de sincronización entre dos procesos son
TEMA 2: PROCESOS E HILOS: CONCURRENCIA, SINCRONIZACIÓN Y COMUNICACIÓN
TEMA 2: PROCESOS E HILOS: CONCURRENCIA, SINCRONIZACIÓN Y COMUNICACIÓN 1. Introducción Definición de proceso (tarea según los fabricantes): Programa en ejecución. Cálculo computacional que puede hacerse
Pontificia Universidad Católica del Ecuador
1. DATOS INFORMATIVOS: FACULTAD DE INGENIERÍA ESCUELA DE SISTEMAS MATERIA O MÓDULO: SISTEMAS OPERATIVOS CÓDIGO: IS603.a CARRERA: INGENIERÍA DE SISTEMAS NIVEL: TERCERO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4
APUNTES SOBRE PROCESOS Y DEADLOCK CONCEPTO DE PROCESO 1
APUNTES SOBRE PROCESOS Y DEADLOCK Alejandro Bia PROCESO CONCEPTO DE PROCESO 1 - En 1960 (proyecto "Multics") surge concepto de proceso. Definiciones breves: - Programa en ejecución. - Entidad lógica a
TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA
TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA Ingeniería en Informática Beneficios de la programación Especificación de ejecución Características de los sistemas s Verificación de programas s 2 Bibliografía Programción
Implementación de monitores POSIX
Implementación de monitores POSIX Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Programación concurrente: Problemática Presencia de condiciones de
Pontificia Universidad Católica del Ecuador
1. DATOS INFORMATIVOS: MATERIA O MÓDULO: CÓDIGO: CARRERA: NIVEL: Sistemas Operativos IS603.a Sistemas Tercero No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4 CRÉDITOS PRÁCTICA: 0 SEMESTRE / AÑO ACADÉMICO: Segundo Semestre
Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro
Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro Es una instancia de un programa en ejecución (corriendo). A los procesos frecuentemente se les refiere como tareas. El contexto
dit UPM Tema 3: Concurrencia /threads (python) Análisis y diseño de software José A. Mañas
Análisis y diseño de software dit UPM Tema 3: Concurrencia /threads (python) José A. Mañas 11.2.2017 referencias Concurrent execution https://docs.python.org/3/library/concurrency.html concurrencia 2 índice
Clases 02 & 03: Revisión de conceptos
Clases 02 & 03: Revisión de conceptos Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido
Sistemas Operativos. Estructura de los sistemas operativos
Sistemas Operativos Estructura de los sistemas operativos Agenda Componentes de un sistema operativo. Servicios del sistema operativo (system services). Llamados a sistema (system calls). Estructura del