syftar till att förbättra prestanda. Den kan avse något eller flera av följande mått.

Storlek: px
Starta visningen från sidan:

Download "syftar till att förbättra prestanda. Den kan avse något eller flera av följande mått."

Transkript

1 Allmänt Vid multiprogrammering kan det vara önskvärt att anpassa systemets beteende till olika tillämpningars behov. En anledning till multiprogrammering var att man önskade öka genomströmningen. Antag tre jobb, vardera bestående av tre faser, givna: inmatning, beräkning och utmatning. Tiderna för respektive operation är för de tre jobben 1, 1, och 10, 1, 10 och 1 respektive 10, 1 och 1. Satsvis bearbetning skulle ge en totaltid 36 för de tre jobben. Eftersom de tre faserna i jobben utnyttjar olika resurser kan operationerna överlappas. Jobb är en beteckning på vad som idag kallas process och härstammar från tiden med satsvisbearbetning under multiprogrammering. /Schemaläggning ('Scheduling'): Intervall Inmatning Beräkning Utmatning 0-1 Jobb Jobb 2 Jobb Jobb 3 Jobb 2 Jobb Jobb 3 Jobb Jobb 3 Med denna multiprogrammering kan totaltiden reduceras till 14. Denna högst avsevärda vinst beror på att blandningen av jobb i detta exempel är överdrivet bra, men resonemanget har ändå en poäng Begrepp Schemaläggningen av processer brukar struktureras 'Dispatcher' Denna modul i kärnan i operativsystemet handhar bara själva igångsättandet av processer. Modulen väljer alltid att köra den process som 'short term scheduler' placerat först i redolistan 'Short term scheduler' Denna del av operativsystemet hanterar blandningen av aktiva processer i exekverande, redo och korttidsblockerat tillstånd. Förutsättningen är att processernas aktiva namnrum är allokerat till primärminnet: Blockerandetillstånden avser semaforlistor eller dylika korttids väntetillstånd 'Medium term scheduler' Denna del väljer ut de processer som ska vara aktiva. Väntetillstånd vars orsaker är mer långtidsverkande införs tex för processer som väntar på långsam in/ut-matning eller på att få processdelar (tex sidor) inlästa till primärminnet. Under vissa förutsättningar kan det vara viktigt att begränsa antalet aktiva processer (se Minnesallokering; 'Thrashing') 'Long term scheduler' I multiprogrammerade kövisbearbetande system sekvenseras hela jobb ('spooling') och dessas in/ut-sekvenser på långsamma medier som skrivare på skivminne innan de blir föremål för egentlig schemaläggning. Långtidsschemaläggaren har kontroll över sådana jobb Schemaläggningen syftar till att förbättra prestanda. Den kan avse något eller flera av följande mått.

2 72 i. Processorutnyttjande ('cpu utilization'). Detta brukar mätas i % (av reell tid). Oftast gäller att detta ökas då graden av multiprogrammering ökas. Ett 'overhead' (tid som operativsystemet utnyttjar för resursplanering) brukar vara i storleksordningen 1-10%. ii. Genomströmning ('through put'). Detta mått beskriver hur många processer som per tidsenhet exekveras klart av systemet. iii. Processtid ('process time'). Tiden mellan det att en process anländer till systemet till dess processen är avslutad. Oftast är det mer intressant att mäta medelvärdet av processtiderna. iv. Väntetid ('waiting time'). Den tid processer måste vänta på att få tillgång till resurser. Väntetiden uppstår på grund av att resurser delas. Processtiden blir summan av denna väntetid och processens exekveringstid. v. Svarstid ('response time'). Intressant vid interaktiva och realtids- tillämpningar. Denna tid R i sammansätts av den tid det tar för processen att utföra en begäran C i, den tid processen är blockerad i väntan på icke tillgänliga resurser B i och den tid processen måste vänta i redolistan då andra processer exekverar I i ; R i = C i + B i + I i. Tiden I i beror i sin tur på process- och väntetid för högre prioriterade processer. Observera att måtten (delvis) är ömsesidigt beroende. Ett högt cpu-utnyttjande leder tex (ofta) till längre svarstid Algoritmer De tre viktigaste typerna av algoritmer är - Algoritmer som bygger på prioritet. - Algoritmen 'round robin'. ('Robin' betyder rödhake och 'round robin' är ett spel/en lek, tror jag.) - Tidstyrning Högsta prioritet först (HPF) En prioritet (som kodas i processbeskrivningen) används för att sortera redolistan. Algoritmerna i denna klass kan användas på två sätt. -- 'preemptive' eller -- icke 'preemptive'. I det första undersöks och sorteras redolistan vid varje avbrott eller 'trap' så att färskast möjliga information utnyttjas. I det andra fallet körs en påbörjad process till dess den blir helt klar, gör fel eller blockerar sig själv oberoende av om det under tiden har inträffat att någon tidigare blockerad process med högre prioritet anlänt till redolistan. Prioriteten kan sättas på tre sätt: i. Fix prioritet. Alla processer tilldelas en prioritet när de skapas endera av operativsystemet eller av användaren. ii. Halvdynamisk prioritet. Prioriteten kan förändras av användaren via systemanrop eller kommandon. iii. Dynamisk prioritet. Prioriteten ändras av operativsystemet under processens aktiva liv tex genom att låta den vara a(t) i blockerat tillstånd och b(t) i exekverande tillstånd, där t är tiden och a och b givna (enkla, tex linjära) funktioner.

3 73 Den metod som alltid ger den minsta medelväntetiden är 'shortest job first' (SJF). Prioriteten är det inverterade värdet av processens (resterande) exekveringstid. Denna måste i praktiken uppskattas. Metoden 'first come first served' (FCFS) är icke-preemptive och bygger på att först anländ process åsätts högst prioritet. Operativsystem för realtidstillämpningar brukar bygga på halvdynamisk HPF. Realtidstillämpningar är ofta cykliska; de ska exekvera under vissa intervall. I 'rate monotonic scheduling' (RMS) sätts prioriterna i omvänd proportion till exekveringsintervallet hos processerna. utan hänsynstagande till processernas "viktighet" eller varaktighet 'Round robin' (RR) Detta är en tidstyrd 'preemptive' metod. Redolistan ordnas FCFS. Processer tillåts exekvera högst ett sk tidskvantum eller 'time slice'. Om processen inte är klar eller inte begår fel eller inte blockerar sig själv under ett tidskvantum placeras den sist i redolistan och nästa process väljes. Tidskvanta brukar vara i storleksordningen 0.01 till 1 sekund. Stora tidskvanta gör att metoden urartar till FCFS. Korta tidskvanta gör att mycket tid åtgår till processbyten. Metoden används då alla processer ska ges samma tjänst, tex i tiddelningssystem ('time sharing'). Tidskvantum kan anpassas efter (minskas med) antalet aktiva processer; metoden kallas då cyklisk 'round robin'; fler processer ger kortare tidskvantum, dock måste en undre gräns sättas så att inte det 'overhead' som processbytena medför blir orimligt stort. Exempel: Om ett processbyte tar s tidsenheter och om man vill att varje process ska köras var t:te tidsenhet samtidigt som 'overhead' ska minimeras bör man alltså välja tidskvantum q = t/n - s, om det finns n stycken aktiva processer. Tiden (s+q)*n skall vara t och q så stort som möjligt. Metoderna RR och HPF kan kombineras. Det är möjligt att tänka sig flera redolistor; en per prioritet och inom varje lista avvända RR. Det är också möjligt att använda tidstyrda dynamiska prioriteter för att efterlikna ett RR-beteende Tidstyrning Detta innebär att processerna via systemanrop eller användaren via kommandon anger 'scheduling times'. Vanligt är att kunna ange - tidigast tid. - senast tid. - intervall. I detta fall är det ju egentligen användaren som svarar för schemaläggningen. Operativsystemet ger avsedd schemaläggning via tidslistan. Kombinerat med halvdynamiska prioriteter är detta exakt vad som brukar användas i realtids[operativ]system. De olika algoritmerna påverkar de givna prestandamåtten i olika hänseenden Schemaläggning i VMS I systemet VMS används i grunden prioriteter: Prioriteter tilldelas fixt till realtidsprocesser. Prioriteter 15-0 varieras dynamiskt för interaktiva tidsdelade processer. Sådana processer tilldelas en bas-prioritet (minimumprioritet). Till varje systemhändelse associeras en prioritetsökning (pö). Exempelvis har en avslutatad interaktiv i/o operation högre pö än en avslutad diskoperation. När en process väcks på grund av en händelse adderas pö till prioriteten för att bilda aktuell prioritet. Interaktiva processer exekveras längs ett tidskvantum. När en sådant tilländalupit minskas aktuell prioritet med 1. Vid varje händelse körs alltid den process som har högst prioritet. Realtidsprocesser körs till dess de är klara eller på annat sätt blockerar sig själva.

4 Exempel Figur 4.1 visar hur val av algoritm påverkar medelvärdet av processtiden. Observera att detta mått är bara ett av flera som kan vara värt att studera. Giver är tre processer enligt följande Process nr Ankomsttid Längd Prioritet medium låg hög För olika metoder erhålls följande scheman. Processtid medelvärde SJF p2 p3 p1 tid FCFS RR (q=1) p1 p2 p3 p1 p2 p3 p1 p2 p3 p1 p3 p RR(q 4) Precis som FCFS HPFS p3 p1 p Figur 4.1 Exempel på schemaläggning Systemanrop I samband med processers schemaläggning används följande systemanrop. - create-process och delete process. Innebörden är att pcb-er skapas respektive tas bort. - activate-process ('schedule' eventuellt med tidsangivelser). - passivate-process ('suspend'). - request/release resource. Anrop som svarar mot P/V operationer på (binära) semaforer. - set-priority. - set-time.slice. - anrop för kommunikation synkronisering ömsesidigt uteslutande. I realtidssystem brukar dessutom förekomma en mängd anrop som avser möjligher att styra in- och utmatning i detalj. Följande är en fullständig lista från ETT verkligt (litet) realtidsoperativsystem. - Synkron och asynkron läsning och skrivning (5 systemanrop). - In/utmatningskontroller (4 systemanrop) - Allokera och frisläpp utrymme på disk (5 systemanrop). - Avsluta, blockera, ladda in och schemalägg processer (7 systemanrop). - Ange reell tid (1 systemanrop). - Tidstyrd schemaläggning (2 systemanrop). - Skicka en "sträng" till en annan process (1 systemanrop). - Lås och frisläpp resurser/enheter (3 anrop).

5 Baklås Fenomenet betyder att två eller fler processer har tilldelats och begär resurser så att de aktuella processerna kommer att bli blockerade för alltid. Tre villkor är nödvändiga för att baklås ska uppstå: i. Resurserna är exklusivt kontrollerade, dvs föremål för ömsesidigt uteslutande. ii. Resurserna är 'non-preemptive', dvs kan bara frisläppas av den process som begärde resursen. iii. Resurserna efterfrågas cirkulärt. Ett specialfall är 'hold and wait' som innebär att processer håller resurs(er) och väntar på fler. Figur 4.2 illustrerar baklåsvillkoren. 4 3 Södergående trafik stannar vid 4 pga västergående trafik som är blockerad vid 2, etc -- cirkulärt Korsningarna 1, 2, 3 och 4 är 1 2 A. föremål för öu (endast en bil ryms) B. 'non preemptible' (bara den som står i korsningen kan frisläppa den) och C. en cirkulär väntan föreligger A, B och C är de nödvändiga och tillräckliga baklåsvillkoren Figur 4.2 Baklås i en trafikmiljö För att bemästra baklåsfenomenet är några olika metoder tänkbara. Hanteringen inkorporeras i de systemanrop som handhar resursreserveringar och frisläppningar av tex enheter, minne, filer och "lås" Förhindrande av baklås ('prevention') Detta innebär att användaren eller operativsystemet ser till att minst ett av de nödvändiga baklåsvillkoren inte uppfylls. Villkor i. är svårt att neka eftersom många resurser tex yttre enheter inherent är odelbara. Villkor ii. går principiellt alltid att neka, men det skulle ofta leda till för mycket 'overhead'. Villkor iii. kan uteslutas genom att numrera alla resurser och endast tilldela resurser i nummerordning. Cirkulär väntan kan då inte uppstå, men metoden kan ge mycket 'overhead' (onödig resursreservering) och förutsätter att de resurser en process behöver är kända i förväg Undvikande av baklås ('avoidance') Om alla processers framtida resursbehov är känt kan baklås undvikas genom att se till att ingen sådan allokering sker att den i framtiden kan ge baklås. En algoritm som kallas 'bankers' algorithm' kan användas för återanvändbara resurser som allokeras i enheter. Varje process identifieras av ett index i i intervallet [1, N] och har maximumbehov maxdemand(i), sig redan tilldelat allocated(i) och återstående behov claim(i).

6 76 procedure banker's algorithm; unusedunits := totalunits; for i in [1,N] do unusedunits := unusedunits - allocated(i); claim(i) := maxdemand(i) - allocated(i); maynotfinish(i) := true; end for; flag := true; while flag do flag := false; for i in [1,N] do if maynotfinish(i) and claim(i) unusedunits then flag := true; maynotfinish(i) := false; unusedunits := unusedunits + allocated(i) end if; end for; end while; if unusedunits = totalunits then 'system is safe' else 'system is unsafe' end if; Tilldelning av en resursenhet sker endast om systemet är 'safe'. Figur 4.3 visar ett annat sätt att framställa undvikande av baklås. Resurs 1 frisläpps Virtuell tid för process 2 Godkänd "processväg" Resurs 2 frisläpps Resurs 1 behövs Resurs 2 behövs Osäkert ('unsafe') område Väg som leder till baklås Olämligt ('infeasible') område Om processerna schemaläggs så att vägen kommer in i det osäkra området så resulterar det i baklås, eftersom vägen är en icke-avtagande funktion. Om processerna schemaläggs så att vägen inte kommer in i det olämpliga området så undiker man baklås Resurs 1 behövs Resurs 2 behövs Resurs 1 frisläpps Resurs 2 frisläpps Virtuell tid för process 1 Figur 4.3 Baklåsillustration Upptäckt och återstart ('detect and recover') Tekniken innebär att operativsystemet genom att upprätthålla en beskrivning av allokeringstillståndet kan avgöra när ett baklås har inträffat. Om tillräcklig information om ett tidigare systemtilstånd är sparad kan systemt återstartas från detta. Nytt baklås undviks hoppeligen genom att systemet av processer har ett icke-deterministiskt beteende, dvs tar en alternativ exekveringsväg den andra gången. Om inte tillräcklig information kan sparas för återstart återstår att successivt avsluta processer till dess baklås inte längre finns eller att avallokera resurser eller resursenheter en efter en.

7 77 Upptäckt av låsning kan baseras på en sk precedensmatris. Antag att R i, 1 i m, är resurser som i helhet tilldelas processer P k, 1 k n. Om en process P k tilldelats en resurs R i säger vi att processen är omedelbar (eller första) precedent till resursen. Om en process P behöver en resurs R som redan (exklusivt) tilldelats en annan process Q, så säges P vara precedent till Q. P är då andre precedent till resursen R. Ett baklås föreligger om en process som tilldelats minst en resurs har sig själv som j:te precendent, j 2. Precendensmatrisen M framställs genom att som radindex använda P k och som kolumnindex använda R i och P k. Matrisen M, en n*(n + m)- matris, bildas genom att sätta M ij = 1 precis då i (en process) är en omedelbar precedent till j (resurs eller process) och 0 för övrigt. Matrisen delas upp i två submatriser M = [MR, MP]. Ett baklåstillstånd kan inträffa om det för någon potens MP e gäller att denna matris har minst ett diagonalelement = 1. Många föredrar att uttrycka ovanstående med hjälp av grafer i stället. Eftersom grafer kan uttryckas med (Booleska) matriser och omvänt, så blir uttrycksmedlen ekvivalenta. Figur 4.4 illustrerar. R1 R2 R3 P1 P2 P3 P4 P1 har R1, P2 har R2, R3 delas mellan P2 och P3. P2 och P4 väntar på R1 och P1 väntar på P2/R2. Precedensmatrisens två delar är = MR MP, så MP*MP*MP = Risk för baklås föreligger Figur 4.4 Precedens; graf och matris Strutsalgoritmen ('the ostrich algorithm') Innebär att man utgår från att sannolikheten för baklås är försumbar. Risk för baklås bortses ifrån. Man kör huvudet i sanden. Går det så går det. Metoden används i Unix Metoderna kan kombineras Exempel: I ett system kan 'swap'-utrymme på disk, yttre enheter som skrivare, primärminne och interna resurser som i/o-kanaler hanteras med olika strategier. 'Swap'-utrymme. Förhindrande genom förallokering är lämpligt. Undvikande är möjligt, men upptäckt och återstart går ju inte alls, eftersom 'swap'-utrymmet saknar 'back up'. Yttre enheter. Undvikande via 'precalaiming' är möjligt. Förhindrande via numrering också. Däremot är upptäckt återstart mycket olämpligt. Primärminne. Om vi använder 'swapping' är förhindrande genom att göra 'preempt' troligen det bästa valet. Undvikande ger för mycker 'overhead' för att vara attraktivt. Interna resurser. Eftersom dessa begärs och frisläpps relativt sett ofta, så är undvikande knappast tillrådligt. Ej heller upptäckt och återstart. Förhindrande via numrering är förmodligen bäst (det enda tänkbara?). Anmärkning: 'Spooling' kan mildra baklåsproblemet. När en/ett användare/program tror att den/det skriver på en yttre enhet (och därför "reserverar" den), så temporärskriver operativsystemts 'spooler' i stället data på en area på skivminnet. För varje enhet bildas köer av 'streams' som skriv ut tex enligt FIFO när enheten är ledig.

8 Processkoordination Schemaläggningen, processinteraktionen och baklåshanteringen måste ofta samplaneras. I detta avsnitt förutsätter vi en 'pre-emptive', hösta-prioritet-först-algoritm tex RMS. Inledningsvis anförs ett resultat avseende ett tillräckligt villkor för schemaläggning av cykliska processer med 'rate monotonic scheduling'. Sats. Ett system av periodiska processer {pr i }, i = 1,..., n, planerade under principen med prioritetstak kan schemaläggas (så att de utför hela sina respektive cykler med angiven frekvens) med RMS (pr 1 har högst och pr n har lägst prioritet) om för den sk 'utilization factor' U(n) gäller att U(n) Σ 1 i n c i /T i + max 1 i (n-1) {b i /T i } n(2 1/n - 1) där c i = exekveringstiden (i varje cykel) för pr i, T i = periodiciteten för pr i och där b i = den längsta blockerandetiden för pr i. Anmärkning. Om {pr i } inte samverkar blir b i = 0 för alla i. Ett viktigt specialfall av satsen. Notera också att lim n n(2 1/n - 1) = ln Prioritetsinversion Antag att pr1, pr2 och pr3 är tre processer med hög, medel respektive låg prioritet. Antag vidare att pr1 och pr3 innehåller kritiska avsnitt map samma kritiska resurser som "vaktas" av en semafor s. Om pr3 exekverar i sitt kritiska avsnitt och blir uppehållen ('pre-emption') pga pr1 blir redo så kommer pr1 att bli blockerad när pr1 önskar gå in i sitt kritiska avsnitt. Eftersom pr1 har högst prioritet skulle vi vilja att pr1 bleve blockerad högst så länge det krävs för pr3 att göra klart sitt kritiska avsnitt. Nu kan fördröjningen emellertid bli oförutsägbart lång pga att pr3 kan uppehållas ('pre-empt') av pr2. Den högst prioriterade processen pr1 kommer då att förbli blockerad till dess pr2 (och alla andra processer av mellanliggande prioriteter) är klara. Detta fenomen kallas prioritetsinversion (pi). Förslaget att förhindra pi genom att inte avbryta processer i kritiska avsnitt fungerar bara för korta kritiska avsnitt. Det skulle innebära att högt prioriterade processer stoppas pga att lägre prioriterade processser befinner sig i sina kritiska avsnitt och detta trots att processer med högre prioritet inte innehåller kritiska avsnitt (map samma resurs) Prioritetstak Ett protokoll ('priority ceiling') som finns för detta ändamå har följande egenskaper. - frihet från baklås och - begränsad prioritetsinversion. Två idéer ligger bakom: - Prioritetsarv: När prx blockerar exekvering av en process med högre prioritet så ärver prx prioriteten för den process som har högst prioritet av de blockerade. - Ett kritiskt avsnitt tillåts börja endast om det utförs med högre prioritet än eventuellt uppehållna andra kritiska avsnitts. Dessa principer inducerar en total ordning (för att förhindra baklås) i utförandet av kritiska avsnitt.

9 79 Tekniskt sett associeras till varje semafor s ett prioritetstak som är lika med den högsta prioriteten för de processer som kan låsa s. När en process prx önskar utföra ett kritiskt avsnitt så kommer den att bli avstannad såvida inte dess prioritet är högre än prioritetstaket för alla de semaforer som är låsta av andra processer än prx. Om prx pga detta inte kan gå in i sitt kritiska avsnitt så säger vi att den process som håller låset blockerar prx och låter denna ärva prx:s prioritet. Så länge prx inte försöker gå in i ett kritiskt avsnitt så kan den uppehålla ('pre-empt') en process med lägre prioritet. Detta protokoll garanterar att en högt prioriterad process blockeras av högst en lägre process' kritiska avsnitt. Det förhindrar också baklås. Ett exempel illusterar Exempel Antag givet pr1:... p(s1)... p(s2)... v(s2)... v(s1)... ; med hög (H) prioritet. pr2:... p(s2)... p(s1)... v(s1)... v(s2)... ; med låg (L) prioritet. Båda semaforernas prioritetstak blir H. Antag att pr2 kommer först och låser s2 vid tiden t0. Vid t1 (> t0) kommer pr1 igång och avbryter/uppehåller pr2 och kommer så småningom vid t2 att vilja låsa s1. Eftersom pr1:s prioritet inte är högre än den låsta semaforens s2 prioritetstak kommer pr1 att uppehållas utan att låsa s1. Processen pr2 ärver nu pr1:s prioritet (H) och fortsätter exekvera. Observera att pr1 under tiden är blockerad utanför sitt kritiska avsnitt. Eftersom pr1 inte låser s1 så förhindras baklås mellan pr1 och pr2. Senare, vid t3, när pr2 lämnar sitt kritiska avsnitt och återfår sin ursprungliga prioritet kommer pr2 att omedelbart avbrytas/uppehållas av pr1. Därefter kommer pr1 att exekvera klart innan sedemera pr2 kommer att gå klar. Se figur 4.5. Vill gå in i krit. avsnitt Utför både cs1 och cs2 pr1 pr1 väntar för att förhindra baklås t0 t1 t2 t3 låser s2 låser s1 släpper s1 pr2 släpper s2 tid Figur 4.5 Ärvda prioritetstak

10 80 Repetition 1. Schemaläggning 2. Prestandamått 1. 'Dispatcher' 1. cpu untyttjande 2. 'Short term scheduler' 2. genomströmning 3. 'Medium term scheduler' 3. processtid 4. 'Long term scheduler' 4. väntetid 5. 'Spooler' 5. svarstid 3. Algoritmer 4. Baklås Prioriteter Villkor 1. Fix 1. Odelbarhet 2. Ändringsbar 2. Oavbrytbarhet 3. Dynamisk 3. Cirkularitet Ex: FCFS, SJF, RMS Metoder 'Round robin' 1. Förhindrande Tidskvantum q; tex resursnumrering cyklisk variant 2. Undvikande Tidsstyrd tex 'banker's' algoritm intervall 3. Upptäckt och återstart givna tidpunkter 4. Kombinationer eller intet 5. Samordning - prioritetsinversion - prioritetstak Lösning till problemet med begränsad buffert i Ada95 Anropas från en task (producent) med My_Buffer: BUFFERING;... My_Buffer.PUT (X);... protected type BUFFERING is entry PUT (x: in ITEM); entry GET (x: out ITEM); private N: constant := 4513; A: array (1..N) of ITEM; I, J: integer range 1.. N := 1; COUNT: integer range 0.. N := 0; end BUFFERING; protected body BUFFERING is entry PUT (x: in ITEM) when COUNT < N is begin A(I) := x; I := I mod N + 1; COUNT := COUNT + 1; end PUT; entry GET (x: out ITEM) when COUNT > 0 is begin x := A(J); J := J mod N + 1; COUNT := COUNT - 1; end GET end BUFFERING;

Synkronisering. Föreläsning 8

Synkronisering. Föreläsning 8 Synkronisering Föreläsning 8 Synkronisering Så stort, intrikat och viktigt att det finns hela kurser om det i parallellprogrammering. Vi fuskar lite med några av de viktigaste bitarna! Synkronisering Vad

Läs mer

Några gamla tentamensuppgifter: Processer. 3. Antag givet ett system i vilket rent CPU-bundna processer med följande egenskaper exekveras.

Några gamla tentamensuppgifter: Processer. 3. Antag givet ett system i vilket rent CPU-bundna processer med följande egenskaper exekveras. 1 Tentamen 1992-08-26 1. Fyra processer ska synkroniseras så att A går före B och B och C går före D. Realisera denna ordning genom att använda (potentiellt blockerande) send- och receive- operationer

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

Operativsystem. Informationsteknologi sommarkurs 5p, 2004. Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Operativsystem. Informationsteknologi sommarkurs 5p, 2004. Agenda. Slideset 7. Exempel på operativsystem. Operativsystem Informationsteknologi sommarkurs 5p, 2004 Mattias Wiggberg Dept. of Information Technology Box 337 SE751 05 Uppsala +46 18471 31 76 Collaboration Jakob Carlström Slideset 7 Agenda Exempel på operativsystem

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Inledning Ken Thompson och Dennis M. Ritchie utvecklade C Turingpriset( Nobelpris i datavetenskap ), 1983 Alan Turing (1912-1954) För deras utveckling av generell OS teori och

Läs mer

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör. Tentamen Inst. för Informationsteknologi Avdelningen för Datorteknik Herbert P Sander Tel: 070 376 06 87 Ämne: Operativsystem Lokal: Post Scriptum, sal 2 Datum: Måndagen den 13 maj 2002 Tid: Kl 09.00-14.00

Läs mer

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann Marco Kuhlmann 1 En graf är en struktur av prickar förbundna med streck. Ett tidsenligt exempel på en sådan struktur är ett social nätverk, där prickarna motsvarar personer och en streck mellan två prickar

Läs mer

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn? Fö 7: Operativsystem Introduktion. Klassificering. Vad är ett operativsystem? Program som kontrollerar andra andra program. Gränssnitt mellan användare och hårdvaran. Kärnan. Historisk översikt. Typeset

Läs mer

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

Föreläsning 4: Giriga algoritmer. Giriga algoritmer Föreläsning 4: Giriga algoritmer Giriga algoritmer Denna typ av algoritmer arbetar efter följande princip: Gör i varje situation det som är lokalt optimalt, d.v.s. bäst för stunden. Några exempel vi redan

Läs mer

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer Dagens OS En översikt av dagens OS Titt på hur de gör Unix, Linux och Windows Unix Många varianter Mycket gemensamt Unix En del som skiljer Vanliga program, shell, etc System calls Interupts and traps

Läs mer

Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A

Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A Mål Datorteknik Föreläsning 5 Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av fle processer Att du ska förstå begreppet tråd Att du ska veta hur odelba resurser kan

Läs mer

Deadlocks. detektera och undvik

Deadlocks. detektera och undvik Deadlocks detektera och undvik Enkla exempel Smal bro med en fil En fyrvägskorsning Fyra vägkorsningar Två lås P: Lock A, Lock B.. Rel. A, Rel. B Q: Lock B, Lock A.. Rel. B, Rel. A Vad motsvarar Resurser?

Läs mer

Operativsystem - Processkedulering

Operativsystem - Processkedulering Operativsystem - Processkedulering Mats Björkman 2015-02-02 Innehåll n Processer (föreläsning 2) n n n Processmodell Processtillstånd Trådar n Processkommunikation (föreläsning 3) n n n Semaforer Monitorer

Läs mer

Föreläsning 4: Poster

Föreläsning 4: Poster Föreläsning 4: Poster Följande är genomgånget: type Person_Type is Namn : String(30); Skonr : Float; Kon : Boolean; Diskussion runt detta med olika typer m.m. Har tagit upp vilka operationer man kan göra

Läs mer

Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6 Realtidssystem - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 6 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad på: Föreläsningsmaterial

Läs mer

Exam Concurrent and Real-Time Programming

Exam Concurrent and Real-Time Programming LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Exam Concurrent and Real-Time Programming 2018 08 23, 14.00 19.00 1. Vad är prioritetsinversion? Illustrera med ett enkelt exempel. Redogör

Läs mer

Fö 7 TSEA81. Scheduling

Fö 7 TSEA81. Scheduling Fö 7 TSEA81 Scheduling Reflektion Lab 3 Operation Linux Simple OS * wait pthread_mutex_lock si_sem_wait * signal pthread_mutex_unlock si_sem_signal * await pthread_cond_wait si_ev_await * cause pthread_cond_broadcast

Läs mer

Föreläsning 11. Giriga algoritmer

Föreläsning 11. Giriga algoritmer Föreläsning 11 Giriga algoritmer Föreläsning 11 Giriga algoritmer Användning Växelproblemet Kappsäcksproblemet Schemaläggning Färgläggning Handelsresandeproblemet Uppgifter Giriga algoritmer (Greedy algorithms)

Läs mer

Tentamen EDA698 Realtidssystem (Helsingborg)

Tentamen EDA698 Realtidssystem (Helsingborg) LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen EDA698 Realtidssystem (Helsingborg) 2014 10 28, 14.00 19.00 Det är tillåtet att använda Java snabbreferens och miniräknare, samt ordbok.

Läs mer

Tentamen i Realtidsprogrammering

Tentamen i Realtidsprogrammering Tentamen i Realtidsprogrammering Ordinarie Tentamen Datum: 2011-05-14 Tid: 08:15 11:15 Ansvarig lärare: Telefon: 301438 Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng fördelade på 5 uppgifter.

Läs mer

Realtidssystem. - Semaforer, trådsynkronisering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-02

Realtidssystem. - Semaforer, trådsynkronisering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-02 Realtidssystem - Semaforer, trådsynkronisering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-02 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt EDA698

Läs mer

Tentamen TEN1 HI1029 2014-05-22

Tentamen TEN1 HI1029 2014-05-22 Tentamen TEN1 HI1029 2014-05-22 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

Omtentamen i Realtidsprogrammering för Au3, D3, E3

Omtentamen i Realtidsprogrammering för Au3, D3, E3 Omtentamen i Realtidsprogrammering för Au3, D3, E3 Datum: 2004-01-14 Tid: 0800-1300 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Inga särskilda hjälpmedel är tillåtna. Poäng: Tentamen omfattar 40

Läs mer

5 Grundläggande in- och utmatning

5 Grundläggande in- och utmatning 5 Grundläggande in- och utmatning För att användaren skall kunna kommunicera med programmet krävs att man inkluderar ett eller flera bibliotek med rutiner. I Ada finns det ett antal paket som gör detta

Läs mer

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram? Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden Parallellitet Ofta är det nödvändigt eller önskvärt att programdelar exekveras

Läs mer

FÖRELÄSNING 1 ANALYS MN1 DISTANS HT06

FÖRELÄSNING 1 ANALYS MN1 DISTANS HT06 FÖRELÄSNING ANALYS MN DISTANS HT06 JONAS ELIASSON Detta är föreläsningsanteckningar för distanskursen Matematik A - analysdelen vid Uppsala universitet höstterminen 2006. Förberedande material Här har

Läs mer

Kursombud sökes! Kursens syfte är att ge en introduktion till metoder för att förutsäga realtidsegenskaper hos betjäningssystem, i synnerhet för data- och telekommunikationssystem. Såväl enkla betjäningssystem,

Läs mer

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa Lena Kallin Westin 2005-08-22 Institutionen för datavetenskap Umeå universitet TENTAMEN Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa Inlämnad Poäng Kurs : Programmeringsteknisk

Läs mer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, )}, i N, N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg innehåller

Läs mer

Föreläsning 4. Multiplexering (1/2) Multiplexering (2/2) Multiplexering Närnät

Föreläsning 4. Multiplexering (1/2) Multiplexering (2/2) Multiplexering Närnät Föreläsning 4 Multiplexering Närnät 10/8/01 Gunnar Karlsson, Bengt Sahlin 1 Multiplexering (1/2) En länk bör kunna användas av flera sändare multiplexering = uppdelning av länken varje sändare allokeras

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

http://www.leidenhed.se Senaste revideringen av kapitlet gjordes 2014-05-08, efter att ett fel upptäckts.

http://www.leidenhed.se Senaste revideringen av kapitlet gjordes 2014-05-08, efter att ett fel upptäckts. Dokumentet är från sajtsidan Matematik: som ingår i min sajt: http://www.leidenhed.se/matte.html http://www.leidenhed.se Minst och störst Senaste revideringen av kapitlet gjordes 2014-05-08, efter att

Läs mer

Ickelinjära ekvationer

Ickelinjära ekvationer Löpsedel: Icke-linjära ekvationer Ickelinjära ekvationer Beräkningsvetenskap I Varför är det svårt att lösa icke-linjära ekvationer? Iterativa metoder Bisektion/intervallhalvering Newton-Raphsons metod

Läs mer

Operativsystem. Hierarkin för hårdvara läses nerifrån

Operativsystem. Hierarkin för hårdvara läses nerifrån Operativsystem DOS DiskOperatingSystem - ett jobb i taget. Dagens Operativsystem - prioriterar olika jobb. Om ett jobb pausas körs ett annat. Operativsystems viktigaste funktion är att bilda gränssnitt

Läs mer

Språket Python - Del 1 Grundkurs i programmering med Python

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

Läs mer

Dugga Datastrukturer (DAT036)

Dugga Datastrukturer (DAT036) Dugga Datastrukturer (DAT036) Duggans datum: 2012-11-21. Författare: Nils Anders Danielsson. För att en uppgift ska räknas som löst så måste en i princip helt korrekt lösning lämnas in. Enstaka mindre

Läs mer

Föreläsning 3.1: Datastrukturer, en översikt

Föreläsning 3.1: Datastrukturer, en översikt Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,

Läs mer

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler Exempeluppgift i Logikstyrning Inledning Idén med detta papper är att ge en allmän beskrivning av labbutrustningen och tips för hur man kan lösa olika praktiska problem i samband med laborationen. Läs

Läs mer

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt Flera processer Minneshantering Operativsystem lektion 6 Potentiellt problem: Den sida som plockas bort behöver inte vara den sida som används minst!! Det kan finnas andra processer som inte körs eller

Läs mer

En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning.

En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning. F5 LE1460 Analog elektronik 2005-11-23 kl 08.15 12.00 Alfa En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning. ( Impedans är inte samma sak som resistans. Impedans

Läs mer

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...

Läs mer

Realtidssystem. - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

Realtidssystem. - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6 Realtidssystem - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 6 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt EDA698 (Mats Lilja)

Läs mer

Sätt att skriva ut binärträd

Sätt att skriva ut binärträd Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer

Läs mer

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.) Outline för D2, ICT2, E3 och Mek3 Nicholas Wickström Högskolan i Halmstad Sverige p.1/18 Förra föreläsningen Specifikation -Kravspecifikation -Funktionsspecifikation -Blockdiagram Operativsystem -Grunder,

Läs mer

CS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008)

CS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008) CS - Computer science Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008) Vad datateknik INTE är: Att studera datorer Att studera hur man skriver datorprogram Att studera hur man använder

Läs mer

Twincat: PLC Control

Twincat: PLC Control Dokument Förklaring Dat. Revision KI-221-003-003 Kom igång med trukturerad Text 080402 1.0 Twincat: PLC Control Kom igång med Strukturerad Text (ST) programmering 1. Kod exempel. a. Exemplen som demonstreras

Läs mer

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab TAIU07 Matematiska beräkningar med Matlab Datorlektion 2. Villkor och Repetition 1 Logiska uttryck Uppgift 1.1 Låt a=3 och b=6 Vad blir resultatet av testerna ab? Uppgift 1.2 Låt a, b,

Läs mer

Institutionen för elektro- och informationsteknologi, LTH

Institutionen för elektro- och informationsteknologi, LTH Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd

Läs mer

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH. Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd

Läs mer

Tentaupplägg denna gång

Tentaupplägg denna gång Några tips på vägen kanske kan vara bra. Tentaupplägg denna gång TIPS 1: Läs igenom ALLA uppgifterna och välj den du känner att det är den lättaste först. Det kan gärna ta 10-20 minuter. Försök skriva

Läs mer

STYRNING AV PORTFÖLJER MED FLERA TILLGÅNGAR

STYRNING AV PORTFÖLJER MED FLERA TILLGÅNGAR 1 STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för Matematisk statistik Thomas Höglund FINANSMATEMATIK I. KOMPLEMENT DAG 13. STYRNING AV PORTFÖLJER MED FLERA TILLGÅNGAR Hittills har vi betraktat

Läs mer

Föreläsning 4: Kombinatorisk sökning

Föreläsning 4: Kombinatorisk sökning DD2458, Problemlösning och programmering under press Föreläsning 4: Kombinatorisk sökning Datum: 2009-09-25 Skribent(er): Kristina Nylander, Dennis Ekblom, Marcus Öman Föreläsare: Fredrik Niemelä 1 Introduktion

Läs mer

Diskret matematik: Övningstentamen 4

Diskret matematik: Övningstentamen 4 Diskret matematik: Övningstentamen 22. Beskriv alla relationer, som är såväl ekvivalensrelationer som partiella ordningar. Är någon välbekant relation sådan? 23. Ange alla heltalslösningar till ekvationen

Läs mer

FOURIERANALYS En kort introduktion

FOURIERANALYS En kort introduktion FOURIERAALYS En kort introduktion Kurt Hansson 2009 Innehåll 1 Signalanalys 2 2 Periodiska signaler 2 3 En komplex) skalärprodukt 4 4 Fourierkoefficienter 4 5 Sampling 5 5.1 Shannon s teorem.................................

Läs mer

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6 Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6? DAGENS AGENDA Komplexitet Ordobegreppet Komplexitetsklasser Loopar Datastrukturer Några nyttiga regler OBS! Idag jobbar

Läs mer

Operativsystem - input/output, skydd, virtualisering

Operativsystem - input/output, skydd, virtualisering Operativsystem - input/output, skydd, virtualisering Mats Björkman 2015-03-12 Lärandemål, I/O n Typer av I/O-enheter n Character, Block & Special n Minnesmappad I/O n Typer av I/O-programmering n Programmerad,

Läs mer

Wienerprocesser. Finansiell statistik, vt-05. Enkel slumpvandring. Enkel slumpvandring. Varför: model för aktiekurs (dock med aber...

Wienerprocesser. Finansiell statistik, vt-05. Enkel slumpvandring. Enkel slumpvandring. Varför: model för aktiekurs (dock med aber... Varför: model för aktiekurs dock med aber... exempel: Black-Scholes jfr Binomialoptionsmodellen Johan Koskinen Statistiska institutionen Stockholms universitet Finansiell statistik vt-05 F5 Tidsserieanalys

Läs mer

Mekanismer. (implementation)

Mekanismer. (implementation) Mekanismer (implementation) Repetition Semafor Räknar tillgängliga resurser Initieras med startvärde Vid förbrukning: väntar tills resurs finns Användning: invänta händelse Lås Markerar att en variabel/datastruktur

Läs mer

R AKNE OVNING VECKA 1 David Heintz, 31 oktober 2002

R AKNE OVNING VECKA 1 David Heintz, 31 oktober 2002 RÄKNEÖVNING VECKA David Heintz, 3 oktober 22 Innehåll Uppgift 27. 2 Uppgift 27.8 4 3 Uppgift 27.9 6 4 Uppgift 27. 9 5 Uppgift 28. 5 6 Uppgift 28.2 8 7 Uppgift 28.4 2 Uppgift 27. Determine primitive functions

Läs mer

TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62

TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62 TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62 Tid: Tisdagen den 2 juni 27, kl 4.-8. Lokal: TER Ansvariga lärare: Inger Klein, 28 665 eller 73-9699, Calin Curescu, 28 937 eller 73-54355 Hjälpmedel:

Läs mer

Tentamen. Datorteknik och realtidssystem

Tentamen. Datorteknik och realtidssystem Tentamen Datorteknik och realtidssystem, TSEA81 Datum 2017-04-18 Lokal KÅRA Tid 14-18 Kurskod TSEA81 Provkod TEN1 Kursnamn Datorteknik och realtidssystem Institution ISY Antal frågor 5 Antal sidor (inklusive

Läs mer

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys Realtidssystem HT03 Vad är realtidssystem? Föreläsare: Wang Yi Rum: 1235, yi@it.uu.se, Tel: 471 3110 Assistent: Tobias Amnell Rum: 1216, tobiasa@it.uu.se, Tel: 4717122 Webbsida: www.it.uu.se/edu/course/homepage/realtid/h03

Läs mer

Lektionsanteckningar 2: Matematikrepetition, tabeller och diagram

Lektionsanteckningar 2: Matematikrepetition, tabeller och diagram Lektionsanteckningar 2: Matematikrepetition, tabeller och diagram 2.1 Grundläggande matematik 2.1.1 Potensfunktioner xmxn xm n x x x x 3 4 34 7 x x m n x mn x x 4 3 x4 3 x1 x x n 1 x n x 3 1 x 3 x0 1 1

Läs mer

Lennart Carleson. KTH och Uppsala universitet

Lennart Carleson. KTH och Uppsala universitet 46 Om +x Lennart Carleson KTH och Uppsala universitet Vi börjar med att försöka uppskatta ovanstående integral, som vi kallar I, numeriskt. Vi delar in intervallet (, ) i n lika delar med delningspunkterna

Läs mer

Omtentamen i DV & TDV

Omtentamen i DV & TDV Umeå Universitet Institutionen för Datavetenskap Gunilla Wikström (e-post wikstrom) Omtentamen i Teknisk-Vetenskapliga Beräkningar för DV & TDV Tentamensdatum: 2005-06-07 Skrivtid: 9-15 Hjälpmedel: inga

Läs mer

Föreläsning 7. Träd och binära sökträd

Föreläsning 7. Träd och binära sökträd Föreläsning 7 Träd och binära sökträd Föreläsning 7 Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning Läsanvisningar och

Läs mer

Realtidsprogrammering Ordinarie tentamen

Realtidsprogrammering Ordinarie tentamen Tentamen i Realtidsprogrammering Ordinarie tentamen Datum: 2006-10-20 Tid: 08:00 13:00 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng fördelade på 7 uppgifter.

Läs mer

Tentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102

Tentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102 Tentamen på kursen DA7351, Programmering 1 051102, kl 08.15-12.15 Tillåtna hjälpmedel: Valfri bok om Java. Vid bedömning av lösningarna tas hänsyn till om dessa uppfyller de krav på programkvalitet (strukturering,

Läs mer

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel Uppgift 3 Till en process som kräver 8 sidor allokeras 4 sidoramar. Antag följande referenssträng: 1,2,8,3,4,3,8,2,1,4 Hur många sidofel kommer att genereras (demand paging) med en a) FIFO-algoritm (2

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: 10 januari 201 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

någon skulle föreslå, att ur våra räkningar utesluta tecknet "j/, så att man t. ex. skulle skriva lösningen av

någon skulle föreslå, att ur våra räkningar utesluta tecknet j/, så att man t. ex. skulle skriva lösningen av Om någon skulle föreslå, att ur våra räkningar utesluta tecknet "j/, så att man t. ex. skulle skriva lösningen av andragradsekvationen.1 -f 2 där y' 2 = b, eller i st. f. x=y$-\-yj

Läs mer

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY Fysik Datorgrafik Spelmekanismer AI Nätverk Nätverksaspekter i spel z Fleranvändarspel blir allt populärare z Roligare att spela

Läs mer

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010 Föreläsning 6 Kapitel 5 5.1 switch-satsen Vi ser på ett par exempel ur boken: int a; srand(time(0)); a=rand()%6+1; if(a==1) printf("hej Du glade\n"); else if(a==2) printf("god dag\n"); else if(a==3) printf("är

Läs mer

ANDREAS REJBRAND 2014-04-25 Matematik http://www.rejbrand.se. Numeriska serier. Andreas Rejbrand, april 2014 1/29

ANDREAS REJBRAND 2014-04-25 Matematik http://www.rejbrand.se. Numeriska serier. Andreas Rejbrand, april 2014 1/29 Numeriska serier Andreas Rejbrand, april 2014 1/29 1 Inledning Författarens erfarenhet säger att momentet med numeriska serier är ganska svårt för många studenter i inledande matematikkurser på högskolenivå.

Läs mer

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Datalogi, grundkurs 1. Lösningsförslag till tentamen Datalogi, grundkurs 1 Lösningsförslag till tentamen 6 maj 2000 1. För att proceduren sortera ska fungera som tänkt kan den se ut på följande sätt: const min = 1; max = 3; type tal = integer; index = min..max;

Läs mer

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED Matematiska institutionen Optimeringslära TENTAMEN TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED MILJÖTILLÄMPNINGAR för IT Datum: 10 mars 01 Tid: 8.00-1.00 Hjälpmedel: Miniräknare Kaj Holmberg: Optimering.

Läs mer

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

TATA42: Föreläsning 10 Serier ( generaliserade summor )

TATA42: Föreläsning 10 Serier ( generaliserade summor ) TATA42: Föreläsning 0 Serier ( generaliserade summor ) Johan Thim 5 maj 205 En funktion s: N R brukar kallas talföljd, och vi skriver ofta s n i stället för s(n). Detta innebär alltså att för varje heltal

Läs mer

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne. Fö 8: Operativsystem II Minneshantering och Virtuelltminne. Virtuella I/O enheter och Filsystemet. Flerprocessorsystem. Minneshantering Uniprogrammering: Minnet delas mellan operativsystem och användarprogrammet.

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Datastrukturer och algoritmer Föreläsning 16 2 Innehåll Snabbrepetition Exempeltentamen Kursutvärdering Mina målsättningar Kursens mål: 3 Rolig och viktig kurs Bli en bättre programmerare och inse att

Läs mer

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010 Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2010 Tentamen TDDB53 TENTAMEN TDDB53 (provkod TEN2) den 7 april 2010 kl 8 12 Jour: Emil Nielsen, tel 070 499 89 88 Hjälpmedel:

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: 28 maj 2014 Tid: 14.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

Problem att fundera över

Problem att fundera över Problem att fundera över Här får du öva dig på att formulera en förmodan och försökabevisaden. Jag förväntar mig inte att du klarar av att gå till botten med alla frågorna! Syftet är att ge dig smakprov

Läs mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2012-11-13 Idag Mer om grafer: Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. Floyd-Warshall. Topologisk sortering

Läs mer

8-4 Ekvationer. Namn:..

8-4 Ekvationer. Namn:.. 8-4 Ekvationer. Namn:.. Inledning Kalle är 1,3 gånger så gammal som Pelle, och tillsammans är de 27,6 år. Hur gamla är Kalle och Pelle? Klarar du att lösa den uppgiften direkt? Inte så enkelt! Ofta resulterar

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Bruksanvisning KABA MAS AUDITCON KABA MAS HAMILTON Modell 100, 200, 400, 50 och 52

Bruksanvisning KABA MAS AUDITCON KABA MAS HAMILTON Modell 100, 200, 400, 50 och 52 Bruksanvisning KABA MAS AUDITCON KABA MAS HAMILTON Modell 100, 200, 400, 50 och 52 Snabbinstruktion Mas-Hamilton högsäkerhetslås Modell 100, 200, 400 1. Öppning/stängning av låset 2. Vrid ratten så att

Läs mer

Föreläsning 13 och 14: Binära träd

Föreläsning 13 och 14: Binära träd Föreläsning 13 och 14: Binära träd o Binärträd och allmänna träd o Rekursiva tankar för binärträd o Binära sökträd Binärträd och allmänna träd Stack och kö är två viktiga datastrukturer man kan bygga av

Läs mer

Permutationer med paritet

Permutationer med paritet 238 Permutationer med paritet Bernt Lindström KTH Stockholm Uppgift. Att studera permutationerna av talen 1 2... n och indelningen i udda och jämna permutationer ur olika aspekter. Permutationer är särskilt

Läs mer

STÄNG AV FÖNSTER. Regler FLAGGSPECTRUM I FLAGGSPECTRUM II FLAGGSPECTRUM III FLAGGSPECTRUM STJÄRNSPEL

STÄNG AV FÖNSTER. Regler FLAGGSPECTRUM I FLAGGSPECTRUM II FLAGGSPECTRUM III FLAGGSPECTRUM STJÄRNSPEL Sivu 1/5 STÄNG AV FÖNSTER Regler FLAGGSPECTRUM I FLAGGSPECTRUM II FLAGGSPECTRUM III FLAGGSPECTRUM STJÄRNSPEL Ett spännande sätt att lära sig känna igen länder och huvudstäder. Ett utomordentligt kännetecken

Läs mer

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: Onsdagen 15 december 2004, 8:30 till 13:30 Plats: M Ansvarig lärare: Katarina Blom, tel 772 10 60. Läraren besöker tentamen kl

Läs mer

Grunderna i stegkodsprogrammering

Grunderna i stegkodsprogrammering Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer

Läs mer

Ekvationssystem - Övningar

Ekvationssystem - Övningar Ekvationssystem - Övningar Uppgift nr 1 y = 5x x + y = 54 Uppgift nr 2 y = 2x x + y = 12 Uppgift nr 3 y = 3x + 7 4x + y = 35 Uppgift nr 4 y = 4x - 18 3x + y = 38 Uppgift nr 5 2x - 2y = -4 x - 3y = 4 Uppgift

Läs mer

Användbarhet i vardag och praktik. Reflektioner nedtecknade av Sten Sunnergren. Med tillstånd av fam Sunnergren

Användbarhet i vardag och praktik. Reflektioner nedtecknade av Sten Sunnergren. Med tillstånd av fam Sunnergren Användbarhet i vardag och praktik. Reflektioner nedtecknade av Sten Sunnergren. Med tillstånd av fam Sunnergren 1 Sten Sunnergren Har jobbat i industrin sedan 1979. Med alla hantverk inom systemutveckling

Läs mer

Realtidssystem. - Semaforer, trådsynkronisering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 2

Realtidssystem. - Semaforer, trådsynkronisering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 2 Realtidssystem - Semaforer, trådsynkronisering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 2 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad

Läs mer

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm. Algoritmanalys Analys av algoritmer används för att uppskatta effektivitet. Om vi t. ex. har n stycken tal lagrat i en array och vi vill linjärsöka i denna. Det betyder att vi måste leta i arrayen tills

Läs mer

Datastrukturer. föreläsning 3. Stacks 1

Datastrukturer. föreläsning 3. Stacks 1 Datastrukturer föreläsning 3 Stacks 1 Abstrakta datatyper Stackar - stacks Köer - queues Dubbeländade köer - deques Vektorer vectors (array lists) All är listor men ger tillgång till olika operationer

Läs mer

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation. Vad är viktigast? Sammanfattning Processer och trådar Avbrottshantering Vad det är och hur det fungerar (på låg nivå) Vilka problem finns Schemaläggning Flerprocessorsystem Varianter, problem Interprocesskommunikation

Läs mer