Samtidighed. Disposition Formål med tråde Eksempel på fordel ved tråde Thread-pooling Livscyklus Problemstillinger Algoritmer ◦Dekkers ◦Peterson Opsumering.

Slides:



Advertisements
Lignende præsentationer
OS[2]: Processor, tråde og skedulering
Advertisements

Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal.
Lav et Turkort / Oversigtskort
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
V/ Heine M. Jensen –
Almindelige ("hårde") links (i filsystemer med i-noder) opg.txt jens: pia: ln /home/pia/opg.txt /home/jens/opg.txt hård link: ny post får i-node-nummer.
Distribueret programmering, specielt.NET Remoting Rasmus D. Lehrmann DM
// Semaphore.java package semaphore; public class Semaphore { int resources = 1; // Constructors Semaphore() {} Semaphore(int i) { resources = i; } synchronized.
e-Tinglysning WebService Arkitektur
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
Hvorfor trådning? Performance Responsivness. Succeskriterier Forbedring af performance –Opgaverne skal være uafhængige –Jo flere afhængige opgaver, jo.
VPG/Otto Knudsen1 VPR - Repetition Trådning Distribueret Programmering Sprogteori Grafer.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
Operativsystemer [3]: Synkronisering og baglåse Datalogi 1F: Forår 2003 Jørgen Sværke Hansen
11.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Processer Oversigt, principper og teknikker Kapitel 11.
1 JavaServer Faces Copyright © Lund & Bendsen A/S JSF Lifecycle.
Netværk og interprocess- kommunikation. Disposition Softwarelag Protokollag ◦UDP ◦TCP.
Anvendelser I Leg og spil.
Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.
18. Strategisk analyse af interne forhold
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
To måder at overføre objekt- referencer mellem processer (1) Via naming service - interface RMISolver (2) Som parametre til fjernprocedurekald - interface.
Program Design – 4 Introduktion til PHP. Dagens lektion Hvad er PHP?  - og lidt historie Hvordan virker PHP? Grundlæggende PHP  Variable  Typer  Løkker.
Fundamentale datastrukturer
Beskeder/beskedkøer Afsender- proces hej Modtager- proces.. msgsnd(..,"hej",..);.. msgrcv(..);.. Afsender skal bl.a. angive den besked der ønskes afsendt.
Simulering af spisende filosoffer
Grafalgoritmer II.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
Netværk og interprocess- kommunikation - Et eksamensoplæg!
Sikkerhed.
Validering af bruger-input i.NET WebForms Valideringsmuligheder i ASP.NET Fordele og ulemper Server-side vs. client-side Formatering vs. Validering.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Anvendelser I Leg og spil.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
 Processer og tråde  Implementation af tråde  Trådinterferens  Synkronisering  Atomare aktiviteter.
Operativsystemer, processor og tråde. Disposition Operativsystem Kerne funktionalitet Presser og adresserum Tråde.
Længste plateau En klassisk problemstilling (Gries, 1981) - og her i Java!!! Denne opgave drejer sig om at bestemme længden af det længste plateau i en.
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
Algoritmer og Datastrukturer 1 ”Rush Hour” Gerth Stølting Brodal.
Indsæt nyt billede: Format: B 254 x 190,5 mm Efter indsættelse, højreklik på billedet og placér det bagerst. Delete det gamle foto WMTS til mobile løsninger.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
8. Transaktioner og låsning/låse. Herunder ACID egenskaberne.
Søgning.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSøgning.2 Søgeproblemer... Søgning efter fil(er) Søgning i databaser.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Rekursive skildpadder Supertrekanter.....  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.2 Penta, etc.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7B.1 Søgning.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
DAIMIProgrammering af Store Systemer1 Concurrency i Java – Samarbejdende tråde.
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.1 Rekursive skildpadder Supertrekanter....
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering7B.1 Søgning.
Parallel programming Rasmus D. Lehrmann DM
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Forelæsning Uge 2 – Torsdag
Quiz – Uge 2 – torsdag – første time
Quiz – Uge 3 – mandag – første time
Interrupts. Indtil nu har hastigheden på dine blinkende LEDs været styret af et loop. Som du muligvis også har bemærket afhænger det meget af hvor travlt.
Algoritmer og Datastrukturer 1
Præsentationens transcript:

Samtidighed

Disposition Formål med tråde Eksempel på fordel ved tråde Thread-pooling Livscyklus Problemstillinger Algoritmer ◦Dekkers ◦Peterson Opsumering

Formål Håndtere flere forespørgsler parallelt ◦En server med mange klienter Udnytte ventetid ◦F.eks. ved IO (Netværk, Harddisk) Udnytte flere processorer

Eksempel 1 server, mange klienter ◦Uden tråde  Få request ◦Med tråde  Flere request ◦Med tråde og cache  Mange request

Thread-pooling Fast antal “worker threads” ◦Forespørgsler fordeles ud på worker-trådene ◦Når der er flere tråd-forspørgsler end worker threads bliver de sat I kø Begrænser overhead ved tråde ◦Minimerer det samlede overhead ◦Balance-gang

Livscykluser for tråde

Problemstillinger Inteferens Deadlock Livelock Starvation ◦Tråd får ikke resourcer den har brug for

Algoritmer til låsning Kritisk region Flag Turn/Last

Dekkers 1public void wantToEnterCS(int i) { 2desiresCS[i].value = true; 3while (desiresCS[other(i)].value) { 4if (turn != i) { 5desiresCS[i].value = false; 6while (turn != i) Thread.yield(); 7desiresCS[i].value = true; 8} 9} 10} 11public void finishedInCS(int i) { 12desiresCS[i].value = false; 13turn = other(i); 14}

Petersons 1public void wantToEnterCS(int i) { 2desiresCS[i].value = true; 3last = i; // records who last tried to enter 4while (desiresCS[other(i)].value && last == i) 5Thread.yield(); 6} 7public void finishedInCS(int i) { 8desiresCS[i].value = false; 9}

Opsumering Tråde for at forbedre performance ◦Ved ventetid ◦Ved flere processorer Komplicerer programmer ◦Inteferens ◦Låse og dertilhørende problemer