1 / 14

Monitors : An Operating System Structuring Concept Sir C. A. R. Hoare, 1974

Monitors : An Operating System Structuring Concept Sir C. A. R. Hoare, 1974. Ing. Maximiliano Bertacchini ITBA – Doctorado en Ingeniería Buenos Aires, Julio de 2004. ÍNDICE. Introducción Reseña histórica Concepto Clasificación Implementación Aplicación Ventajas / Desventajas

kipp
Download Presentation

Monitors : An Operating System Structuring Concept Sir C. A. R. Hoare, 1974

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Monitors: An Operating System Structuring ConceptSir C. A. R. Hoare, 1974 Ing. Maximiliano Bertacchini ITBA – Doctorado en Ingeniería Buenos Aires, Julio de 2004

  2. ÍNDICE • Introducción • Reseña histórica • Concepto • Clasificación • Implementación • Aplicación • Ventajas / Desventajas • Conclusiones

  3. PROBLEMA • Sincronización y comunicación entre procesos concurrentes • Sección crítica – exclusión mutua • Asignación de recursos de hardware y de software. HISTORIA [Brinch Hansen] • 1960's: la parte residente de un SO se conocía como “monitor” (ej. kernel del SO RC-4000) – escrito en lenguaje máquina • 1965: concepto de región crítica – semáforo [Dijkstra] • 1971: paradigma de “secretarias y directores” [Dijkstra] • 1971: idea de monitor [Hoare, Dijkstra, Brinch Hansen] • 1972: clases (lenguaje Simula-67) [Dahl, Hoare] • 1973-1974: concepto de monitor – notación [Hoare, Brinch Hansen] • 1975-1976: Concurrent-Pascal, el primer lenguaje de programación en incluir monitores [Brinch Hansen]

  4. MONITOR: Concepto [Hoare, 1974] • Módulo de software • Tipo Abstracto de Dato (TAD) • Mecanismo de alto nivel (impuesto por el compilador). • Exclusión mutua (impuesta por la estructura del monitor): sólo un proceso puede acceder al monitor en cada momento, cualquier otro que lo invoque debe esperar. Estructura • Datos (privados) • recurso compartido • colas (“condition variable” = assertion) • variables internas • Procedimientos (públicos) • entry() • signal() • wait() • Secuencia de inicio

  5. Sincronización entre procesos (en su interior): • wait() • signal() • Condition variables Planificación de ejecución interna • se realiza cuando el monitor es liberado (signal(), wait() o return() ) • el siguiente proceso se selecciona de alguna de las colas: • Entry • Waiting • Signaller o Urgent

  6. Estructura de un Monitor Area de espera Entry Condicion c1 wait(c1) Datos locales Condition variables Procedimiento 1 Condicion cn wait(cn) Procedimiento k Urgent Queue Código de inicio signal() Exit

  7. Esquema del código de un Monitor Monitor-name: monitor; begin <declaración de variables> <cond-var>: condition; procedure <proc-name>; begin; ... <cond-var>.<signal o wait> ... ... If <cond-var>.queue then ... end; ... begin <init-code> end;

  8. Algunos tipos de monitores • Planificación FIFO [Hoare 1974] • Priority wait[Hoare 1974] • Monitores con notify() y broadcast() [Lampson Redell 1980] • Immediate-return (aplicación limitada) • Extended immediate-return (signal() seguido por wait() o return()) • Automatic-signal (general vs restricted): wait(<expr_condic>) Clasificación [Buhr Fortier 1995] • De acuerdo a la prioridad de las colas (Entry, Waiting, Signalled): Priority vs No-Priority • signal(): Bloqueantes vs No-Bloqueantes

  9. Monitores: Clasificación [Buhr Fortier 1995] Ep: Prioridad de la cola de Entrada (Entry) Wp: Prioridad de la cola de Espera (Waiting) Sp: Prioridad de la cola de Señalización (Signaller)

  10. Monitores: Implementación • Lenguajes: • Concurrent-Pascal (el primero [Hansen]), Mesa, Modula, Modula-3, Turing, uC++,Concurrent-C, Java • Sistemas operativos y drivers: • generalmente implementados a más bajo nivel (semáforos) • Equivalencia entre monitor y semáforo [Hoare, 1974] • Equivalencia entre monitores [Buhr, Fortier, 1995]

  11. Monitores: Aplicación • Bounded Buffer (Hoare) • alarmclock (Hoare) • buffer allocation (Hoare) • disk-head scheduler (Hoare) • readers and writers (Hoare)

  12. Monitores VENTAJAS • Exclusión mutua asegurada • Modularidad • Concurrencia modular • Abstracción, encapsulamiento • La sincronización de procesos se realiza en su interior, por lo que es más fácil de verificar. DESVENTAJAS • La sincronización depende del programador. • Riesgo de deadlock, thrashing, starvation

  13. Monitores Otros mecanismos de sincronización / comunicación: • semáforos • pasaje de mensajes • path expressions • remote procedure calls (RPC)

  14. CONCLUSIONES

More Related