Paul Leger http://pleger.cl Procesos (capitulo 2) Paul Leger http://pleger.cl.

Slides:



Advertisements
Presentaciones similares
Dispositivos de entrada y de salida de una computadora
Advertisements

Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
Daniel Morillo Jorge Boscán Gregory Carrasco
Concurrencia: interbloqueo e inanición
Bloqueos Mortales Cecilia Hernández Bloqueos Mortales Definición Un proceso/hebra esta bloqueada cuando esta esperando por un evento que nunca ocurrirá.
Concurrencia: Exclusión Mútua y Sincronización
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Unidad III Administración de procesos
 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
Sincronización de Procesos
Tema 9.6: Sincronización de Procesos
Presentación Que es la informática Sistema Informático Dispositivos de entrada Que es un computador Dispositivos de salida SOFTWARE Y HARDWARE Dispositivos.
Sistema computacional Por Salvador Aguilar Gómez.
Resumen de Sistemas Operativos I Msc./Ing. Antonio Mena.
Hardware. Que es el hardware y sus componentes. 1. El hardware son todas las partes físicas y tangibles de una computadora. 2. Partes del hardware: 2.1.
MUTEX. QUE ES CONCURRENCIA - MUTEX  Son el mecanismo que nos ayuda en la sincronización para proteger una sección crítica en nuestro código.  Estas.
Paul Leger Modelo OSI Paul Leger
COMPUTACIÓN Y SOFTWARE DE APLICACIÓN
DEADLOCKS Arquitectura y Sistemas Operativos
Semáforos y Comunicación entre Procesos
Introducción a Sistemas Operativos
Proceso: Una instancia de un programa en ejecución
Paul Leger Repaso While y FOR Paul Leger
Paul Leger Sistemas de Archivos Paul Leger
Hardware de Computador
CMS: sistema de Gestión de Contenidos
Paul Leger Transacciones Paul Leger
Introducción a la Programación Multimedial
Introducción a Base de Datos
SISTEMAS OPERATIVOS Sección Crítica.
Introducción a Sistemas Operativos
SISTEMAS DE E/S Es la colección de interfaces que usan las distintas unidades funcionales de un sistema de procesamiento de información para comunicarse.
Todo archivo se guarda en el disco duro con extensión .py
Paul Leger Procesos (capitulo 2) Paul Leger
Unidad II: Clasificación del Hardware y del Software
Introducción a Base de Datos
Paul Leger SOCKETs Paul Leger
Lenguaje C en pocas palabras
Informática 1 Año. Trabajo Practico. Tema: Definiciones
Exclusión mutua de secciones
Paul Leger Procesos Paul Leger
Paul Leger SOCKETs Paul Leger
Ayudantía de EC: Sockets
Historia de las computadoras Dispositivos de entrada
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.
Lenguaje de Programación C en pocas palabras
LA RELACION ENTRE EL LENGUAJE Y EL PENSAMIENTO
Universidad Nacional de Canindeyú Facultad de Ciencias de la Salud
Sistemas Operativos Unidad I Introducción.
Metodología de la programación
Gestión de Base de Datos
Paul Leger Funciones Paul Leger
FUNDAMENTOS TECNOLÓGICOS DE INFORMACIÓN
Sistemas Operativos Semáforos II.
Hardware y software Luna Valentina Torres Olivares 4°A.
CURSO PROGRAMACIÓN BÁSICA SEMANA 3 ¿Qué es un programa?
Fundamentos de programación
PROGRAMACIÓN (2).
Concurrencia: exclusión mutua y sincronización Capítulo 5.
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
Estructura de los Sistemas Operativos Alumna:Arratea Almeyda Aracelli.
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
Arquitectura del Hardware
Gestión del sistema de entrada / salida
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
ESTRUCTURA DE SISTEMAS OPERATIVOS - ROY CANEPA JUAN FABIO
UNIDAD II Generalidades sobre Algoritmos
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
ESTRUCTURA DE UNA PC.
Transcripción de la presentación:

Paul Leger http://pleger.cl Procesos (capitulo 2) Paul Leger http://pleger.cl

Problemas de Lectores y Escritores Si tenemos una base de datos, varios pueden leer al mismo tiempo, pero solamente uno puede escribir al mismo tiempo. En otras palabras, si: Si hilos/procesos están leyendo al mismo tiempo, otros pueden seguir leyendo, pero nadie puede escribir Si hay un hilo que está escribiendo, no se puede leer ni escribir por otros hilos/procesos

Lectores y Escritores Lectores Escritor A Escritor B

Monitores Monitores sincronizan hilos como los semáforos, pero no usan “tickets” sino condiciones para “dormir”. Por ejemplo, Si un hilo no cumple cierta condición se duerme O si cierta condición se cumpla se despierta otros hilos

Lectores y Escritores Con Monitores Alguien leyendo o escribiendo? Escribiendo = True E Escritor S Escribiendo = False Nadie escribiendo? Lectores++ E Lectores S Lectores- - Lectores = 0?

Monitores en Lectores Escritores en Pseudocódigo Entrada y salida de lectores Entrada y salida de escritores def EnterWrite(): while (reader> 0 or writing): canwrite.wait() writing = True def EnterRead(): while (writing): canread.wait() readers++ 1 4 2 def ExitWrite(): writing = False canwrite.signal() if (not writing): canread.signal() def ExitRead(): readers-- if (readers == 0) canwrite.signal() 5 3 6 canread es un monitor usado para controlar los diferentes hilos que quieren leer canwrite es un monitor usado para controlar los diferentes hilos que quieren escribir

Algunas Problemas … si no usa correctamente estas soluciones Deadlock (abrazo mortal): Dos hilos/procesos quedan esperando entre ellos; cada uno espera que uno de ellos termine la tarea. Ejemplo: dos escritores que tienen la misma prioridad para escribir Starving (hambruna): Un proceso/hilo que nunca tiene posibilidad de entrar a una zona critica. Ejemplo: infinitos lectores y un escritor

Monitores en Python En Python, no existe exactamente la abstracción Monitor. Afortunadamente, se puede emular esta abstracción con otras abstracciones del lenguaje: condition = threading.Condition(threading.Lock()): Creación de una condición de monitor condition.adquire(): Adquiere un lock/acceso para entrar a una zona condition.release(): Libera un lock/acceso para entrar a una zona condition.wait(): Duerme un hilo

Ejemplo: Productores y Consumidores con Conditions

Ejercicio Propuesto: Implementar lectores y escritores con monitores en Python

Comunicación entre Procesos

Comunicación entre Procesos Un proceso se comunica con otro a través de usar archivos como memoria compartida o mensajes. Ejemplos: Cuando Word imprime un archivo, esta aplicación debe comunicarse con el servicio de imprimir Cuando en un chat, dos clientes reciben mensajes entre ellos Cuando un sistema operativo tiene que apagarse, cada aplicación recibe una señal (= mensaje) de cerrarse

Condiciones Criticas ¿Quién se encarga? En procesos también tenemos secciones criticas que deben ser cuidadas. Por ejemplo: Impresora Escritura de archivos Tarjeta de video Etc. ¿Quién se encarga?

Soluciones a Secciones Criticas Se puede ocupar soluciones como semáforos y monitores para administrar este acceso

Comunicaciones Entre Procesos: Una Introducción a socket