170 likes | 319 Vues
Innehåll. Odelbara operationer (Atomic actions) Bakåt fel-återhämtning (Backward Error Recovery, BER) Framåt fel-återhämtning (Forward Error Recovery, FER) Asynkrona aviseringar (notifications) POSIX-signaler Asynkron händelse-hantering (Event Handling) i RTJ
E N D
Innehåll • Odelbara operationer (Atomic actions) • Bakåt fel-återhämtning (Backward Error Recovery, BER) • Framåt fel-återhämtning (Forward Error Recovery, FER) • Asynkrona aviseringar (notifications) • POSIX-signaler • Asynkron händelse-hantering (Event Handling) i RTJ • Asynkron överföring av kontroll (Transfer of Control) i Java
Odelbara operationer — Motivering • Parallella processer möjliggör att parallellism i den verkliga världen återspeglas i programmen • Samverkan mellan 2 processer har uttryckts i termer av en enskild kommunikation; detta är inte alltid fallet, en följd av kommunikationer kan behövas
Odelbara operationer — Motivering • Det kan vara nödvändigt för mer än två processer att växelverka för att utföra den önskade händelsen • De inblandade processerna måste se ett konsistent system-tillstånd • Med parallella processer är det enkelt för grupper av processer att störa varandra • Det krävs att varje grupp av processer exekverar sin samverkande aktivitet som en odelbar operation
Odelbara operationer — Definition En operation är odelbar om processerna som utför den: • ej är medvetna om existensen av några andra aktiva processer, och inga andra aktiva processer är medvetna om processernas aktivitet under den tid processerna utför operationen • ej kommunicerar med andra processer under det att operationen utförs andy: Give example of lecture: no interference, no sneaking out, late arrivals allowed, Another example: airplane: all systems need to know altitude, important they all have the same altitute
Odelbara operationer — Definition En operation är odelbar om processerna som utför den: • ej kan detektera någon tillståndsändring förutom de som utförs av dem själva, och om de ej avslöjar sina tillståndsändringar förrän operationen är avslutad • kan betraktas, med avseende på andra processer, vara odelbar och omedelbar, så att effekterna på systemet sker som om de vore insprängda (interleaved) i motsats till samtidiga (concurrent) andy: Give example of lecture: no interference, no sneaking out, late arrivals allowed, Another example: airplane: all systems need to know altitude, important they all have the same altitute
Struktur Action Controller Role 1 Entry Protocol action component Exit Protocol leave Role 2 Entry Protocol action component Exit Protocol leave Role 3 Entry Protocol action component Exit Protocol leave
Struktur Role 3 Role 2 Role 1 Entry Protocol Entry Protocol Entry Protocol Exit Protocol Exit Protocol Exit Protocol leave leave leave Action Controller action component action component action component
Exception raised here Undantag och nästlade odelbara operationer Action A P1 Action B P1 P2 P3 P4 P5 P6 time
ATC i RTJ • Tillåter en tråd att interrupta en annan tråd • Integrerad i Javas undantags-hantering och interrupt-möjligheter • RTJ kräver att varje metod indikerar om den är förberedd för att tillåta ATC • Användning av ATC kräver • deklaration av en AsynchronouslyInterruptedException (AIE)
ATC i RTJ • identifiering av metoder vilka kan interruptas genom att använda en throw-sats • signalering av en AsynchronouslyInterruptedException till en tråd (t) • Anrop av interrupt()ger en allmän AIE • ATC skjuts upp under synkroniserade metoder och avslutande(finally)-satser
Sammanfattning • När processer växelverkar, är det nödvändigt att styra deras IPC så att återhämtnings-procedurer kan programmeras • Odelbara operationer(atomic actions) är en mekanism genom vilken program, som består av många aktiviteter, kan struktureras för att underlätta skadebegränsning och felåterhämtning
Sammanfattning • Operationer är odelbara (atomic) om de kan betraktas, med avseende på andra processer, vara odelbara och omedelbara, så att effekterna på systemet är som om de vore insprängda (interleaved) i motsats till samtidiga (concurrent) • En odelbar operation har väldefinierade gränser och kan nästlas
Sammanfattning • En konversation är en odelbar operation med möjligheter till bakåt fel-återhämtning (BER) • Vid inträde, sparas processens tillstånd; inuti, är en process endast tillåten att kommunicera med andra processer som är aktiva i konversationen samt med allmänna resurshanterare • För att lämna konversationen måste alla processer som är aktiva i konversationen ha klarat sina acceptans-test
Sammanfattning • Om någon process ej klarar sitt acceptans-test får alla processer sina tillstånd återställda och exekverar sina alternativa moduler • Konversationer kan vara nästlade, och om alla alternativ i en inre konversation misslyckas så måste återhämtning utföras på en yttre nivå
Sammanfattning • Framåt fel-återhämtning (FER) via undantags-hanterare kan också läggas till odelbara operationer • Om ett undantag framkallas av en process så måste alla aktiva processer i operationen hantera det • Två speciella frågeställningar vid detta tillvägagångssätt är hanteringen av samtidigt framkallade undantag respektive undantag i interna operationer
Sammanfattning • Real-Time Java tillhandahåller en asynkron överföring av kontroll(ATC)-mekanism baserad på avslutande(termination)-modellen • RTJ är integrerad i undantags- och tråd-interrupt-mekanismerna • Detta tillvägagångssätt för avslutande, i kombination med undantag , tillåter implementering av återhämtningsbara operationer
Sammanfattning • En asynkron aviserings-mekanism kan användas för att underlätta program-återhämtning • POSIX tillhandahåller signaler och mekanismer för upphävande av trådar • En signal kan hanteras, blockeras eller ignoreras; tyvärr är det inte lätt att programmera återhämtningsbara operationer med användande av en återupptagande(resumption)-modell för asynkrona händelser