2002-12-20F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.

Slides:



Advertisements
Liknande presentationer
F. Drewes, Inst. f. datavetenskap1 Föreläsning 13: Resolution •Resolution i satslogiken •Resolution i predikatlogiken.
Advertisements

Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Relationsdatabasdesign
9. Gör ritningen innan Du bygger huset
”DU KAN ENDAST BLI BÄTTRE PÅ ATT SKRIVA GENOM ATT FAKTISKT SKRIVA” Doris Lessing – Nobelpristagare 2008.
Ruttplanering Vad är det??.
Klasser och objekt.
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
Föreläsning 7 Analys av algoritmer T(n) och ordo
Ta en bild Ta en bild Så här enkelt är det:: - Sitt ner framför monitorn. - Titta rakt in i kamerans lins. Ta en bild “ - Tryck “ Ta en bild “. -!!! SITT.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Arv.
Inkapsling.
Att programmera i språket Java
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kap 3 & 4: Processer & trådar.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Programmering B PHP Lektion 2
Programmering B PHP Lektion 5 och 6
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
PROCESSPROGRAMMERING
Programmering B PHP Lektion 3
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Lektion 3 Mahmud Al Hakim
Föreläsning 3 Programmeringsteknik och Matlab DD1312
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Att designa parallella program - manuell vs. automatisk parallellisering - Java och ”multi-core”
F. Drewes, Inst. f. datavetenskap1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning Singel mot multipelt.
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Transaktionshantering (kap 17+18)
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: -Producent – konsument problemet -Förmedling av fildeskriptorer.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 6: Process- synkronisering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Next previous Innehåll Del 1-trådar Del 2-URLer Del 1: Trådar Föreläsning 8.
1. Konnektionism – grunderna
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 1: Inledning administrativt o dyl kursens mål varför programspråksteori? språkkategorier användningsområden.
Mutationer – en förändring i arvsmassan
INTRODUKTION TILL PROGRAMMERING
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
William Sandqvist C-programmering ID120V Stack och Kö William Sandqvist
F. Drewes, Inst. f. datavetenskap1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax Flertydighet i kontextfri.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 7: Uttryck och sidoeffekter Uttryck Sidoeffekter Överladdning Tilldelningar i uttryck.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
Operativsystem - Processkommunikation
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 9 ( ) Innehåll: - IPC: Semaforer.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer.
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
Styrteknik 7.5 hp distans: PLC-delprogram, tasks TASKS:1
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( )‏ Innehåll:  Att designa parallella program - manuell vs. automatisk parallellisering.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: -Exekveringstrådar.
Föreläsningsanteckningar Kortfattat om programmeringsmetodik Ola Ågren Hur det går till att göra ett program.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 3: Abstrakta datatyper Algebror Abstrakta datatyper Inkapsling och informationsmaskering.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 16.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 13: Resolution Resolution i satslogiken Resolution i predikatlogiken.
Operativsystem - Baklås Mats Björkman
Grundläggande datavetenskap, 4p
Presentationens avskrift:

F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden

F. Drewes, Inst. f. datavetenskap2 Parallellitet Nivåer på vilka parallellitet kan förekomma är instruktionsnivå – maskininstruktioner exekveras parallellt satsnivå – enstaka programsatser exekveras parallellt underprogramnivå – underprogram exekveras parallellt programnivå – flera program exekveras parallellt Ofta är det nödvändigt eller önskvärt att programdelar exekveras parallellt (jämlöpande, eng. concurrently). Det kan handla om fysisk parallellitet – två eller fler processorer används logisk parallellitet – konceptuell parallellitet som fysiskt kan vara sekventiell ("interleaving")

F. Drewes, Inst. f. datavetenskap3 Varför parallella underprogram? De är "naturliga" Ofta avbildar program den parallella realiteten (t.ex. reaktiva system, simulationsprogram, osv.) De ger bättre möjligheter att utnyttja datorn Om datorn har flera processorer utnyttjas de på det viset som programmet tjänar mest på De behövs i många interaktiva system Om något komplext beräknas behöver inte användaren vänta utan kan jobba på eller eventuellt ingripa  Lämpliga koncept i språket behövs

F. Drewes, Inst. f. datavetenskap4 Processer och trådar Synkronisering behövs för att bearbeta gemensamma data synkronisering garanterar att sats S av tråd T exekveras före eller efter sats S´ av tråd T´ tävlande synkronisering (eng. competition synchronization) förekommer om en resurs (t.ex. skrivare) inte kan delas; turordningen är oviktig samarbetande synkronisering (eng. cooperation synchronizat- ion) förekommer vid gemensamma mål; turordningen är viktig Exekveringen av ett parallellt program består av flera kontrollflöden som kallas trådar (eng. threads). En process (eng. ofta "task"=uppgift) är en enhet som kan exekveras parallellt med andra och som kontrollerar en tråd.

F. Drewes, Inst. f. datavetenskap5 Semaforer Om en process P exekverar wait(s)…  och semaforens kapacitet är > 0 minskas den med 1  annars ställs P i semaforens väntekö Om en process P exekverar release(s)…  och väntekön är tom ökas dess kapacitet med 1  annars får första processen i väntekön fortsätta (och givetvis tas den bort från kön) En semafor (Dijkstra 1965) är en datastruktur med två atomära operationer wait och release. Ofta omger de kod som ska synkroniseras. En semafor har en kapacitet  0 och en väntekö (initialt tom) för blockerade processer

F. Drewes, Inst. f. datavetenskap6 Monitorer För att möjliggöra samarbetande synkronisering finns det en datatyp queue vars operationer delay och continue endast kan exekveras i en monitor. En monitor inkapslar datastrukturer och operationerna som ger access till dem. Endast en process i taget får tillträde till monitorn. Om delay(q) exekveras blockerar processen. Den ställs i kön q och andra processer får tillträde till monitoren. Om continue(q) exekveras släpper processen monitorn och första processen som väntar i q får fortsätta (om en sådan finns).

F. Drewes, Inst. f. datavetenskap7 Synkroniseringsmeddelanden accept xyz( ) betyder "vänta tills någon process P skickar meddelandet xyz och exekvera sedan, medan P är blockerad" icke deterministiskt urval sker med select-strukturen: select when => accept abc(…) … or when => accept xyz(…) … … end select I Ada kan processer skicka och ta emot synkroniserings- meddelanden. Om både sändaren och mottagaren är beredda sker ett rendezvous, annars väntar den ena.

F. Drewes, Inst. f. datavetenskap8 Jämförelse Semaforer är primitiva och flexibla, känsliga för fel problemet är att olika programdelar måste samarbeta på mycket låg nivå. Monitorer liknar ADT:er och har liknande fördelar men samarbetande synkronisering förblir komplicerad. Synkroniseringsmeddelanden är enklare och flexiblare än monitorer, men minst lika strukturerade. De passar dessutom bra till distribuerade system.

F. Drewes, Inst. f. datavetenskap9 God jul och Gott Nytt År!!! (och intressanta gruppövningar )