Algorithms and Architectures II Jens Myrup Pedersen (JMP), Rasmus Løvenstein Olsen (RLO)

Størrelse: px
Starte visningen fra side:

Download "Algorithms and Architectures II Jens Myrup Pedersen (JMP), Rasmus Løvenstein Olsen (RLO)"

Transkript

1 Algorithms and Architectures II Jens Myrup Pedersen (JMP), Rasmus Løvenstein Olsen (RLO) Mm3: Algorithm examples: Advanced backtracking, min-max, algorithms for task scheduling - February 23, 2009

2 Algorithms and Architectures II 1. Processor and Storage Architecture (JMP) 2. Vehicular on-board networks and applications (RLO) 3. Algorithm examples: Advanced backtracking, min-max, task scheduling (RLO) 4. Complexity and complexity classes (RLO) 5. Complexity and complexity classes 2 + algorithms for task scheduling (RLO) 6. Advanced data structures 1 (JMP) 7. Advanced data structures 2 (JMP) 8. Graph algorithms 1 (JMP) 9. Graph algorithms 2 (JMP) 10. Guest Lecture by Rasmus H. Nielsen: Complex Problems in Network Planning

3 Dagens program Binære træer og min/max søgning Backtracking Spanning tree Task skedulering Opgaver

4 Binære træer Formindskede nøgletal Forøgede nøgletal Egenskaber ved binære træer: Lad x være et knudepunkt i et binært søge træ Hvis y er en knude i det venstre deltræ af x, så er key[y] key[x]. Hvis y er en knude i det højre deltræ af x, så er key[x] key[y]

5 Intern data repræsentation af binære træer A D B E C A B C D E Ved anvendelse af (dobbelt) linked lister kan man simpelt repræsentere binære træer Eksempelvis til søgning af data elementer

6 Operationer på binære træer; indsæt en knude Flyt knuden ned og sammenlign key x med key[y] indtil der ikke er flere undertræer tilbage Det indsatte element er derefter en underknude

7 Operations on binary trees Delete node

8 Brugs eksempel - Opdeling af areal i datastruktur 1. A er roden af træet og hele polygonet 2. A splittes ind i B og C 3. B splittes ind i D og E. 4. D splittes ind i F og G, der er konvekse og derfor bliver blade i træet

9 Forespørgsler i binære træer Lede efter en specifik knude (key[y]) ved brug af nøgle x Hvis key x = key[y] så stop; knuden er fundet Hvis key x < key[y] så søg i venstre undertræ Hvis key x > key[y] så søg i højre undertræ Hvis der ikke er flere undertræer tilbage, så er der intet resultat Søgningen kan foretages på O(h) tid (h er højden af træet) Maximum og minimum søgninger Minimum søgning: Følg træets venstre side intil slutningen Maximum søgning: Følg træets højre side indtil slutningen Søgningen kan foretages på O(h) tid (h er højden af træet)

10 Dagens program Binære træer og min/max søgning Backtracking Spanning tree Task skedulering Opgaver

11 Backtracking Hvad er problemet? Hvad nu hvis vi ikke har nogen nøgler der tillader os at udøve søgning i et binært træ F.eks. Et problem er blevet nedbrudt i et sæt af mulige løsninger, og nu har vi behov for at finde den bedste løsning givet et sæt af begrænsinger

12 Eksempel: Dronninge problemet Betragt et n x n skakbræt, og placeringen af dronningen q på brættet uden at denne truer andre dronninger allerede på brættet: Ø Ø ØØ Ø Ø En dronning truer mange felter Løsningsrummet er givet ved {1,2,3,,n} n Efterprøvning af alle mulige løsninger giver n n muligheder, men ved at indse at to dronninger ikke kan være i samme række/kolonne reducerer det til n! muligheder.

13 Eksempel: Convex hull (Graham s Scan) Problemet går ud på at konstruere den korteste polygon der sammenlukker et givet sæt at punkter i et plan Gennegå punkter i en eller anden orden, tilføj dem til en partiel løsning ved at lave et knæk på mindre end 180 grader, og backtracke løsningen når der laves et knæk der er større Gennemgå nu mulige løsninger Intuitivt Start med ekstreme punkter Algoritmen kræver O(nLog(n)) tid for at sortere punkterne, og O(n) tid til at udvælge et passende undersæt

14 Backtracking En potentiel løsning er givet ved et sæt S={v 1,v 2,..,v n } Try(S) Is S a solution Yes Return S No For each v in S, do: No Is {v 1,v 2,..,v n, v} Acceptable? Yes Try {v 1,v 2,..,v n, v} Yes Is S!= Ø Return S No

15 Karakteristika ved backtracking Backtracking er anvendeligt ved gennenmgang i et løsningsrum Identifikation af problemet, er den vigtigste del i løsningen Beskrivelse og identifikation af regler er nødvendige, men ikke nødvendigvis nemt! Gode regler kan nem reducere antallet af iterationer der er nødvendige for at udføre proceduren

16 Dagens program Binære træer og min/max søgning Backtracking Spanning tree Task skedulering Opgaver

17 Graph definitions En graf er defineret ved G=(V,E) V: sæt af linjer E VxV: Sæt af kanter Ensrettet graf: (v 1,v 2 ) E (v 2,v 1 ) E Basale operationer på grafer På linjer: Add/Delete/Find På kanter: Add/Delete/Find En sti er defineret ved := En sekvens af kanter P(v 1 ->v n )={(v 1,v 2 ), (v 2,v 3 ), (v 3,v 4 ),.., (v n-1,v n )} Sti længden er n Applikationseksempler Routing i computer netværk Repræsentation og manipulation af (endelige) automataer (fortolkere, compilers) Repræsentation af semantiske relationer

18 Et ord om grådige algoritmer Grådige algoritmer vælger altid den mulighed der ser bedst ud på et givet tidspunkt De leder ikke altid til en optimal løsning, men i mange tilfælge gør de

19 Minimum spanning tree Problemet er at forbinde et træ med mindst mulig pris w( T ) = ( u, v) T w( u, v) a b h i 2 6 c g d f e Eksempel på applikationer: Printudlæg for elektronik hardware, Planlægning af netværk Rutning i netværk

20 At gro et spanning tree A er et undersæt af et spanning tree, T Generiske algoritmer til at genere et minimums spanning tree 1 A Ø 2 while A does not form a spanning tree 3 do find an edge (u,v) that is safe for A 4 A A {(u,v)} 5 return A Problemet er at finde en kant der er sikker for A Kruskal s algorithm Prim s algorithm

21 Kruskal s algorithm Brute force metode til at konstruere et spanning tree Ideen er at bygget et sæt af kanter E ved grådighed ( lokale beslutninger) Algoritmen ser således ud 1 A Ø 2 for each vertex v V[G] do MAKE-SET(v) 3 sort edges of E into increasing cost by w 4 for each edge (u,v) E do if FIND-SET(u) FIND-SET(v) then A A {(u,v)} UNION(u,v) 5 return A a b h i 2 6 c g d f e

22 Prim s algorithm Brute force metode der vokser en løsning Alle kanter der ikke befinder sig i et træ, er placeret i en min-prioritets kø, Q A = {( v, π[ v]) : v V { r} Q} Slutmålet med algoritmen opnås når flg. krav er opnået A = {( v, π[ v]) : v V { r}} a b h i 2 6 c g 7 1 for each u V[G] do key[u] π[u] NIL 2 key[r] 0 3 Q V[G] 4 while Q Ø do u EXTRACT-MIN(Q) for each v Adj[u] do if v Q and w(u,v)<key[v] then π[v] u key[v] w(u,v) 2 4 d f e

23 Egenskaber ved de to algoritmer Udførselstid for de to algoritmer Kruskal s algorithm O(E log V) Prim s algorithm (afhængig af hvordan Q er implementeret) Adjacency matrix: O(V 2 ) Binær heap: O(E log V) Fibonacci heap: O(E+V log V) Prim s algorithm indeholder et træ under hele udførslen, mens Kruskal s algoritme ikke gør

24 Dagens program Binære træer og min/max søgning Backtracking Spanning tree Task skedulering Opgaver

25 Task skedulering Introduktiont til problemstillingen Basale strategier for job planlægning og eksekvering Realtids planlægning Job interaktion og kommunikation Multi processor job planlægning

26 Introduktion til task schedulering Anvendelse af computer systemer idag kræver vi At der kan køre mere end en proces ad gangen At de bliver kørt fornuftigt, så det virker som parrallelitelt (pseudo parralellitet ved enkelt CPU systemer) Ved netværk har vi efterhånden også samme krav Vi vil gerne have oplevelsen af et enkelt system udfører vores opgaver

27 Løsningen er operativ systemer Hvorfor har vi et behov for operativ systemer? At eksekvere flere applikationer/services på en enkelt computer er ikke muligt uden nogen form for kontrol af CPU en Hvad gør det godt for? Job håndtering Hukommelsesstyring Diskette og fil system Device drivers Netværk Sikkerhed Grafiske bruger flader Eksempler på eksisterende OS Windows, MacOS, Unix, Linux, Solaris, TinyOS, og mange flere Basalt set: Et OS er en ressource manager, med CPU en som den vigtigste ressource!

28 Et ord om response tider Decisekunder Forventede response tider ved reaktion fra tryk på keyboard Interaktion med en mus og skærm Brøkdele af sekunder Bestemte typer af tankekrævende arbejde, f.eks. grafik design eller spil Mindre end to sekunder Tilfælde hvor brugeren skal huske information i mellemliggende applikations interaktioner Mellem 2 og 4 sekunder Kræver høj koncentration af brugeren; kan måske være acceptabelt i nogle situationer Mere end 4 sekunder Generelt ikke acceptabelt, og vil typisk lede til frustrationer hos brugeren Mere end 15 sekunder Utolerable, men der er nogle situationer hvor det er ok, f.eks. i et skak program Brugeren bør generelt gives en chance for at gøre andre ting imens Source: Martin, J., Principles of Data Communication. Englewood Cliffs, NJ: Prentice Hall, 1988

29 Planlægningsproblem af opgaver At en opgave skal udføres, betyder IKKE at vi kan vente i uendelighed Blød realtid: Bruger interaktion, video, audio Hård realtid: Kontrol og styre systemer til f.eks. biler, robotter,... Et sæt af enhedsopgaver, S={a 1, a 2, a 3,., a n } Et sæt af deadlines D={d 1, d 2,., d n } Hver deadline overholder: 1 d i n Job a i er defineret ved d i Et sæt af positive vægtninger, straffe eller prioriteringer W={w 1, w 2,, w n } En straf w i er givet hvis Job a i ikke overholder deadline d i Problemet er nu, i hvilken orden af opgaver S skal de enkelte jobs udføres?

30 Eksempel på job planlægning a i d i w i Ved at anvende den grådige algoritme, GREEDY, kan vi finde et svar 1. A Ø 2. Sort S[M] into monotonically decreasing order by weight 3. for each x S[M] do if A {x} l[m] then A A {x} 4. return A a 5 og a 6 vil blive afvist, og udførelsesordenen vil blive <a 2, a 4, a 1, a 3, a 7, a 5, a 6 > Prisen for at afvise a 5 og a 6 bliver a 5 +a 6 =50

31 Job planlægning, et eksempel Task 1 Task 2 Task 3 Task 4 Time Task running Dispatcher Task ready Task Blocked Task not started

32 En model af et programs tilstand i et OS Admit Dispatch New Ready Running Exit Time-out Release Event occurs Blocked Event wait

33 Proces context og contex skift En proces er beskrevet af en blok af data, der typisk indeholder bl.a. Et ID nummer der identificerer processen Pointere til programmets lokation og hvor processoren er kommet til Register indhold Tilstand af forskellige flag og switche Pointere til øvre og nedre grænser af hukommelse krævet for processen En list af åbne filer af processen Prioriteten af processerne Status af alle I/O enheder krævet af processen Ved hvert job skifte, skal processoren på en eller anden måde også hente disse informationer frem

34 Performance parametre for planlæggere Bruger orienterede parametre Turnaround tid: Tid mellem job instantiering og færddiggørelse Response tid: Tid fra en forespørgsel er sendt, til et svar er givet Deadlines: Antallet af deadlines der bliver mødt (bør være så høj som muligt, evt. udtrykt som antal nåede deadlines ud af antal deadlines eller jobs) Forudsigelighed: Et givet job skal bruge ca. samme udførselstid uanset hvor stor belastning der er på systemet -> jitter

35 Performance metrics for schedulers System orienterede parametre Throughput: Mængden af jobs der bliver færdige per tidsenhed Processor udnyttelse: Procentandelen af tid processoren er optaget af at udføre et job Fairness: Uden bruger indflydelse, bør jobs behandles ens, og have lige lang CPU tid; job tid versus gennemsnitlig job tid bør være ens Prioritetsopfølgelse: Prioriterede jobs bør have mere CPU tid; job tid versus gennemsnitlig job tid bør være større end lavere prioriterede jobs Balance mellem resourcer: Planlæggeren bør holde forskellige resourcer i balanceret brug (f.eks. ved multiprocessorer holde alle processorer rimelig balancerede i brug)

36 Task skedulering Introduktiont til problemstillingen Basale strategier for job planlægning og eksekvering Realtids planlægning Job interaktion og kommunikation Multi processor job planlægning

37 Basalt job eksekvering - enkelt processor system Start program CPU Exit program Preemption Blocked queue w = time spent in system, including waiting and executing e = time spent in execution s = total service time required by the task, including e.

38 Hændelses differencerings kø enkelt processor Start program CPU Exit program Preemption Blocked queue Event 1 queue Event n queue w = time spent in system, including waiting and executing e = time spent in execution s = total service time required by the task, including e.

39 Prioritetsbaserede kø systemer single processor RQ-0 CPU Exit program RQ-1 Start program RQ-n Blocked queue Preemption w = time spent in system, including waiting and executing e = time spent in execution s = total service time required by the task, including e.

40 Basalt job eksekvering og livscyklus multi processor CPU Start program CPU Exit program CPU Preemption Ikke blot et spørgsmål om at have jobs kørende på forskellige CPU er Inter proces synkronisering er svært Hukommelsesstyring er svært Overbelastning og uens belastning kan forekomme Et sted skal det besluttet hvilken CPU jobbet skal afvikles på

41 Nonpreemptive planlægning En planlægningsdisciplin er non-preemptive hvis først en proces er blevet tildelt en CPU, så kan den ikke tages væk fra CPU en Følgende er karakteriserende ved non-preemptive planlæggere Korte jobs er sat til at vente på længere jobs, men den gennemsnitlige behandling af jobs er fair Response tider er mere forudsigelige fordi indkommende høj prioritetsjobs ikke kan udskifte ventende jobs En planlægger eksekverer jobs i de følgende to situationer Når et job skifter fra en løbende tilstand til en ventende tilstand Når et job terminerer

42 Preemptive planlægning En planlægningsdisciplin er pre-emptive hvis først et job er blevet tildelt en CPU, så kan den flyttes Denne strategi tillader jobs der er logisk kørbare at blive midlertidig suspenderet i en såkaldt pre-emptive planlægning, og er en kontrast til kør indtil færdig metoden Round Robin planlægninsdisciplinen er pre-emptiv (for hvert tidsstykke) og derfor er den effektiv i et tidsdelt miljø der skal kunne garantere rimelige response tider til interaktive brugere.

43 First-Come-First-Served (FC-FS) planlægger #Tasks Task 4 Task 3 Task 2 Task 1 Effektivt Time Simpel politik: First task der ankommer i buffer, bliver først serviceret Normaliseret round-trip tid: t η = queue + t serving serving 1 FC-FS er normalt ikke nogen god job planlægger, da den typisk favoriserer processor bundne opgaver t

44 Round robin planlægger #Tasks Task 4 Task 3 Task 2 Task 1 Effektivt Time Fair tilgang da den tillader forskellige jobs et minimum af CPU tid Processor bundne opgaver har en tendens til at få mere CPU tid end andre opgaver der f.eks. skal vente på I/O hændelser Udvælgelse af eksekverings tider er ikke nødvendigvis trivielt Hvis valgt for kort, bliver RR metoden ineffektive pga. alt for mange proces context skift per tidsenhed Hvis valg for høj, risikerer man at opgaverne får høj response tid

45 Mindste opgave næste opgave - planlægger #Tasks Task 4 Task 3 Task 2 Task 1 Effektivt Time En non-preemptive metode Eksekverer de hurtige opgaver i en kø, før de længerevarende opgaver Leder til uforudsigelige response tider Kræver job udvikleren giver et estimat af eksekveringstiden, ellers må kernen understøtte løbende estimering af eksekveringstider Følsom overfor fejl/bugs/program typer som While(true);

46 Mindste tid tilbage - planlægger #Tasks Task 4 Task 3 Task 2 Task 1 Effektivt Time En pre-emptive version af den korteste opgave planlægger Så snart mindre opgaver ankommer i køen, gives disse prioritet Giver generelt en bedre turnaround time ydelse i forhold til den korteste opgave planlægger

47 Højest response forhold næste - planlægger En non-preemptive disciplin Prioritet bestemmes af den estimerede eksekveringstid, og den tid opgaven allerede har haft ventende på CPU tilgang tqueue + tˆ execution R = = 1+ tˆ execution queue execution Når en opgave er slut, eller blokeret, er opgaven med højest rankering R givet tilgang til CPU en Favoriserer små opgaver, men sikrer på samme tid at opgaver ikke venter ekstremt lang tid, og dermed leder til relativt lavere response tider for alle opgaver t tˆ

48 Feedback planlægger Start program RQ-0 CPU Exit program RQ-1 CPU Exit program RQ-n CPU Exit program I stedet for at estimere den tilbageværende service tid, er fokus på den allerede spenderede eksekveringstid Efterhånden som opgaver kræver forøget processeringstid, bliver de sat i lavere prioritetskøer

49 Kombinationer af de forhenværende metoder Er muligt med f.eks. FC-FS med Round Robin eller andre kombinationer Giver dog forøget kompleksitet der er uønsket Betragt kompleksitet af implementering af en metode versus den opnåede fleksibilitet og muligheder Forøget kompleksitet af en planlægningsalgoritme, leder til Forøget kode Højere sandsynlighed for fejl Højst sandsynligvis også højere context skift tid Tiden for at skifte opgave, context skift, bør holdes på et minimum, og ikke være mere end 5-10% af den samlede eksekveringstid

50 Task skedulering Introduktiont til problemstillingen Basale strategier for job planlægning og eksekvering Realtids planlægning Job interaktion og kommunikation Multi processor job planlægning

51 Realtids planlægning To typer af planlægningskrav Blød realtidskrav Er karakteriseret ved Det er ikke kritisk at møde en deadline, men ønskværdig Det giver mening at fortsætte eksekvering, selvom deadlines ikke er mødt Eksempel Bruger programmer som Power Point Log system Hård realtidskrav Er karakteriseret ved Det er absolut kritisk at en opgave nås til dens deadline Hvis en deadline ikke er overholdt, kan der ske fatale fejl, og det giver ingen mening at fortsætte eksekvering Eksempel Kontrol algoritmer for f.eks. Satellite retnings kontrol, atomkraftværk, robotter, Bilers bremsesystemer.

52 Karakteristika ved realtids OS Deterministiske Operationer kan udføres på forudsete tider eller med forudsete tidsinterval Ydelse i form at OS s evne til at minimisere jitter og delay i eksekvering af periodiske og tidskritiske operationer Svært at opnå i et multi processor system Respons evne Evnen for et OS til at instantiere en Interrupt Håndteringssmekasnisme Evnen til at foretage hurtige proces skifte (context skift) Udfordringer er hovedsagligt fokuseret omkring indlejrede interrupt og interrupt håndteringer

53 Karakteristika ved realtids OS Bruger kontrol For realtids OS er det en vigtig feature at kunne tillade brugere (her tænkes der applikationsudviklere) at have god kontrol over nøjagtigheden af opgave prioritering Fokus er på evnen til at Sætte opgave prioritet niveau (inkl. Hård/blød realtidskrav) Kontrol af interupts/atomiske operationer Politikker til at håndtere opgaver med ens prioritet Stabilitet og sikkerhed For realtidsapplikationer, er det absolut kritisk (for nogle mere end andre) at opgaverne bliver eksekveret Redundans på multikerne processorer, eller systemer kan være løsninger, men introducerer yderligere kompleksitet

54 Forskellige strategier ved realtids planlægning Request for RT operation Schedule RT activity on next time slice Clock tick Task 1 Task 2 Task n RT-Task A) Round Robin preemptive scheduler Request for RT operation Task 1 RT-Task Task 2 b) Priority driven nonpreemptive FCFS scheduler

55 Forskellige strategier ved realtids planlægning Request for RT operation Task 1 RT-Task Task 1 Task 2 c) Priority driven nonpreemptive FCFS scheduler, with deterministic preemption points Request for RT operation Task 1 RT-Task Task 1 Task 2 d) Priority driven nonpreemptive FCFS scheduler, with imidiate preemption points

56 Eksempel: RealTime Linux (RT-Linux) User space, Lowest priority... User app User app User app User app Kernel Space Low priority RT task Linux kernel Kernel modules in RT-Linux space RT Task RT Task RT Task RT Task RT-Linux kernel Hardware platform FIFO pipes or shared memory (controlled by the RT-Linux kernel) can be used for communication between RT Warning: a high priority RT Task should always at some time release CPU to other tasks!!!

57 Generelt for realtids kerner Evne til hurtige opgave skift Små i kode størrelse (især for indlejrede systemer) Evne til at svare hurtigt på eksterne interrupts (HW/SW) Multitasking med interproces kommunikationsmuligheder såsom semaforer, signaler og hændelser (events) Brug af speciel sekventielle filer, der kan akkumulere data ved hurtige hastigheder Pre-emptive planlægning baseret på prioritet Minimering af interval hvorimellem interrupts er afbrudt Primitiver til at udsætte opgaver i et givet stykke tid, og til at ændre tilstande på opgaver mellem f.eks. pause/fortsætte Specielle alarmer og time-outs (f.eks. watch dog timers)

58 Task skedulering Introduktiont til problemstillingen Basale strategier for job planlægning og eksekvering Realtids planlægning Job interaktion og kommunikation Multi processor job planlægning

59 Beskyttelse af resourcer Beskyttelse af resourcer er kritisk, men hvordan gøres dette fair? There is a group of philosophers (usually 5) who eat together at a round table. There are forks placed between the philosophers. Philosophers spend their time either thinking or eating. In order to eat, a philosopher must pick up exactly two forks, one on his immediate left, and the other on his immediate right. When he is done eating, he will put his forks down so that his neighbors may use them, and he thinks again. Diskution: Ville det hjælpe med en tjener? Vil en beskidt gaffel hjælpe og hvordan? Philosophers dining problem

60 Race condition Betragt to jobs; A, B der hver udfører flg. 1. Read X 2. Do X=X+1 3. Write X back Hvis eksekveret sekventielt, vil X blive 2 når A og B er færdige Task A Task B Integer X Read X X = X+1 Write X=1 Read X X = X+1 Write X=2 I et pseudo parrallelt miljø, kan X blive 1!! Time Task A Read X X = X+1 Write X=1 Time Task B Read X X = X+1 Write X=1

61 Deadlocks Når to tog nærmer sig hinanden ved et kryds, skal begge stoppe og ingen skal køre videre før at det andet tog har passeret

62 Hændelser og inter proces kommunikation #Tasks Task 4 Task 3 Task 2 Task 1 Processer har potentielt behov for at Kommunikere med hinanden, f.eks. Udveksle data objekter/informationer Vente på hinanden, f.eks. Ved beregning af et resultat, eller eksterne hændelser (HW/SW interrupts) Benytte samme ressourcer, såsom Diskette drev/filsystem Hukommelse Keyboard Time

63 Job synkronisering Typiske operationer som tråde/processer kan anvende Semaphores og/eller mutexes: Til at undgå inkonsistens mellem resourcer og data Signaler: Dedikerede beskeder anvendt til at indikere andre jobs at de skal udføre et eller andet, f.eks. Stop eksekvering, pause, vent,... Hændelse (event): At notificere et job om at et eller andet er sket, f.eks. Jeg har beregnet X, Y har forespurgt om Z IEEE definerer en standard for job interaktion (IEEE Std , Posix), se også online på

64 Task skedulering Introduktiont til problemstillingen Basale strategier for job planlægning og eksekvering Realtids planlægning Job interaktion og kommunikation Multi processor job planlægning

65 Multiprocessor planlægning I nogle systemer er der mere end en CPU til rådighed for at eksekvere en applikation Klasser af multiprocessor systemer Løst koblet eller distribuerede multiprocessors: En samling af relativt autonome processorer med hver deres egen hukommelse og I/O Funktionelt specialiserede processorer: I/O processorer til f.eks. Grafik, lyd, filsystem m.f. Tæt koblet multiprocessors: Et sæt af processorer der deler en fælles hukommelse og som er under kontrol af et OS

66 Distribuering af jobs Job deling: De enkelte opgaver er ikke associerede til en enkelt processor. En global kø af eksekverbare jobs er vedligehold, og hver processor vælger og eksekverer et job fra denne kø. Gruppe planlægning: Et sæt af relaterede jobs, f.eks. Tæt interagerende processer planlægges at køre på samme processor på samme tid, på et ettil-et basis Dedikeret processor tilvalg: Hvert proces er allokeret et antal af processorer lig med antallaet af tråde det genererer. Hver tråd køres på en seperat processor. Dynamisk planlægning: Virker på samme måde som den dedikerede processor tilvalg, men eftersom antallet af tråde der generes af en proces kan variere over tid, er tråde tildelt processor dynamisk

67 Dagens program Binære træer og min/max søgning Backtracking Spanning tree Task skedulering Opgaver

68 Opgaver Diskuter anvendelsen af job planlægning i jeres projekt Hvilke planlægningsmetoder kan være anvendelige for jeres projekt? Hvordan skal de kommunikere med hinanden? Er der flere processorer involveret, eventuelt over netværk? Hvordan håndterer man distribuerede opgaver efter de viste principper? Tidskrav Hvad er jeres tidskrav? Hvordan finder i frem til dem? Hvad er konsekvenser for i ikke kan nå jeres opgaver til tiden?

69 Opgaver Projekt Diskussion (15min): Diskuter potential anvendelse af grafer i jeres projekt Hvad type graf kan være anvendelig (direkte/indirekte) og hvad form for kant-markering kan være brugbar? Hvilken type job/algoritme skal i bruge i jeres projekt for at arbejde med disse grafer? Hvor mange dronninger kan man sætte sikker på et 4x4 felt stort skakbræt? 8x8 felt stort skakbræt? 16x16 felt stort skakbræt? Hvordan vil det være hvis man puttede f.eks. En bonde ind på brættet? Hvordan vil det være hvis man tog en anden brik, f.eks. Et tårn eller en springer?

Schedulering. dopsys 1

Schedulering. dopsys 1 Schedulering dopsys 1 Re: Schedulering af processer.. administration af CPU-resursen. Ready List (RL) list af processer i ready_a tilstand. dopsys 2 Re: Schedulering af processer.. administration af CPU-resursen.

Læs mere

Mm4: Greedy algorithms, backtracking and more recurrences - October 21, 2008

Mm4: Greedy algorithms, backtracking and more recurrences - October 21, 2008 Algorithms and Architectures I Rasmus Løvenstein lsen (RL), Jimmy Jessen Nielsen (JJE) Mm4: Greedy algorithms, backtracking and more recurrences - ctober 21, 2008 Algorithms and Architectures II 1. Introduction

Læs mere

Schedulering. dopsys 1

Schedulering. dopsys 1 Schedulering dopsys 1 Re: Schedulering af processer.. administration af CPU-resursen. Ready List (RL) processer i ready_a, ready_s, eller running tilstand. dopsys 2 Re: Schedulering af processer.. administration

Læs mere

Netværksalgoritmer 1

Netværksalgoritmer 1 Netværksalgoritmer 1 Netværksalgoritmer Netværksalgoritmer er algoritmer, der udføres på et netværk af computere Deres udførelse er distribueret Omfatter algoritmer for, hvorledes routere sender pakker

Læs mere

Planen for idag. Datalogi 1F Forår 2003. Hvad er en proces? Livscyklus for en proces. Hvad består en proces af?

Planen for idag. Datalogi 1F Forår 2003. Hvad er en proces? Livscyklus for en proces. Hvad består en proces af? Datalogi 1F Forår 2003 OS[2]: Processor, tråde og skedulering Jørgen Sværke Hansen Planen for idag Processer: Procesbegrebet Processkift Processers familieliv Kommunikerende processer Tråde En lettere

Læs mere

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION

Læs mere

Deadlocks dopsys 1 onsdag den 8. december 2010

Deadlocks dopsys 1 onsdag den 8. december 2010 Deadlocks dopsys 1 En deadlock! When two trains approach each other at a crossing, both shall come to a full stop and neither shall start up again until the other has gone. Lov - the Kansas Legislature

Læs mere

Implementation af Koordinering. dopsys 1

Implementation af Koordinering. dopsys 1 Implementation af Koordinering dopsys 1 Oversigt: Impl. af koordinering Begreber: Kritiske regioner Gensidig udelukkelse Synkroniseringsprimitiver: Binære semaforer / mutexes Tællesemaforer Betingelsesvariabler

Læs mere

Resource types R 1 1, R 2 2,..., R m CPU cycles, memory space, files, I/O devices Each resource type R i has W i instances.

Resource types R 1 1, R 2 2,..., R m CPU cycles, memory space, files, I/O devices Each resource type R i has W i instances. System Model Resource types R 1 1, R 2 2,..., R m CPU cycles, memory space, files, I/O devices Each resource type R i has W i instances. Each process utilizes a resource as follows: request use e.g., request

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille Nærmeste naboer. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle key[] og satellitdata data[]. operationer. PREDECESSOR(k): returner element med største nøgle k.

Læs mere

Schedulering. dopsys

Schedulering. dopsys Schedulering Schedulering Ide: tag beslutning om fordeling af resurser på parter Resurse kan tildeles, fratages Bestemte situationer muliggør beslutninger 2 Designvalg i schedulering Beslutningsform: hvornår

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer Philip Bille (priority-queues). Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX():

Læs mere

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012 Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk

Læs mere

Scheduling. Niels Olof Bouvin. Institut for Datalogi Aarhus Universitet

Scheduling. Niels Olof Bouvin. Institut for Datalogi Aarhus Universitet Scheduling 1 Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Tråde og deres indbyrdes forhold Sidste gang så vi på, hvorledes tråde kan skabes, og hvordan man kan skifte imellem dem I dag ser

Læs mere

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering Philip Bille Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer

Læs mere

Uniprocessor Scheduling

Uniprocessor Scheduling Uniprocessor Scheduling Chapter 9 E&CE 354: Processes 0 Processor Scheduling Main OS concern: allocation of resources to processes CPU is a key resource; processor scheduling is concerned with its allocation

Læs mere

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer Philip Bille. Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX(): returner og fjern

Læs mere

Prioritetskøer og hobe. Philip Bille

Prioritetskøer og hobe. Philip Bille Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

Mm6: More sorting algorithms: Heap sort and quick sort - October 29, 2008

Mm6: More sorting algorithms: Heap sort and quick sort - October 29, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm6: More sorting algorithms: Heap sort and quick sort - October 9, 008 Algorithms and Architectures II. Introduction

Læs mere

Processer og tråde. dopsys 1

Processer og tråde. dopsys 1 Processer og tråde dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne) hhv. små systemer: Multiprogrammering og time-sharing (fra 60 erne og frem): dopsys

Læs mere

1 Operativsystemer oversigt

1 Operativsystemer oversigt 1 Operativsystemer oversigt Hvorfor OS virtualisering Abstraktion (processer, virtual hukommelse, filer) Kernel mode og user mode Systemkald (slide 31) Interrupts At levere en simplere model af computeren

Læs mere

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor

Læs mere

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Algoritmisk geometri

Algoritmisk geometri Algoritmisk geometri 1 Intervalsøgning 2 Motivation for intervaltræer Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Antag, at vi ønsker at

Læs mere

Principper for Samtidighed og Styresystemer

Principper for Samtidighed og Styresystemer Principper for Samtidighed og Styresystemer kursusintroduktion og Introduktion til Styresystemer René Rydhof Hansen Februar 2008 PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 1

Læs mere

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje

Læs mere

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed Algoritmisk geometri Intervalsøgning 1 2 Motivation for intervaltræer Intervalsøgning Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Vi kan

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Mm7: A little bit more about sorting - and more times for exercises - November 4, 2008

Mm7: A little bit more about sorting - and more times for exercises - November 4, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm: A little bit more about sorting - and more times for exercises - November 4, 2008 1 Algorithms and Architectures

Læs mere

Datastrukturer (recap) Datastruktur = data + operationer herpå

Datastrukturer (recap) Datastruktur = data + operationer herpå Dictionaries Datastrukturer (recap) Datastruktur = data + operationer herpå Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data (ofte underforstået, også

Læs mere

Mindste udspændende træ

Mindste udspændende træ Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme Philip Bille Mindste udspændende træ Introduktion Repræsentation

Læs mere

Minimum udspændende Træer (MST)

Minimum udspændende Træer (MST) Minimum udspændende Træer (MST) Træer Et (frit/u-rodet) træ er en uorienteret graf G = (V, E) som er Sammenhængende: der er en sti mellem alle par af knuder. Acyklisk: der er ingen kreds af kanter. Træer

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:

Læs mere

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje

Læs mere

Planen for idag. Synkroniseringsmekanismer. Krav til løsning. Kritiske regioner. Bagerens algoritme. Kritisk region via delt lager.

Planen for idag. Synkroniseringsmekanismer. Krav til løsning. Kritiske regioner. Bagerens algoritme. Kritisk region via delt lager. Planen for idag Synkroniseringsmekanismer Kritiske regioner Semaforer: Binære semaforer Tællesemaforer Beskedsemaforer Prioritetsinvertering Låse (spinlocks) sikrer udelelig adgang Barrierer synkroniseringspunkt

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Læs mere

Styresystemer og tjenester

Styresystemer og tjenester Styresystemer og tjenester Indhold: 1. Introduktion til styresystemer. 2. Processer og tråde. 3. Synkroniseringsmetoder og InterProcesCommunikation. 4. Memory management. 5. I/O og devicedrivere. 6. Filsystemer.

Læs mere

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er en unik simpel vej mellem ethvert par af punkter i

Læs mere

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1 Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering 1 / 36 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Koordinering. dopsys

Koordinering. dopsys Koordinering At indføre flertrådethed (1) når tråde tages i brug opstår typisk konflikter (et velkendt eksempel er errno ) 2 At indføre flertrådethed (2) en del konflikter kan afhjælpes med thread-local

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed:

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer

Læs mere

Karaktergivende opgave i Styresystemer og multiprogrammering (reeksamen) 13. august 2007

Karaktergivende opgave i Styresystemer og multiprogrammering (reeksamen) 13. august 2007 Karaktergivende opgave i Styresystemer og multiprogrammering (reeksamen) 13. august 2007 Den karaktergivende opgave i Styresystemer og multiprogrammering stilles mandag den 13. august 2007 klokken 9:00

Læs mere

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af)

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Varighed: timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Titel: Barry s Bespoke Bakery

Titel: Barry s Bespoke Bakery Titel: Tema: Kærlighed, kager, relationer Fag: Engelsk Målgruppe: 8.-10.kl. Data om læremidlet: Tv-udsendelse: SVT2, 03-08-2014, 10 min. Denne pædagogiske vejledning indeholder ideer til arbejdet med tema

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 3 sider anmarks Tekniske Universitet Skriftlig prøve, den 29. maj 203. ursusnavn: lgoritmer og datastrukturer ursus nr. 02326. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

Brug sømbrættet til at lave sjove figurer. Lav fx: Få de andre til at gætte, hvad du har lavet. Use the nail board to make funny shapes.

Brug sømbrættet til at lave sjove figurer. Lav fx: Få de andre til at gætte, hvad du har lavet. Use the nail board to make funny shapes. Brug sømbrættet til at lave sjove figurer. Lav f: Et dannebrogsflag Et hus med tag, vinduer og dør En fugl En bil En blomst Få de andre til at gætte, hvad du har lavet. Use the nail board to make funn

Læs mere

Algorithms & Architectures II

Algorithms & Architectures II Algorithms & Architectures II Algorithms & Architectures II Jens Myrup Pedersen Hans Peter Schwefel Kursusholdere Dagens lektion Overordnet mål: At etablere en forståelse for hvordan hardware og hardwarearkitekturer

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille er. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle x.key og satellitdata x.data. operationer. PREDECESSOR(k): returner element x med største nøgle k. SUCCESSOR(k):

Læs mere

A Profile for Safety Critical Java

A Profile for Safety Critical Java A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren

Læs mere

Help / Hjælp

Help / Hjælp Home page Lisa & Petur www.lisapetur.dk Help / Hjælp Help / Hjælp General The purpose of our Homepage is to allow external access to pictures and videos taken/made by the Gunnarsson family. The Association

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 0205. Varighed: 4 timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. 22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:

Læs mere

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP) Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP) Speciale efterår 2005 Teknisk Informationsteknologi Jan Lauritzen & Mads

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er) Algoritmeanalyse Identificer essentiel(le) operation(er) Øvre grænse for algoritme Find øvre grænse for antallet af gange de(n) essentielle operation(er) udføres. Øvre grænse for problem Brug øvre grænse

Læs mere

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm3: More about recurrences - October 10, 2008

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm3: More about recurrences - October 10, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm3: More about recurrences - October 10, 2008 1 Algorithms and Architectures II 1. Introduction to analysis and

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Geometrisk skæring. Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter

Geometrisk skæring. Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter Planfejning 1 Skæring 2 Geometrisk skæring Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter Løsningsmetoder: Rå kraft Planfejning (eng. plane sweep)

Læs mere

QUICK START Updated: 18. Febr. 2014

QUICK START Updated: 18. Febr. 2014 QUICK START Updated: 18. Febr. 2014 For at komme hurtigt og godt igang med dine nye Webstech produkter, anbefales at du downloader den senest opdaterede QuickStart fra vores hjemmeside: In order to get

Læs mere

Styresystemer og tjenester

Styresystemer og tjenester Styresystemer og tjenester Indhold: 1. Introduktion til styresystemer. 2. Processer og tråde. 3. Synkroniseringsmetoder og InterProcesCommunikation. 4. Memory management. 5. I/O og devicedrivere. 6. Filsystemer.

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Algoritmedesign med internetanvendelser ved Keld Helsgaun Algoritmedesign med internetanvendelser ved Keld Helsgaun 1 Analyse af algoritmer Input Algoritme Output En algoritme er en trinvis metode til løsning af et problem i endelig tid 2 Algoritmebegrebet D.

Læs mere

Udtømmende søgning 1

Udtømmende søgning 1 Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer Find den korteste

Læs mere

Fart på SAP HANA. Sådan laver du analyser direkte på dine data i realtid. Copyright 2012 FUJITSU. Fujitsu IT Future, København, den 16.

Fart på SAP HANA. Sådan laver du analyser direkte på dine data i realtid. Copyright 2012 FUJITSU. Fujitsu IT Future, København, den 16. Fart på SAP HANA Sådan laver du analyser direkte på dine data i realtid 0 Flemming Grand Saphira Consulting Mobile: +45 30 78 45 86 Email: flemming.grand@saphiraconsulting.com Allan Christiansen Fujitsu

Læs mere

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1 IBM Network Station Manager esuite 1.5 / NSM Integration IBM Network Computer Division tdc - 02/08/99 lotusnsm.prz Page 1 New esuite Settings in NSM The Lotus esuite Workplace administration option is

Læs mere

QUICK START Updated:

QUICK START Updated: QUICK START Updated: 24.08.2018 For at komme hurtigt og godt igang med dine nye Webstech produkter, anbefales at du downloader den senest opdaterede QuickStart fra vores hjemmeside: In order to get started

Læs mere

programmeringskonkurrencer implementation under tidspres

programmeringskonkurrencer implementation under tidspres ACM/ICPC programmeringskonkurrencer g - algoritmisk problemløsning og algoritmisk problemløsning og implementation under tidspres Hvad er det? Programmeringsopgaver af algoritmisk natur. Kendskabet fra

Læs mere

LUL s Flower Power Vest dansk version

LUL s Flower Power Vest dansk version LUL s Flower Power Vest dansk version Brug restgarn i bomuld, bomuld/acryl, uld etc. 170-220 m/50 g One size. Passer str S-M. Brug større hæklenål hvis der ønskes en større størrelse. Hæklenål 3½ mm. 12

Læs mere

ECE 551: Digital System * Design & Synthesis Lecture Set 5

ECE 551: Digital System * Design & Synthesis Lecture Set 5 ECE 551: Digital System * Design & Synthesis Lecture Set 5 5.1: Verilog Behavioral Model for Finite State Machines (FSMs) 5.2: Verilog Simulation I/O and 2001 Standard (In Separate File) 3/4/2003 1 ECE

Læs mere

DM507 - Algoritmer og datastrukturer

DM507 - Algoritmer og datastrukturer - Algoritmer og datastrukturer Køretid g(n) Udtryk Beskrivelse lim n f(n) o(f) Vokser langsommere end f = 0 O(f) Vokser højst så hurtigt som f < Θ(f) Vokser som f = c(c > 0) Ω(f) Vokser mindst så hurtigt

Læs mere

DM02 Kogt ned. Kokken. Januar 2006

DM02 Kogt ned. Kokken. Januar 2006 DM02 Kogt ned Kokken Januar 2006 1 INDHOLD Indhold 1 Asymptotisk notation 2 2 Algoritme analyse 2 3 Sorterings algoritmer 2 4 Basale datastrukturer 3 5 Grafer 5 6 Letteste udspændende træer 7 7 Disjunkte

Læs mere

Vejledning til at tjekke om du har sat manuel IP på din computer.

Vejledning til at tjekke om du har sat manuel IP på din computer. Indhold Vejledning til at, komme på nettet. (DANSK)... 2 Gælder alle systemer.... 2 Vejledning til at tjekke om du har sat manuel IP på din computer.... 2 Windows 7... 2 Windows Vista... 2 Windows XP...

Læs mere

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010 1 Algorithms and Architectures II 1. Introduction to analysis and design of algorithms

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 (tretten) Eksamensdag: Tirsdag den 8. april 2008,

Læs mere

Vina Nguyen HSSP July 13, 2008

Vina Nguyen HSSP July 13, 2008 Vina Nguyen HSSP July 13, 2008 1 What does it mean if sets A, B, C are a partition of set D? 2 How do you calculate P(A B) using the formula for conditional probability? 3 What is the difference between

Læs mere

Sider og segmenter. dopsys 1

Sider og segmenter. dopsys 1 Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.

Læs mere

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer ind den korteste rundtur

Læs mere

how to save excel as pdf

how to save excel as pdf 1 how to save excel as pdf This guide will show you how to save your Excel workbook as PDF files. Before you do so, you may want to copy several sheets from several documents into one document. To do so,

Læs mere