Implementation af Koordinering. dopsys 1
|
|
- Jan Bundgaard
- 6 år siden
- Visninger:
Transkript
1 Implementation af Koordinering dopsys 1
2 Oversigt: Impl. af koordinering Begreber: Kritiske regioner Gensidig udelukkelse Synkroniseringsprimitiver: Binære semaforer / mutexes Tællesemaforer Betingelsesvariabler Monitors Kommunikation: via delt lager dopsys 2
3 Generel håndtering af resurser Overordnet mønster: Ejerskab styres med Allocate, Deallocate Eksklusivitet opnås med Process_blocked_on, Free Schedulering sikrer fremdrift Indkapsling: Request, Release Request(res) { if (Free(res)) Allocate(res, self) else { Block(self, res); Scheduler(); Release(res) { Deallocate(res, self); if (Process_blocked_on(res, pr)) { Allocate(res, pr); Unblock(pr, res); Scheduler(); dopsys 3
4 Gensidig Udelukkelse: Ny teknik cobegin p1: while(1) { // CS1; program 1;... // pn: while(1) { coend CSn; program n; data dopsys 4
5 Gensidig Udelukkelse: Ny teknik.. kan implementeres ved at forhindre interrupts: cobegin p1: while(1) { Inbibit_Interrupts; CS1; CS1; program 1; // program 1;... //... pn: // while(1) { pn: while(1) Inbibit_Interrupts; { CSn; CSn; program n; program n; coend data Egenskaber: Kun anvendeligt ved korte kritiske regioner Af sikkerhedsgrunde kun anvendeligt i OS kernen Virker ikke ved mere end een CPU! dopsys 4
6 [Click] Hvorfor virker det ikke ved mere end een CPU? cobegin p1: while(1) { Inbibit_Interrupts; CS1; CS1; program 1; // program 1;... //... pn: // while(1) { pn: while(1) Inbibit_Interrupts; { CSn; CSn; program n; program n; coend A. Andre CPUer kan stadig godt få interrupts B. Deadlock truer C. Livelock truer D. Andre CPUer kan nå kritisk region E. Ved ikke Egenskaber: Kun anvendeligt ved korte kritiske regioner Af sikkerhedsgrunde kun anvendeligt i OS kernen Virker ikke ved mere end een CPU! dopsys 4
7 Instruktionen Test and Set.. læsning og skrivning af lagercelle i en maskininstruktion: TS(R,X) : R CPU register X udpeger lagercelle. Semantik: R = X; X = 0; X:? R:? X: 0 R: X.. kan bruges til at implementere en låsemekanisme. dopsys 5
8 [Q/A] Forklar hvordan TS(X,R) kan modellere allokering hhv. deallokering som at tage æblet dopsys 6
9 Binære semaforer (Mutex).. kan implementeres ved brug af spinlocks og TS: Specifikation: sb: binær semafor værdi (0 - locked, 1 - unlocked) mutex_lock(sb) if (sb == 1) sb = 0 else mutex_lock(sb) mutex_unlock(sb) sb = 1 dopsys 7
10 Binære semaforer (Mutex).. kan implementeres ved brug af spinlocks og TS: Specifikation: sb: binær semafor værdi (0 - locked, 1 - unlocked) mutex_lock(sb) if (sb == 1) sb = 0 else mutex_lock(sb) mutex_unlock(sb) sb = 1 Implementation: sb: lagercelle der indeholder semaforværdien. mutex_lock(sb) do TS(R,sb) while (!R) mutex_unlock(sb) sb = 1 dopsys 7
11 Binære semaforer (Mutex).. kan implementeres ved brug af spinlocks og TS: Specifikation: sb: binær semafor værdi (0 - locked, 1 - unlocked) mutex_lock(sb) if (sb == 1) sb = 0 else mutex_lock(sb) mutex_unlock(sb) sb = 1 Implementation: sb: lagercelle der indeholder semaforværdien. mutex_lock(sb) do TS(R,sb) while (!R) mutex_unlock(sb) sb = 1 Egenskaber: Anvendeligt på multiprocessor arkitektur med delt lager Antager fairness omkring schedulering (unlock vil blive udført) Spinlocks er acceptable hvis ventetiden er kort dopsys 7
12 Tællesemaforer (1).. kan implementeres udfra binære semaforer: s mutex_s delay_s down(s,mutex_s,delay_s) { s = s 1; if (s < 0) { lock(delay_s); >= 0 værdien af tællesemafor, < 0 antal ventende processer binær semafor til beskyttelse af tælleren s binær semafor til at få processer (tråde) til at vente Initialisering: mutex_s = 1; delay_s = 0; up(s,mutex_s,delay_s) { s = s + 1; if (s <= 0) unlock(delay_s); else.. disable/enable interrupts tilføjes aht deadlock; mutex_s kan så fjernes på uniprocessor arkitektur dopsys 8
13 Prioriteter?.. problem hvis processer bliver afbrudt under udførelse af up og down operationer: Initialisering: mutex_s = 1; delay_s = 0; down(s,mutex_s,delay_s) { s = s 1; if (s < 0) { lock(delay_s); up(s,mutex_s,delay_s) { s = s + 1; if (s <= 0) unlock(delay_s); else L proces med lav prioritet. H proces med høj prioritet. dopsys 9
14 Prioriteter?.. problem hvis processer bliver afbrudt under udførelse af up og down operationer: L Initialisering: mutex_s = 1; delay_s = 0; down(s,mutex_s,delay_s) { s = s 1; if (s < 0) { lock(delay_s); up(s,mutex_s,delay_s) { s = s + 1; if (s <= 0) unlock(delay_s); else L proces med lav prioritet. H proces med høj prioritet. dopsys 9
15 Prioriteter?.. problem hvis processer bliver afbrudt under udførelse af up og down operationer: L Initialisering: mutex_s = 1; delay_s = 0; down(s,mutex_s,delay_s) { s = s 1; if (s < 0) { lock(delay_s); H up(s,mutex_s,delay_s) { s = s + 1; if (s <= 0) unlock(delay_s); else L proces med lav prioritet. H proces med høj prioritet. dopsys 9
16 [Q/A].. problem hvis processer bliver afbrudt under udførelse af up og down operationer: L Initialisering: mutex_s = 1; delay_s = 0; down(s,mutex_s,delay_s) { s = s 1; if (s < 0) { lock(delay_s); H up(s,mutex_s,delay_s) { s = s + 1; if (s <= 0) unlock(delay_s); else Der er 1 CPU. L proces Hvad med er lav prioritet. H proces problemet? med høj prioritet. dopsys 10
17 Prioriteter.. undgås ved enabling/disabling af interrupt (men vi har stadig brug for en vis fairness): Initialisering: mutex_s = 1; delay_s = 0; down(s,mutex_s,delay_s) { Inhibit_Interrupts; s = s 1; if (s < 0) { lock(delay_s); up(s,mutex_s,delay_s) { Inhibit_Interrupts; s = s + 1; if (s <= 0) { unlock(delay_s); else dopsys 11
18 Prioriteter.. undgås ved enabling/disabling af interrupt (men vi har stadig brug for en vis fairness): s=0 Initialisering: mutex_s = 1; delay_s = 0; down(s,mutex_s,delay_s) { Inhibit_Interrupts; s = s 1; if (s < 0) { lock(delay_s); up(s,mutex_s,delay_s) { Inhibit_Interrupts; s = s + 1; if (s <= 0) { unlock(delay_s); else dopsys 11
19 Prioriteter.. undgås ved enabling/disabling af interrupt (men vi har stadig brug for en vis fairness): s=0 H Initialisering: mutex_s = 1; delay_s = 0; down(s,mutex_s,delay_s) { Inhibit_Interrupts; s = s 1; if (s < 0) { lock(delay_s); up(s,mutex_s,delay_s) { Inhibit_Interrupts; s = s + 1; if (s <= 0) { unlock(delay_s); else dopsys 11
20 Prioriteter.. undgås ved enabling/disabling af interrupt (men vi har stadig brug for en vis fairness): s=0 H Initialisering: mutex_s = 1; delay_s = 0; down(s,mutex_s,delay_s) { Inhibit_Interrupts; s = s 1; if (s < 0) { lock(delay_s); L? up(s,mutex_s,delay_s) { Inhibit_Interrupts; s = s + 1; if (s <= 0) { unlock(delay_s); else dopsys 11
21 Busy waiting.. kan ske så længe en proces har den resurse der ventes på: Initialisering: mutex_s = 1; delay_s = 0; down(s) { Inhibit_Interrupts; s = s 1; if (s < 0) { lock(delay_s); up(s) { Inhibit_Interrupts; s = s + 1; if (s <= 0) unlock(delay_s); else dopsys 12
22 Busy waiting.. kan ske så længe en proces har den resurse der ventes på:.. busy waiting ønskes reduceret for at spare processor tid Initialisering: mutex_s = 1; delay_s = 0; down(s) { Inhibit_Interrupts; s = s 1; if (s < 0) { lock(delay_s); up(s) { Inhibit_Interrupts; s = s + 1; if (s <= 0) unlock(delay_s); else dopsys 12
23 Tællesemaforer (2).. busy waiting kan reduceres ved interaktion med scheduler. down(s) { Inhibit_Interrupt; s = s - 1; if (s < 0) { Block(self, Ls); Enable_Interrupt; Scheduler(); else { Enable_Interrupt; up(s) { Inhibit_Interrupt; s = s + 1; if (s <= 0) { Unblock(q, Ls); Enable_Interrupt; Scheduler(); else { Enable_Interrupt; Eliminerer busy waiting mens andre processer er i kritiske region. dopsys 13
24 spørgsmål om implementation af koordinering? dopsys 14
25 Re: Monitors (Hoare, 1974).. beskytter tilgang til delte resurser: Monitor komponenter: Data - resursens tilstand. Procedurer - tilgang til resursens data. Egenskaber: Tilgang til resursens data kun via monitorprocedurer. Udførelse af monitorprocedurer er gensidigt udelukkende. dopsys 15
26 Implementation af Monitors Semantik: 1. Gensidig udelukkelse omkring udførelse af monitorprocedurer. 2. Ved c.wait blokerer processen på wait-queue for c. 3. Ved c.signal frigives en proces fra wait-queue for c hvis den ikke er tom, og processen blokerer på signal-queue for monitoren. 4. Når monitorproceduren forlades eller c.wait udføres frigives en proces i signalkøen, såfremt den ikke er tom. Implementation: mutex: Binær semafor for gensidig udelukkelse. condsem_c: Binær semafor for blokering på wait-queue for c. condcnt_c: Antal processer i wait-queue for c. urgent: Binær semafor for blokering på signal-queue. urgentcnt: Antal processer i signal-queue for c. dopsys 16
27 Initialisering: Implementation (1) mutex = 1; condsem_c = 0; concnt_c =0; urgent = 0; urgentcnt = 0; Enter/exit kode: 1. Gensidig udelukkelse omkring udførelse af monitorprocedurer. 4. Når monitorproceduren forlades eller c.wait udføres, frigives en proces i signal-queue såfremt den ikke er tom. lock(mutex); procedure_body; if (urgentcnt) unlock(urgent) else unlock(mutex) dopsys 17
28 c.signal: c.wait: condcnt_c = condcnt_c + 1; if (urgentcnt > 0) unlock(urgent); else unlock(mutex); lock(condsem_c); condcnt_c = condcnt_c 1; Implementation (2) if (condcnt_c > 0) { urgentcnt = urgentcnt + 1; unlock(condsem_c); lock(urgent); urgent_cnt = urgentcnt 1; 3. c.signal: Når wait-queue for c ikke er tom frigives en proces herfra og processen blokerer på signal-queue for monitoren. 2. c.wait: bloker processen på waitqueue for betingelsesvariablen c. 4. Når monitorproceduren forlades eller c.wait udføres frigives en proces fra signal-queue såfremt den ikke er tom. dopsys 18
29 [Click] lock(mutex); procedure_body; if (urgentcnt) unlock(urgent) else unlock(mutex) c.wait: condcnt_c = condcnt_c + 1; if (urgentcnt > 0) unlock(urgent); else unlock(mutex); lock(condsem_c); condcnt_c = condcnt_c 1; c.signal: if (condcnt_c > 0) { urgentcnt = urgentcnt + 1; unlock(condsem_c); lock(urgent); urgent_cnt = urgentcnt 1; Hvorfor kan vi bryde lock/unlockbalancen?! A. Balance er unødvendig, der kan være flere unlocks end locks B. Det er nok at lock/ unlock balancerer, evt. på forskellige mutexes C. Lock/unlock balancerer på samme mutex henover flere kald D. Ved ikke dopsys 18
30 spørgsmål om implementation af monitors? dopsys 19
31 Kommunikation.. kan understøtte koordinering, men bruger det også Primitiver: send(p,m) send besked m til proces p. receive(q,m) modtag besked m fra proces q. Buffering i user space: Buffering i kernel space: Operationer: Blocking/Non-blocking Synkron/Asynkron dopsys 20
32 Interrupt-sekvens Hardware brug: Hardwaren sættes op (Init), kører i parallel med CPU, og p blokerer sig selv Hardwaren genererer interrupt, Interrupt Handler (IH) afvikles, RTI frigør p Generelt er billedet lidt kaotisk: ligner flere GOTO efter hinanden dopsys 21
33 Interrupt organiseret om Monitor Hardware brug: Hardware-processen og CPU-processen p er blot to processer for monitoren Init frigør hardware-processen, og p venter med wait som altid i en monitor Billedet mere klart og forståeligt - dog ikke nødvendigvis implementerbart dopsys 22
34 Opsummering Koordinering: Disable/enable interrupts Test-and-set instruktion Impl. af binære semaforer (mutex) med spinlocks. Impl. af tællesemaforer med spinlock hhv. scheduler. Monitors. Kommunikation: Via delt lager/buffere stillet til rådighed af operativsystemet. Interrupts: Direkte beskrivelse lidt kaotisk. Monitorbegreb organiserer aktiviteten, i princippet. dopsys 23
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 mereDeadlocks 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 mereProcesser og koordinering. dopsys 1
Processer og koordinering dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne): Multiprogrammering og time-sharing (60 erne): dopsys 2 Motivation.. parallelle
Læs mereSchedulering. 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 mereSchedulering. 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 merePlanen 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 mereProcesser 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 mereProcesser og koordinering
Processer og koordinering.. fortsat dopsys 1 Betingelsesvariabler (Condition variables).. hukommelsesløs variant af semaphorer: Atomare operationer: Signal bruges til at sende et signal. Wait bruges til
Læs mereSider 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 mereOperativsystemer - dopsys
Operativsystemer - dopsys Erik Ernst eernst@cs.au.dk dopsys 1 Q/A Mange deltagere er nu på 2. år af datalogistudiet, med dcomnet 1 for år siden Er din baggrund anderledes? dopsys 2 Praktiske oplysninger
Læs mereSider 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 mere1 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 merePrincipper for Samtidighed og Styresystemer
Principper for Samtidighed og Styresystemer Synkronisering og Deadlocks René Rydhof Hansen Februar 2008 PSS 08 (Forelæsning 03) Synkronisering og Deadlocks Februar 2008 1 / 33 Skemaændringer Forelæsning
Læs mereInput/Output: Disk & Clock. dopsys
Input/Output: Disk & Clock dopsys Magnetiske diske Spiller en vigtig rolle for mange typer computere Persistens, lagringstæthed, pris, hastighed, holdbarhed, fejltyper,...: OK! Afgørende for opstart (tungt
Læs mereOperativsystemer - dopsys. Erik Ernst
Operativsystemer - dopsys Erik Ernst eernst@cs.au.dk [Q/A] Mange deltagere er nu på 2. år af datalogistudiet eller cand.it., med dcomnet Er din baggrund anderledes? dopsys 2 Praktiske oplysninger http://cs.au.dk/dopsys
Læs mereDesign Systemkald. User-mode Linux, The Linux kernel/325-2004
Tracing tråden afbryder systemkaldet via ptrace Systemkaldet til værten ændres til getpid Processens stak manipuleres til at kalde kernen Kernen returnerer til processen Design Systemkald Design Startup/shutdown
Læs merePrincipper 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 mereSynkronisering af sekventielle processer
Synkronisering af sekventielle processer Klaus Hansen, Niels Elgaard Larsen, Maz Spork, Jørgen Sværke Hansen 15. februar 2005 1 Introduktion Ved en multiprogram forstår vi et program, hvori vi kan specificere,
Læs mereStyresystemer 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 merePlanen 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 mereSchedulering. 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 mere26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.
26 Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler. Hvad er programverifikation? Bevisregel for 'tom kommando'. Bevisregel for assignment. Bevisregler for selektive
Læs merePrincipper for Samtidighed og Styresystemer
Principper for Samtidighed og Styresystemer Kursusgang 12: Device drivere mt@cs.aau.dk Ph.D.-studerende Distribuerede og Indlejrede Systemer Institut for Datalogi Aalborg Universitet 17. maj 2010 Intro
Læs mereOperativsystemer - dopsys. Erik Ernst
Operativsystemer - dopsys Erik Ernst eernst@cs.au.dk [Q/A] Mange deltagere er nu på 2. år af datalogistudiet eller cand.it., med dcomnet En del har IT-erhvervserfaring Hvad med dig? dopsys 2 Praktiske
Læs mereAnalyse og design af Indlejrede Systemer. v/ Jens Dalsgaard Nielsen Henrik Schiøler Mads Dore alle Afdeling for Proceskontrol
Analyse og design af Indlejrede Systemer v/ Jens Dalsgaard Nielsen Henrik Schiøler Mads Dore alle Afdeling for Proceskontrol 1 kursusindhold... Del 1: 5 mm Parallelitet, multiprogrammering, OS services
Læs merePlanen for idag. Opdatering af delt lager
Planen for idag Synkronisering: Tidsafhængighed i multiprogrammer Semaforer: Binære semaforer Tælle semaforer Grænseflader: Hvordan implementeres systemkald Tidsafhængighed i multiprogrammer proces læser
Læs mereParallelle algoritmer
Parallelle algoritmer 1 Von Neumann s model John von Neumann 1903-57 Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én
Læs mereAlgorithms & 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 mereLageradministration. dopsys
Lageradministration 1 Lageret i maskinarkitekturen Beregningsenhed, lagre (registre, RAM, disk), ydre enheder 2 Abstraktion over typerne: et hierarki En maskine har flere forskellige lagre Operativsystemet
Læs mere0.1 Modultest af hardware
0.1 Modultest af hardware Hardwaren af M2 testes ved, at de enkelte blokke først testes hver for sig, og derefter testes det, om hele modulet virker. TS2-monitoren brændes i ROM, og ved at forbinde M2
Læs mereSystemkald i Unix/Linux
Systemkald i Unix/Linux 1 Operativsystemet Fra proces: OS som værktøjskasse: tilgængelig via systemkald... OS som resurseadministrator, abstrakt/virtuel maskine: CPU: processer, tråde, schedulering I/O:
Læs mereDATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
Læs mereBits DM534. Rolf Fagerberg, 2012
Bits DM534 Rolf Fagerberg, 2012 Resume af sidst Overblik over kursus Introduktion. Tre pointer: Datalogi er menneskeskabt og dynamisk. Tidslinie over fremskridt mht. ideer og hardware. Algoritme er et
Læs mereNavn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:
Side 1 af 13 Dato: 03-06-03 Til Sigurd Som aftalt får du nu tilbygningen til 80C535 kittet, keyboard og programmet med programopdatering. Den sidste opgave her, gik så ud på at tilslutte et tastatur, og
Læs mere//--------------------------------- Definition af porte og funktioner -------------------------
Temeraturmåler (C-program).txt // Initialiserings-sekvens #include #pragma model=medium #pragma code=0x0000 #pragma xdata=0x4000 #pragma asm=on #pragma parameters=register //#define display P4
Læs mereInput/Output: Brugergrænseflader. dopsys
Input/Output: Brugergrænseflader dopsys Interaktion med bruger Visse devices lægger et fundamentalt sæt af spilleregler for vores brug af computere Generisk tilbagemelding, hvad laver den : Billedskærm
Læs mereInterrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK
Programmering for begyndere Brug af Arduino Programmeringskursus Interrupt - Arduino EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Interrupts Programmeringskursus Genbrug Interrupts Betyder blot at man afbryder
Læs mereAnalyse og design af Indlejrede Systemer. v/ Jens Dalsgaard Nielsen Henrik Schiøler alle Afdeling for Proceskontrol
Analyse og design af Indlejrede Systemer v/ Jens Dalsgaard Nielsen Henrik Schiøler alle Afdeling for Proceskontrol 1 kursusindhold... Introduktion til parallellitet og multiprogrammering Analyse, modellering,
Læs mereOperativsystemer. Tobias Brixen Q2-2012
Operativsystemer Tobias Brixen Q2-2012 1 Contents 1 Operativsystermer - oversigt 4 1.1 OS som abstrakt og virtualiseret maskine, og som resurseadministrator................................ 4 1.2 Systemkald..............................
Læs mereKoncept for systemforvaltning af den fælles open source kode, herunder procedure for opfølgning på software-versioner af OpenTele
LEVERANCE 2.1 Koncept for systemforvaltning af den fælles open source kode, herunder procedure for opfølgning på software-versioner af OpenTele Konceptet beskriver, hvordan koden forvaltes, og hvordan
Læs mereFilsystemer: Anvendelse. dopsys
Filsystemer: Anvendelse 1 Lageret er hierarkisk - Fokus: disk Sekundært lager er nødvendigt: Data i RAM forsvinder når processer terminerer o.lign. Og der er også brug for pladsen 2 Lageret er hierarkisk
Læs mereNoter til C# Programmering Iteration
Noter til C# Programmering Iteration Programflow Programmer udfører det meste af deres arbejde vha. forgrening og løkker. Løkker Mange programmeringsproblemer kan løses ved at gentage en handling på de
Læs mereMandatory Assignment 1
Mandatory Assignment 1 Morten Franck Peter Hansen 9. oktober 2003 Gruppe 4, Parallelle Systemer (02220) Indhold 1 Trin 1 Petri Net 1 1.1 Model af pass().................................... 1 1.2 Model
Læs mereDATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag den 7. juni 2002 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse bedømmes som en helhed.
Læs mereAlgoritmeskabeloner: Sweep- og søgealgoritmer C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte
Læs mereSystemkald DM14. 1. Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111
DM14 1. Obligatoriske opgave Systemkald Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111 Side 1 af 5 Intro: Formålet med opgaven at et lave en system kald
Læs mereOperativsystemer of C Efterår 2013 Virtuel hukommelse (kap. 9)
Operativsystemer of C Efterår Virtuel hukommelse (kap. 9) 8// Planen for idag q Virtuel hukommelse. q Demand paging / page faults. q Sideudskiftningsalgoritmer. q Rammeallokering til processer. Ø Øvelser:
Læs mereModern Concurrency Abstractions for C#
Modern Concurrency Abstractions for C# Nick Benton Luca Cardelli Cédric Fournet Presenter: Henrik Kragh-Hansen September 27, 2007 Motivation for concurrency Forbedring af concurrency Baggrundsinformation
Læs mereScheduling. 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 mereKerner med afbrydelser. Planen for i dag. Kerne med afbrydelser. Tætkoblede drivprogrammer. Uheldig rækkefølge. Synkronisering med ydre enheder
Planen for i dag Repetition af kerner med r Kerner med tvungent processkift Præsentation af K1 Kerner med r Vi erstattede aktiv venten med: ventende processer placeres i ventekøer r aktiverer ventede processer
Læs mereLærebog. Datalogi 1F Forår 2003. Hvad sker hvornår? Kursusbøger. Planen for idag. Hvad er et operativsystem
Lærebog Datalogi 1F Forår 2003 Operativsystemer og multiprogrammering Jørgen Sværke Hansen Silberschatz, Galvin, Gagne: Operating System Concepts, 6. udgave (med Windows XP opdatering) Har I 6. udgave
Læs mereReal-time programming safety in Java and Ada
Real-time programming safety in Java and Ada Bo Sandén Presenter: Thomas Bøgholm 25. oktober 2007 Forfatteren Artiklen Synkroniserings Begreber Bo Sandén Professor på Colorado Technical University Beskæftiger
Læs mereKursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing
Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt
Læs mereSpecifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api
Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...
Læs mereLageradministration Paging og segmentering
Lageradministration Paging og segmentering 1 Re: Logiske/fysiske adresser... Proces-struktur = kode og data for en proces 4G En proces tilgår sin proces-struktur via et logisk/virtuelt adresserum, fx 0,
Læs mereStyresystemer og tjenester
Styresystemer og tjenester Indhold: 1. Introduktion til styresystemer 2. Processer og tråde 3. Synkroniseringsmetoder og IPC 4. Memory management 5. IO og devicedrivere 6. Analyse og design af embedded
Læs mereDag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Læs mereProgrammering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen
Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen
Læs mereProcesser. DS kursusgang nr. 2: Procestræer. ps: Vis processer
DS kursusgang nr. 2: Processer 1. Definition af processer/tråde? eksemplificeret med fork() og exec() (procesdannelse i C under unix) 2. C vs. Java (overordnet + funktioner) 3. Processer vs. tråde: Server:
Læs mereTypisk PC arkitektur. Synkronisering ved aktiv venten
Oversigt I/O arkitektur Kommunikation mellem processor og ydre enhed Brugerprocessers adgang til I/O Strukturen af kernens I/O del Ydelse Typisk C arkitektur Kontrol af ydre enheder De ydre enheder styres
Læs mereOOP e uge kursusgang: Samtidighed (II) Safety = sikkerhed. Safety
= sikkerhed I denne sammenhæng: = "trådsikkerhed" " conditions.. stipulate that nothing bad will ever happen" (XP s. 377) Trådsikkerhed betyder sikkerhed mod inkonsistens pga. flertrådning ikke f.eks.
Læs mereFilsystemer. dopsys. fredag den 26. november 2010
Filsystemer 1 Lageret er hierarkisk - Fokus: disk Sekundært lager er nødvendigt: Data i RAM forsvinder når processer terminerer o.lign. Og der er også brug for pladsen 2 Lageret er hierarkisk - Fokus:
Læs mereIndhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...
Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens
Læs mereVidar Jon Bauge. Notater til Teknik. Datamatikeruddannelsen efterår 2005 Side 1 af 54
Notater til Teknik 2005 Datamatikeruddannelsen efterår 2005 Side 1 af 54 Indholdsfortegnelse Operativsystemer......4 Batch systemer......4 Time-sharing systemer......4 Computer Systemer......6 I/O struktur......6
Læs mereDM14-1. Obligatorisk opgave F.06. System Call. Jacob Aae Mikkelsen Ingen andre gruppe medlemmer. 6. marts 2005
- 1. Obligatorisk opgave F.06 System Call Jacob Aae Mikkelsen - 191076 Ingen andre gruppe medlemmer 6. marts 2005 1 Indhold 1 Opgave beskrivelse 2 2 Analyse 2 2.1 Hukommelses allokering.....................
Læs mereLageret er hierarkisk fokus nu: disk
Filsystemer Lageret er hierarkisk fokus nu: disk Sekundært lager er nødvendigt: Data i RAM forsvinder når processer terminerer o.lign. Og der er også brug for pladsen Top-down: Hvad er en fi l? Er en fi
Læs mereIntroduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer
Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt
Læs mereRx: Treating bugs as allergies a safe method to survive software failures. DIKU, Datalogisk Institut, Københavns Universitet 04/01/2006
Rx: Treating bugs as allergies a safe method to survive software failures DIKU, Datalogisk Institut, Københavns Universitet 04/01/2006 Præsentation af Jacob Munk-Stander & Lauge Wulff Rx Grund-ide: Hvis
Læs mereComposable Memory Transactions
Composable Memory Transactions Tim Harris, Simon Marlow, Simon Peyton Jones, Maurice Herlihy November 1, 2007 Præsenteret af Simon H. Thøgersen Forfatterne Ansat ved Microsoft Research, Cambridge Tim Harris
Læs mereStatusrapport. Rapportperiode: Juli Queue: Telefoni
Statusrapport Rapportperiode: Juli Queue: Telefoni 1 Introduktion Dette dokument er statusrapport afleveret af Digitaliseringsstyrelsens support til Grønlands Selvstyre. Alle Sager i denne rapport er kategoriseret
Læs mereSystemvalg. Oversigt og teknikker. Kapitel 2
Systemvalg Oversigt og teknikker Kapitel 2 1 Mathiassen, Munk-Madsen, Nielsen & Stage, 1997 Træd et skridt tilbage! Hvad skal der gøres? Hvad handler det om? Objektsystem Edb-system Bruger Problemområde
Læs mereInterconnect. Front end interface
Direct Remote Access to Devices (DREAD) Introduktion These Metode Baggrund Prototypen Resultater Konklusioner Kritik og fremtidigt arbejde 5. december 2000 Direct Remote Access to Devices slide 1 Klynger
Læs mereDATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag den 7. juni 2002
Københavns Universitet Naturvidenskabelig Embedseksamen DTLOGI 1E Vejledende løsninger til Skriftlig eksamen fredag den 7. juni 2002 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse
Læs mereIntroduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer
Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt
Læs mereDATALOGISK 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 mereAlgoritmedesign 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 mere22 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 mereNavn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003
Side 1 af 8 Dato: 14-05-2003 Til Sigurd Som aftalt vil jeg her fremsende vores program til vores 80C535 kit og display. Det gik jo ud på at vi skulle starte med at få den til at intialiserer displayet,
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n
Eksamen. kvarter 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) Ja Nej n er O(n )? n er O(n )? n er O(n + 0 n)? n + n er O(n )? n log n er Ω(n )? Opgave (%) Opskriv følgende funktioner
Læs mereCommon Language Runtime. Multithreading
Common Language Runtime Multithreading Multithreading i.net Dedicated threads Programmøren kontrollerer starttidspunkt, levetid m.m. for den enkelte thread. Pooled threads Threads lånes fra en pulje af
Læs mereIntroduktion til datastrukturer
Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller Philip Bille Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller
Læs mereForén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.
Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening
Læs mereNøglehåndtering. Sikkerhed04, Aften
Basalt problem Al kryptografisk sikkerhed er baseret på nøgler som ikke er kryptografisk beskyttet I stedet må disse nøgler beskyttes fysisk 2 Løsninger Passwords noget du ved Hardware noget du har Biometri
Læs mereFMK i kommunerne: Kommunernes parathed & KKR/KL samarbejde. Juni 2013
FMK i kommunerne: Kommunernes parathed & KKR/KL samarbejde Juni 2013 Overordnet plan for FMK impl. Integrationsprojektet Pilotprojekt med 3 pilotkommuner og 3 EOJleverandører Mobilisering Mobilisering
Læs mereBlockprog Rev1.0. Block programmering CS1/CJ1. Qiuck guide OMRON
Blockprog Rev1.0 Block programmering CS1/CJ1 Qiuck guide OMRON Indholdsfortegnelse 1. SPECIFIKATION... 3 2. PROGRAMMERINGS INSTRUKTIONER.... 4 3. BLOK PROGRAMMERING... 5 3.1. BPRG OG BEND... 5 4. BETINGELSES
Læs mereSoftware Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Læs mereSchedulering af SAS job i MS Task Scheduler, som sender e-mail med log og statuskode ved fejl
Schedulering af SAS job i MS Task Scheduler, som sender e-mail med log og statuskode ved fejl Eksemplet består af 2 dele, et SAS program der fejler, samt et Powershell script til at eksekvere SASprogrammet
Læs mereForén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.
Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening
Læs mereStyresystemer 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 mereconst int disponibel_10= 10; const int disponibel_11= 11; const int disponibel_12= 12; const int blinkled = 13; // pin 13 er LED på NANO
Styring_af_analog_repeater_OZ1LN_07-04-2018_v_1_07 device Arduino NANO fra v 1.06_j kræves Starttid bærebølge for valid pilottone ved start fra v 1.06_j kræves ResetTid uden bærebølge ved genstart efter
Læs mereLageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder
Lageradministration Lageret i maskinarkitekturen Beregningsenhed, lagre (registre, RAM, disk), ydre enheder Abstraktion over typerne: et hierarki En maskine har fl ere forskellige lagre Operativsystemet
Læs mereInternt interrupt - Arduino
Programmering for begyndere Brug af Arduino Internt interrupt - Arduino - Afslutning EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Intern interrupt Jeg vil rydde lidt op. Her er nogle punkter vil har glemt
Læs mereComponent based software enginering Diku 2005 Kritikopgave
Component based software enginering Diku 2005 Kritikopgave Nicolas Møller Henschel 17. april 2005 1 Indhold 1 Indledning 3 2 Indhold 3 2.1 Introduktionen.......................... 3 2.1.1 Mangler..........................
Læs mereThe ADSL-optimizer: Korrekt trafikstyring på ADSL linier
The ADSL-optimizer: Korrekt trafikstyring på ADSL linier Trafikstyring i bolignet d.8/6-2005 Foredrag: Baseret på mit datalogi speciale af Jesper Dangaard Brouer Cand. Scient Datalog Datalogisk
Læs mereDefinition : 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 mereLego MindstormTM Netværk DROP TM
Lego MindstormTM Netværk DROP TM Gruppe E2-111 Thomas Ledet Søren Nøhr Christensen Mads Wiederholdt Jensen Jens Gorm Rye-Andersen Dennis Micheelsen Kim Enevold Jensen Vejleder Brian Nielsen Faculty of
Læs mereDATALOGI 1F. Skriftlig eksamen tirsdag den 27. januar 2004
Københavns Universitet Naturvidenskabelig Bachelorseksamen DATALOGI 1F Skriftlig eksamen tirsdag den 27. januar 2004 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse bedømmes som
Læs mere1 Sammenfatning 3. 5 Afprøvning 24 5.1 Forventede uddata for obligatoriske afprøvningstilfælde... 24 5.2 Overholdelse af grænseflade...
Indhold 1 Sammenfatning 3 2 Analyse 4 2.1 Opprettelse og afslutning af tråde................... 4 2.2 Trådbeskrivelser............................. 4 2.3 Trådskedulering............................. 5
Læs mereÅrsagen til fejl. Erkendelse af fejl. Håndtering af fejl.
9 Fejlhåndtering Årsagen til fejl Erkelse af fejl Håndtering af fejl Fejlerkelse og -håndtering i objekt-orienterede sprog Fejlerkelse og -håndtering i Eiffel Udbredelse af fejl i Eiffel Nuanceret fejlhåndtering
Læs mereComputerarkitektur. - en introduktion til computerarkitektur med LINDA
Computerarkitektur - en introduktion til computerarkitektur med LINDA faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig
Læs mere