Operativsystem - Processkommunikation

Storlek: px
Starta visningen från sidan:

Download "Operativsystem - Processkommunikation"

Transkript

1 Operativsystem - Processkommunikation Mats Björkman

2 Innehåll Processer (föreläsning 2) Processmodell Processtillstånd Trådar Processkommunikation (föreläsning 3, den här) Semaforer Monitorer Meddelandesystem Skedulering/schemaläggning (föreläsning 4) Kriterier för en skedulerare Skeduleringsalgoritmer Operativsystem, Mats Björkman, MDH 2

3 Lärandemål Varför behövs processkommunikation och processynkronisering? Race condition, ömsesidigt uteslutande, kritiska avsnitt Mekanismer för kommunikation/ synkronisering Semaforer, meddelandeöverföring, delat minne Operativsystem, Mats Björkman, MDH 3

4 Mer begrepp Prioritet: Olika processer kan ha tilldelats olika prioritet, vilket betyder att skeduleraren tar hänsyn till detta i valet av nästa process att köra (mer i nästa föreläsning) Operativsystem, Mats Björkman, MDH 4

5 Förtydligande: Multitrådade kärnor Moderna OS-kärnor är oftast multitrådade, vilket betyder att flera aktiviteter kan vara på gång samtidigt i OS-kärnan Detta är en anledning till att varje process behöver en egen kernel stack, exv. kan flera processer ha systemanrop som pågår samtidigt Operativsystem, Mats Björkman, MDH 5

6 Multitasking=> samtidighet Wikipedia: Synchronization "In computer science, especially parallel computing, synchronization means the coordination of simultaneous threads or processes to complete a task in order to get correct runtime order and avoid unexpected race conditions." Operativsystem, Mats Björkman, MDH 6

7 Multitasking=> samtidighet Processer som är omedvetna om varandra: Oberoende tillämpningar Konkurrerar om samma resurser Processer medvetna om varandra: Samarbetar genom att dela resurser En process kan vara beroende av info från en annan Operativsystem, Mats Björkman, MDH 7

8 Processkommunikation och synkronisering Varför kommunikation och synkronisering? Odelbara resurser (ömsesidigt uteslutande) Synkronisera aktiviteter Undvika baklås (deadlock/livelock) i systemet Kommunikation mellan processer Operativsystem, Mats Björkman, MDH 8

9 Processkommunikation och synkronisering forts. Kommunikationsmetoder Semaforer Meddelandeöverföring Delat minne Operativsystem, Mats Björkman, MDH 9

10 Ömsesidigt uteslutande Det finns resurser som endast en process i taget bör få använda (exv. enkel skrivare utan egen hantering av samtidiga utskriftsjobb) Ömsesidigt uteslutande (mutual exklusion) kallas egenskapen vi vill garantera för dessa resurser Operativsystem, Mats Björkman, MDH 10

11 Ömsesidigt uteslutande Garantin innebär att det aldrig får finnas en risk för att mer än en process använder resursen samtidigt Operativsystem, Mats Björkman, MDH 11

12 Exempel ur verkligheten Ur en gammal OS-kurs i Uppsala: En enkelspårig järnvägssträcka i Anderna mellan Peru och Bolivien (sic) måste ha ett signalsystem för att garantera att max ett tåg i taget är ute på linjen Operativsystem, Mats Björkman, MDH 12

13 Exempel ur verkligheten Problemet uppstår förstås när det kommer tåg från båda hållen precis samtidigt Vi måste hitta en lösning som garanterar ömsesidigt uteslutande utan att resultera i baklås Operativsystem, Mats Björkman, MDH 13

14 Exempel ur verkligheten Lösningen skall passa att koda in i en algoritm Ofta ställs dessutom kraven att algoritmen skall vara rättvis och fri från svält Operativsystem, Mats Björkman, MDH 14

15 Kritiskt avsnitt En typisk mekanism för att åstadkomma ömsesidigt uteslutande i kod är kritiska avsnitt (critical region el. critical section) Kritiska avsnitt är kodavsnitt som bara en process i taget får exekvera i Exempel: Koden som exekveras för att skriva ut på skrivaren Operativsystem, Mats Björkman, MDH 15

16 Ömsesidigt uteslutande Exempel utan kritiskt avsnitt: Process A Process B Börjar skriva ut ett dokument på skrivaren. Blir avbruten av process B som har högre prioritet. Avbryter A och skriver ut sitt dokument. Blir klar och avslutar. Fortsätter utskriften av det första dokumentet. Resultatet blir ihopblandade utskrifter. Operativsystem, Mats Björkman, MDH 16

17 Ömsesidigt uteslutande Lösningen blir att hela den kod som skriver ut på skrivaren måste vara ett kritiskt avsnitt, så att inte process B kan skriva ut när A redan börjat skriva ut, utan B måste vänta tills A är klar Operativsystem, Mats Björkman, MDH 17

18 Ömsesidigt uteslutande Ett annat exempel handlar om åtkomst till delade variabler Operativsystem, Mats Björkman, MDH 18

19 Ömsesidigt uteslutande forts. Race condition Scenario 1 Example: int saldo= 1000; Thread A Thread B void A(void){ void B(void){ int peng; int peng; peng=saldo; peng=saldo; peng=peng-100; peng=peng+1000; saldo=peng; saldo=peng; } } RESULTAT: saldo=1900 Operativsystem, Mats Björkman, MDH 19

20 Ömsesidigt uteslutande forts. Race condition Scenario 2 Example: int saldo= 1000; Thread A Thread B void A(void){ void B(void){ int peng; int peng; peng=saldo; peng=saldo; peng=peng-100; peng=peng+1000; saldo=peng; saldo=peng; } } RESULTAT: saldo=900 Operativsystem, Mats Björkman, MDH 20

21 Ömsesidigt uteslutande Även i detta exempel gäller det att skapa ett kritiskt avsnitt, i detta fall är det koden från innan processen läser saldot tills efter den har skrivit det nya saldot som behöver utgöra ett kritiskt avsnitt Operativsystem, Mats Björkman, MDH 21

22 Ömsesidigt uteslutande genom kritiska avsnitt Operativsystem, Mats Björkman, MDH 22

23 Ömsesidigt uteslutande Nu behöver vi några mekanismer som hjälper oss att skapa kritiska avsnitt Operativsystem, Mats Björkman, MDH 23

24 Ömsesidigt uteslutande forts. Fyra krav: 1. Aldrig fler än en process samtidigt i kritiska avsnittet 2. Inga antaganden om processhastighet eller antal CPU:er 3. Ingen process som inte är i kritiska avsnittet får blockera en annan process 4. Ingen process skall behöva vänta i evighet på exekvering Undvik baklås, svält och busy waiting ( rastlös väntan ) Hur kan detta lösas? Algoritmiskt i tillämpningen Algoritmiskt i tillämpningen + hårdvarustöd Interrupt disable Test And Set-primitiv OS-stöd: semaforer, meddelandeöverföring Operativsystem, Mats Björkman, MDH 24

25 Ömsesidigt uteslutande - Algoritm i tillämpningen int turn = 0; void thread0(){ void thread1(){ while(1){ while(1){ // some code // some code while(turn!=0) ; while(turn!=1) ; // Critical Section // Critical section turn = 1; turn = 0; } } } } Fungerar denna algoritm? Finns det nackdelar med denna lösning? Operativsystem, Mats Björkman, MDH 25

26 Ömsesidigt uteslutande - Algoritm i tillämpningen int turn = 0; void thread0(){ void thread1(){ while(1){ while(1){ // some code // some code while(turn!=0) ; while(turn!=1) ; // Critical Section // Critical section turn = 1; turn = 0; } } } } Fungerar denna algoritm? Finns det nackdelar med denna lösning? Operativsystem, Mats Björkman, MDH 26

27 Ömsesidigt uteslutande - Algoritm i tillämpningen int turn = 0; void thread0(){ void thread1(){ while(1){ while(1){ // some code // some code while(turn!=0){} //spin while(turn!=1){} //spin // Critical Section // Critical section turn = 1; turn = 0; } } } } Fungerar denna algoritm? Finns det nackdelar med denna lösning? Operativsystem, Mats Björkman, MDH 27

28 Ömsesidigt uteslutande - Algoritm i tillämpningen (bättre?) boolean interested[2] = {false,false}; void thread0(){ void thread1(){ while(1){ while(1){ // some code // some code interested[0] = true; interested[1] = true; while(interested[1]){} while(interested[0]){} // Critical Section // Critical section interested[0] = false; interested[1] = false; } } } } Fungerar denna algoritm? Finns det nackdelar med denna lösning? Operativsystem, Mats Björkman, MDH 28

29 Ömsesidigt uteslutande - Algoritm i tillämpningen (nu då?) int int loser; boolean interested[2] = {false,false}; void thread0(){ void thread1(){ while(1){ while(1){ // some code // some code interested[0] = true; interested[1] = true; loser = 0; loser = 1; while(loser==0 && while(loser==1 && interested[1]) {} interested[0]) {} // Critical Section // Critical section interested[0] = false; interested[1] = false; } } } } Fungerar denna algoritm? Finns det nackdelar med denna lösning? Operativsystem, Mats Björkman, MDH 29

30 Ömsesidigt uteslutande - Algoritm i tillämpningen med hårdvarustöd void thread0(){ void thread1(){ while(1){ while(1){ // some code // some code interrupt_disable(); interrupt_disable(); // Critical Section // Critical section interrupt_enable(); interrupt_enable(); } } } } Fungerar denna algoritm? Finns det nackdelar med denna lösning? Operativsystem, Mats Björkman, MDH 30

31 Ömsesidigt uteslutande - Algoritm i tillämpningen med hårdvarustöd Test and Set (TAS) Sätter en variabel och returnerar gamla värdet Läsningen av gamla värdet och sättningen av nya är garanterat atomärt (odelbart) int TAS(char *flag){ int result; asm{ tas flag bne alreadyset move #0,&result bra exit alreadyset: move #1,&result exit: } return result; } Operativsystem, Mats Björkman, MDH 31

32 Ömsesidigt uteslutande - Algoritm i tillämpningen med hårdvarustöd char flag=0; void thread0(){ void thread1(){ int TAS(char *flag){ while(1){ while(1){ int result; // some code // some code asm{ while(tas(&flag)==1){} while(tas(&flag)==1){} tas flag // Critical Sec. // Critical sec. bne alreadyset flag=0; flag=0; move #0,&result } } bra exit } } alreadyset: move #1,&result exit: } return result; Finns det nackdelar med denna lösning? } Operativsystem, Mats Björkman, MDH 32

33 Test and set Varianter på test and set kan heta: Compare and swap Atomic exchange Samma princip: en odelbar operation där en variabel ändras och det gamla värdet kontrolleras Operativsystem, Mats Björkman, MDH 33

34 Busy wait Alla lösningar (hittills) har använt busy wait, den process som måste vänta ligger i en tight loop och kollar och kollar och kollar Slöseri med CPU-tid, vem kan hjälpa? Operativsystem, Mats Björkman, MDH 34

35 Ta-daa! Is it a spin lock? Is it a test-and-set instruction? No! It s The Operating System! Operativsystem, Mats Björkman, MDH 35

36 OS-stöd för kommunikation och synkronisering 36

37 Semaforer Ett verktyg för att åstadkomma ömsesidigt uteslutande Finns i så gott som alla operativsystem Operativsystem, Mats Björkman, MDH 37

38 Semaforer Två versioner: Binära semaforer kan vara 0 eller 1 Räknande semaforer kan vara 0 Operativsystem, Mats Björkman, MDH 38

39 Semaforer Binära semaforer används när det finns en instans av en resurs och den kan användas av en process i taget Exempel: Lås på toadörr. En användare kan gå in på toa och vrida om låset. Övriga får då vänta till dess den som använder toan låser upp dörren Operativsystem, Mats Björkman, MDH 39

40 Semaforer Räknande semaforer används när det finns flera instanser av resursen och/ eller flera processorer kan samsas Exempel: En ut/en in på krogen. Det finns ett maximalt antal tillåtna samtidiga besökare. När maxantalet är uppfyllt måste nästa besökare vänta på att någon lämnar lokalen. Operativsystem, Mats Björkman, MDH 40

41 Semaforer forts. En semafor har två operationer: wait(semaphore); räknar ner signal(semaphore); räknar upp Alternativa namn: take/give, acquire/ release, down/up, P/V (holländska Proberen/Verhogen försök/höj) Operativsystem, Mats Björkman, MDH 41

42 Mutex (MUTual EXclusion) En binär semafor kallas ibland mutex En mutex används som ett lås (kom ihåg toadörren), operationerna kallas ibland mutex_lock (wait) respektive mutex_unlock (signal) Operativsystem, Mats Björkman, MDH 42

43 Semaforer forts. Om en semafor är 1 (eller mer) och en process anropar wait( ), så kommer semaforen att räknas ned och processen får fortsätta Operativsystem, Mats Björkman, MDH 43

44 Semaforer forts. Om en semafor är 0 och en process anropar wait( ), så kommer processen att flyttas till ett väntetillstånd (wait/sleep) och sättas i en kö associerad till semaforen Processen blir kvar i kön till dess en annan process anropar signal( ) Operativsystem, Mats Björkman, MDH 44

45 Semaforer forts. När en process anropar signal( ) tittar operativsystemet om det finns någon process i väntelistan till den semaforen. Om det finns någon i kön, så väcks den första processen i kön upp och får fortsätta exekvera Om väntelistan är tom, räknas semaforen upp med 1 Operativsystem, Mats Björkman, MDH 45

46 Semaforer forts. OS:et löser problemet med busy wait: När en process måste vänta behöver den inte ligga och spinna runt runt och testa om den får fortsätta Operativsystemet försätter istället processen i ett väntetillstånd, och lovar att väcka upp processen när den kan fortsätta Systemet slipper slösa CPU-tid på busy wait Operativsystem, Mats Björkman, MDH 46

47 Semaforer forts. Operativsystemet tillhandahåller även rättvisa: Om flera processer med samma prioritet blir väntande på wait( ), så kommer operativsystemet att först väcka den som anropade wait( ) först (Vid busy wait och exv. test_and_set är det slumpmässigt vilken av de väntande som har tur att testa precis vid rätt tid) Operativsystem, Mats Björkman, MDH 47

48 Semaforer forts. Semaforoperationerna måste vara odelbara (atomära) Operativsystemet garanterar detta Väntande processer sätts tillståndet till väntande (wait/sleep) läggs in i väntelistan på en semafor Operativsystem, Mats Björkman, MDH 48

49 Semaforer forts. Problem med semaforer Priority inversion: en process med hög prioritet kan bli väntande på en semafor som en process med lägre prioritet har låst Baklås: Process 0 har låst semaforen A och väntar på semaforen B, Process 1 har låst semaforen B och väntar på semaforen A Operativsystem, Mats Björkman, MDH 49

50 Semaforer forts. Skrivarproblemet löst med semaforer: Process A Process B Ett skrivarjobb begärs. Processen anropar wait(lpr). Eftersom skrivaren är ledig räknas semaforen ner till 0. Utskriften startar. A blir avbruten av process B som har högre prioritet. B vill också skriva ut. B anropar wait(lpr). Eftersom semaforen redan är 0 blir B försatt i väntetillstånd (wait/sleep). A slutför utskriften av det första dokumentet. Anropar signal(lpr). B plockas ut semaforkön och kan skriva ut. Anropar signal(lpr). Operativsystem, Mats Björkman, MDH 50

51 Semaforer forts. WAIT(S) SIGNAL(S) LOCK LOCK S > 0 Y N FIND CURRENT PROCESS DESCRIPTOR EMPTY SEMAPHORE QUEUE Y N DEQUEUE PROCESS DESCRIPTOR S = S - 1 S = S + 1 MOVE FROM! READY QUEUE! TO WAITING ADD TO READY QUEUE ADD TO SEMAPHORE QUEUE UNLOCK UNLOCK EXIT TO DISPATCHER EXIT TO DISPATCHER Operativsystem, Mats Björkman, MDH 51

52 Processynkronisering Uppgift: synkronisera aktiviteter som måste ske i viss ordning Exempel: Producent/konsumentproblemet En process producerar meddelanden Meddelandena placeras i en kö En annan process läser meddelandena Problem: Begränsad köstorlek Operativsystem, Mats Björkman, MDH 52

53 Producent/konsument När producenten har producerat ett meddelande skall konsumenten kunna konsumera det När kön är full måste producenten vänta tills konsumenten konsumerat ett meddelande När kön är tom näste konsumenten vänta tills producenten producerat ett meddelande Operativsystem, Mats Björkman, MDH 53

54 Producent/konsument Exempel: Vi använder tre semaforer: En räknande semafor för antalet tomma platser En räknande semafor för antalet fulla platser En binär semafor (mutex) för att få ömsesidigt uteslutande vid åtkomst till den delade kön Operativsystem, Mats Björkman, MDH 54

55 Producent/konsumentproblemet med semaforer #define N 100! semaphore mutex = 1;! semaphore empty = N;! semaphore full = 0;!! void producer(void)! {! int item;!! while(true){! produce_item(&item);! wait(&empty);! wait(&mutex);! enter_item(item);! signal(&mutex);! signal(&full);! }! }! /* Number of slots in the buffer */! /* Mutual exclusion */! /* Number of empty slots in the buffer */! /* Number of full slots in the buffer */!! void consumer(void)! {! int item;!! while(true){! wait(&full);! wait(&mutex);! remove_item(&item);! signal(&mutex);! signal(&empty);! consume_item(item);! }! }! Operativsystem, Mats Björkman, MDH 55

56 Producent/konsumentproblemet med semaforer felaktigt #define N 100! semaphore mutex = 1;! semaphore empty = N;! semaphore full = 0;!! void producer(void)! {! int item;!! while(true){! produce_item(&item);! wait(&empty);! wait(&mutex);! enter_item(item);! signal(&mutex);! signal(&full);! }! }! /* Number of slots in the buffer */! /* Mutual exclusion */! /* Number of empty slots in the buffer */! /* Number of full slots in the buffer */!! void consumer(void)! {! int item;!! while(true){! wait(&mutex);! wait(&full);! remove_item(&item);! signal(&mutex);! signal(&empty);! consume_item(item);! }! }! Operativsystem, Mats Björkman, MDH 56

57 Semaforer Semaforer i kernel space vs user space Semaforer i kernel space => systemanrop till OS:et Användbara för synkronisering mellan processer Kräver inte delat minne mellan processerna Windows: CreateSemaphore(), CreateMutex() Unix: semget() Semaphore Standard POSIX: sem_init() Semaforer i user space => hanteras i tillämpningen Användbara för synkronisering mellan trådar i samma process Använder delat minne (plus ofta någon form av stöd från OS:et) Windows: CriticalSection() anropar endast kärnan när någon behöver ställa sig i kö Linux Futex (Fast userspace mutex): kräver TAS el. liknande + systemanrop för köhanterning Operativsystem, Mats Björkman, MDH 57

58 Meddelandesystem Processkommunikation genom meddelanden Två primitiver send receive Direkt kommunikation, eller Indirekt kommunikation Operativsystem, Mats Björkman, MDH 58

59 Meddelandesystem - Direkt kommunikation Process to Process IPC Send(toProcess, message); Receive(fromProcess, message); Skicka broadcast till flera mottagande processer Synkron överföring (Rendezvous) Ingen buffring, processerna blockeras tills överföringen sker Analogi: Telefon Asynkron överföring Buffrad kommunikation, ingen blockering Analogi: telefonsvarare Operativsystem, Mats Björkman, MDH 59

60 Meddelandesystem - Indirekt kommunikation Kommunikation via brevlåda (mailbox) En mailbox innehåller En buffert Ett namn Två möjligheter Mailboxen ägs av en process Mailbox owned by the process P1 P2 Mailbox owned by the OS Mailboxen ägs av OS:et P1 P2 P3 Operativsystem, Mats Björkman, MDH 60

61 Producent/konsumentproblemet med meddelandeöverföring #define N 100 void producer(void){ } int item; message m,token; while(1){ produce_item(&item); receive(consumer,&token); build_mesg(&m,&item); } send(consumer, &m); void consumer(void){ } int item, i; message m,token; for(i=0;i<n;i++) send(procucer,&token); while(1){ receive(producer,&m); } extract_item(&m); send(producer, &token); consume_item(item); Operativsystem, Mats Björkman, MDH 61

62 Delat minne De flesta operativsystem stöder det Speciella primitiver för skapande och åtkomst Felkällor: synkronisering måste bli rätt Inte bra för distribuerade system Dock snabbt och effektivt om processerna kan dela fysiskt minne Operativsystem, Mats Björkman, MDH 62

63 Delat minne Det delade minnet mappas in i båda processernas adressrymd P1 P2 Shared Memory Windows: CreateFileMapping(), MapViewOfFile() Linux/Unix: shm_open(), mmap() Operativsystem, Mats Björkman, MDH 63

64 Lärandemålen igen Varför behövs processkommunikation och processynkronisering? Race condition, ömsesidigt uteslutande, kritiska avsnitt Mekanismer för kommunikaiton/ synkronisering Semaforer, meddelandeöverföring, delat minne Operativsystem, Mats Björkman, MDH 64

Operativsystem - Processkommunikation

Operativsystem - Processkommunikation Operativsystem - Processkommuikatio Mats Björkma 2017-01-20 Iehåll Processer (föreläsig 2) Processmodell Processtillståd Trådar Processkommuikatio (föreläsig 3, de här) Semaforer Moitorer Meddeladesystem

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

Synkronisering. Ordning och reda

Synkronisering. Ordning och reda Synkronisering Ordning och reda Banköverföring struct account { int balance; char* owner; }; struct account account[ NUM_ACCOUNTS ]; bool transfer( int amount, unsigned from, unsigned to ); 2 Banköverföring

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

Summering av fält. Synkronisering. Summering av fält. Bounded Buffer. Bounded Buffer (get) Bounded Buffer (put)

Summering av fält. Synkronisering. Summering av fält. Bounded Buffer. Bounded Buffer (get) Bounded Buffer (put) Summering av fält Synkronisering Ordning och reda function sum_low is begin for i in 0..999_999_999 sum += array[i] end sum_low function sum_high is begin for i in 1_000_000_000..1_999_999_999 sum += array[i]

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

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

Trådar och Multiprocessorer. Föreläsning 6

Trådar och Multiprocessorer. Föreläsning 6 Trådar och Multiprocessorer Föreläsning 6 Trådar och multiprocessorer Hur skriver man program som hanterar många saker samtidigt, t.ex. en web-server som hanterar många samtidiga begäran från olika klienter?

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

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

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

Synkronisering - Semaforen. Om att vänta men inte i onödan

Synkronisering - Semaforen. Om att vänta men inte i onödan Synkronisering - Semaforen Om att vänta men inte i onödan Dörrvakten Har order uppifrån pga brandregler: Släpp in max 40 personer Garanterar att det aldrig är fler insläppta än order angivit Kommer fler

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

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

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00 Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen 2019-04-16 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Anteckningarna lämnas

Läs mer

Operativsystem - Processer I

Operativsystem - Processer I Operativsystem - Processer I Mats Björkman 2015-01-21 Innehåll n Processer (föreläsning 2, den här) n n n Processmodell Processtillstånd Trådar n Processkommunikation (föreläsning 3) n n n Semaforer Monitorer

Läs mer

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Fö 5+6 TSEA81. Real-time kernel + Real-time OS Fö 5+6 TSEA81 Real-time kernel + Real-time OS Stackens användningsområde * JSR / RTS : returadress * Temporärdata (push / pop) void myfunc(void) { int i; // hamnar nog i register int test[10]; // hamnar

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

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

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

Trådar. Aktiva objekt

Trådar. Aktiva objekt Föreläsning 11 Trådar 1 Aktiva objekt Det är välkänt från vardagslivet att saker händer samtidigt. Aktiva objekt gör saker på eget initiativ, medan passiva objekt endast gör saker när de blir ombedda.

Läs mer

Summering av fält 1.1. Synkronisering - Semaforen. Summering av fält 1.3. Summering av fält 1.2. Summering av fält 2.3 (INTE GK)

Summering av fält 1.1. Synkronisering - Semaforen. Summering av fält 1.3. Summering av fält 1.2. Summering av fält 2.3 (INTE GK) Summering av fält 1.1 Synkronisering - Semaforen Om a6 vänta men inte i onödan Vi har en stor array: int array[2_000_000_000] Vi har variabler för a6 lagra summor och delsumor av arrayen. Dessa iniferas

Läs mer

Tentamen i TDIU16 Process- och operativsystemprogrammering

Tentamen i TDIU16 Process- och operativsystemprogrammering Linköpings universitet Institutionen för datavetenskap 2017-06-03 Tentamen i TDIU16 Process- och operativsystemprogrammering Datum 2017-06-03 Tid 14-18 Institution IDA Kurskod TDIU16 Provkod TEN1 Examinator

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

Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5

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

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

Deluppgift 10 Starta den första processen (3.5h förarbete, 30min kodning)

Deluppgift 10 Starta den första processen (3.5h förarbete, 30min kodning) Linköpings Tekniska Högskola Institutionen för Datavetanskap (IDA), Software and Systems (SaS) (c) Klas Arvidsson 2011-02-28 Deluppgift 10 Starta den första processen (3.5h förarbete, 30min kodning) Saker

Läs mer

Realtidssystem. - Meddelanden och händelsehantering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 4

Realtidssystem. - Meddelanden och händelsehantering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 4 Realtidssystem - Meddelanden och händelsehantering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 4 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad

Läs mer

Fö 2 TSEA81 Datorteknik och realtidssystem

Fö 2 TSEA81 Datorteknik och realtidssystem Fö 2 TSEA81 Datorteknik och realtidssystem Shared Resources Shared resources En gemensam resurs är något som används av en eller flera processer. Det kan t ex var: Data: variabel, buffer, databas Hårdvara:

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

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7 Schemaläggning Unix 20 priority = CPU_usage + nice + base Minneshantering etc Operativsystem - Lektion 7-20 Linux Schemaläggning av trådar (kernel threads) Real-time FIFO Real-time round robin Timesharing

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

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

Olika OS. Unix, Linux och Windows. Unix. Unix. En översikt av ett par OS. Titt på hur de gör. Många varianter. Mycket gemensamt. En del som skiljer Olika OS En översikt av ett par OS Titt på hur de gör Unix, Linux och Windows Unix Många varianter Mycket gemensamt Unix En del som skiljer Begrepp Hur skapas en process Deamon rocess Föräldrar & barn

Läs mer

Objektorienterad Programkonstruktion. Föreläsning dec 2015

Objektorienterad Programkonstruktion. Föreläsning dec 2015 Objektorienterad Programkonstruktion Föreläsning 12 14 dec 2015 Parallella Problem I program med flera parallella exekveringstrådar kan det uppstå problem, fel och andra fenomen som inte förekommer i enkeltrådade

Läs mer

Examensarbete för magisterexamen 160p i datateknik

Examensarbete för magisterexamen 160p i datateknik Examensarbete för magisterexamen 160p i datateknik MULTITASKING II UTÖKNING AV ROBOTSPRÅKET RAPID Utfört av: Handledare: Robert Kostelac, rkc99001@student.mdh.se Christer Norström, Mälardalens högskola,

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

Realtidssystem. - Monitorer, synkroniserade metoder - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-14

Realtidssystem. - Monitorer, synkroniserade metoder - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-14 Realtidssystem - Monitorer, synkroniserade metoder - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-14 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt

Läs mer

Fö 4 TSEA81. Monitors and Message passing

Fö 4 TSEA81. Monitors and Message passing Fö 4 TSEA81 Monitors and Message passing Condition variables - händelsevariabler Kan användas för att implementera villkorliga kritiska regioner Tre operationer: Initiering(C, S) interna data för villkorsvariabeln

Läs mer

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl TDDIU81 Processer och trådar Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl Sammanfattning Den här rapporten innehåller en kort genomgång av allmän process och trådhantering

Läs mer

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00 Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen 2019-04-16 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Anteckningarna lämnas

Läs mer

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

Fö 5+6 TSEA81. Reflektion av Lab 2. clock.c (module) Real-time kernel + Real-time OS

Fö 5+6 TSEA81. Reflektion av Lab 2. clock.c (module) Real-time kernel + Real-time OS Fö 5+6 TSEA81 Real-time kernel + Real-time OS Reflektion av Lab 2 main.c void * clock_task(void *unused) int hours, minutes, seconds; while(1) clock_get_time(&hours,&minutes,&seconds); display_time(hours,minutes,seconds);

Läs mer

Tentamen Lösningar EDA698 Realtidssystem

Tentamen Lösningar EDA698 Realtidssystem LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen Lösningar EDA698 Realtidssystem 13 10 22, 14:00 19:00 1. Prioriteter, korrekthet a) Realtidsproblemet kvarstår. Det finns ingen garanti

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

Deluppgift 17 Processhantering: exec, sleep, exit, plist

Deluppgift 17 Processhantering: exec, sleep, exit, plist Linköpings Tekniska Högskola Institutionen för Datavetanskap (IDA), Software and Systems (SaS) (c) Klas Arvidsson Deluppgift 17 Processhantering: exec, sleep, exit, plist Inledning För att få ett praktiskt

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University Datum för tentamen Date of exam Sal Room Tid Time Kurskod Course code Provkod LADOK code

Läs mer

DIG IN TO Dator och nätverksteknik

DIG IN TO Dator och nätverksteknik DIG IN TO Dator och nätverksteknik CCNA 1 Operativsystem Agenda Datorsystemets struktur Vad är ett operativsystem? Minneshantering Threads och processer Threads eller exekveringstrådar Processhantering

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

Tentamen. Datorteknik och realtidssystem

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

Läs mer

Concurrency Saker händer samtidigt. Process En instans av ett program

Concurrency Saker händer samtidigt. Process En instans av ett program Concurrency Saker händer samtidigt Hur gör vi flera saker samtidigt på en dator? - Dela på en CPU - Flera CPU Flera processer på en dator. Operativsystemet (OS) tilldelar dem körtid (time slices, prioritet)

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016 Objektorienterad Programkonstruktion Föreläsning 2 2 nov 2016 Objekt - klass Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 Objekt - klass Objekt - klass Objekt - klass + Objekt - klass public class

Läs mer

Datorteknik ERIK LARSSON

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

Läs mer

Systemnära programmering 2012-11-05. Tentamen. Systemnära programmering, 7.5hp 5 november 2012

Systemnära programmering 2012-11-05. Tentamen. Systemnära programmering, 7.5hp 5 november 2012 Tentamen Systemnära programmering, 7.5hp 5 november 2012 Skrivtid: 9 13 Hjälpmedel: EN av följande böcker Bilting & Skansholm: Vägen till C ELLER J.R. Hanly & E.B. Koffman: C Program Design for Engineers

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

Fö 4 TSEA81. Monitors and Message passing. Condition variables - händelsevariabler

Fö 4 TSEA81. Monitors and Message passing. Condition variables - händelsevariabler Fö 4 TSEA81 Monitors and Message passing Condition variables - händelsevariabler Kan användas för att implementera villkorliga kritiska regioner Tre operationer: Initiering(C, S) interna data för villkorsvariabeln

Läs mer

(Lösningsförslag finns sist i denna fil.)

(Lösningsförslag finns sist i denna fil.) (Lösningsförslag finns sist i denna fil.) Läser externa signaler. Har 64 ingångar (kanaler), från 0 till 63. Kan bara avläsa en ingång i taget. Avlästa värdet positivt 16-bitars tal. Varje läsning tar

Läs mer

Reservföreläsningen inställd

Reservföreläsningen inställd Reservföreläsningen inställd n Reservtiden (fredag 10 mars kl 13-15) är en reservtid, ställs nu in eftersom inte något oförutsett hänt Operativsystem, Mats Björkman, MDH 1 Labredovisningar n Labbar som

Läs mer

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning Datorarkitekturer med operativsystem ERIK LARSSON Översikt Inledning Inledning Inledning En processor eller central processing unit (CPU) är enheten som exekverar program i en dator En dator är en maskin

Läs mer

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt

Läs mer

Realtidsstöd i Minix. En laborationrapport. Oktober 2012

Realtidsstöd i Minix. En laborationrapport. Oktober 2012 Realtidsstöd i Minix En laborationrapport Karl Zylinski Hampus Gustafsson Oktober 2012 1 Innehåll 1 Introduktion 3 1.1 Problem................................ 3 1.1.1 Skapa ett testprogram....................

Läs mer

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser Innehåll Operativsystem Vad är operativsystem och hur fungerar de Vad är ett OS? Syfte Att tillåta flera program att köra samtidigt Att fungera som ett abstraktionslager mot hårdvaran Att hantera olika

Läs mer

Java: kort introduktion. Trådar. Något om mutex, Dekkers algoritm och monitorer. Javas ("inbyggda monitor") synchronized.

Java: kort introduktion. Trådar. Något om mutex, Dekkers algoritm och monitorer. Javas (inbyggda monitor) synchronized. 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ Java: kort introduktion. Trådar. Något om mutex, Dekkers algoritm och monitorer. Javas ("inbyggda monitor") synchronized. previous next Java Java är konstruerat på

Läs mer

Trådar i Java. Johan Ånäs. Seminarieuppsats Institutionen för informationsbehandling Åbo Akademi

Trådar i Java. Johan Ånäs. Seminarieuppsats Institutionen för informationsbehandling Åbo Akademi Trådar i Java Johan Ånäs Seminarieuppsats Institutionen för informationsbehandling Åbo Akademi Sammandrag I dagens samhälle är vi alla bekanta med att man kan köra flera tjänster och applikationer samtidigt.

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

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman Operativsystem Lektion 1 1 Lärare jem@cs.umu.se, B449 Lektioner etc Set Norman set@cs.umu.se, NAdv105 Labbar, labhandledning 2 Schema Notera att det finns ändringar i schemat!! Under perioden 1-8 mars

Läs mer

Tentamen Datorteknik och realtidssystem, TSEA81 Datum Lokal

Tentamen Datorteknik och realtidssystem, TSEA81 Datum Lokal Tentamen Datorteknik och realtidssystem, TSEA81 Datum 2018-04-0 Lokal G6 Tid 14-18 Kurskod TSEA81 Provkod TEN1 Kursnamn Datorteknik och realtidssystem Institution ISY Antal uppgifter 5 Antal sidor 16 (inklusive

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

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00 Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen 2019-01-11 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Anteckningarna lämnas

Läs mer

Karlstads Universitet, Datavetenskap 1

Karlstads Universitet, Datavetenskap 1 DAV B04 - Databasteknik KaU - Datavetenskap - DAV B04 - MGö 193 Tekniker för concurrency control Olika slags lås (locks) Tidsstämpling (timestamps) KaU - Datavetenskap - DAV B04 - MGö 194 Binära lås 2

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 7 mars 2012, klockan 14:00 19:00 i Vic 2, 3. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

Läs mer

Operativsystem (IS1350) :00-12:00

Operativsystem (IS1350) :00-12:00 Operativsystem (IS1350) 2017-03-15 08:00-12:00 Namn: Instruktioner Betyg Du får endast ha med dig skrivmateriel. Mobiler etc skall lämnas till tentamensvakterna. Svaren skall lämnas på dessa sidor, använd

Läs mer

Föreläsning 7 Datastrukturer (DAT037)

Föreläsning 7 Datastrukturer (DAT037) Föreläsning 7 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-21 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra

Läs mer

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

syftar till att förbättra prestanda. Den kan avse något eller flera av följande mått. 71 4. 4.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.

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

Tentamen. Datorteknik och realtidssystem

Tentamen. Datorteknik och realtidssystem Tentamen Datorteknik och realtidssystem, TSEA81 Datum 2017-01-09 Lokal U1 Tid 08-12 Kurskod TSEA81 Provkod TEN1 Kursnamn Datorteknik och realtidssystem Institution ISY Antal frågor 5 Antal sidor (inklusive

Läs mer

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013 DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013 Innehåll Trådar i Java swing- klassen Timer Klient-Server-program Trådar Tråd = enkel process Ett program kan ha flera trådar, flera

Läs mer

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg

Läs mer

Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet

Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet Vad händer när man kör ett program? Program och processer När man kompilerar ett program och sedan länkar ihop det så stoppar länkaren in lite extra kod i programmet. Det är denna kod som i sin tur anropar

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University Datum för tentamen Date of exam Sal Room Tid Time Kurskod Course code Provkod LADOK code

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2015-06-01 Lokal Tid 14-18 Kurskod Provkod Kursnamn Provnamn Institution Antal frågor 6 Antal sidor (inklusive denna sida) 6 Kursansvarig Lärare som besöker skrivsalen

Läs mer

Tentamen Nätverksprogrammering Lösningsförslag

Tentamen Nätverksprogrammering Lösningsförslag LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2018 03 14, 8.00 13.00 Del 1 1. Applikationslagret levererar data mellan applikationer och till

Läs mer

En problemställning är att realisera primitiver (funktioner) som måste programmeras vid inträde i och vid utträde ur (godtyckliga) kritiska avsnitt.

En problemställning är att realisera primitiver (funktioner) som måste programmeras vid inträde i och vid utträde ur (godtyckliga) kritiska avsnitt. 39 3. 3.1. Preliminära frågeställningar En problemställning är att realisera primitiver (funktioner) som måste programmeras vid inträde i och vid utträde ur (godtyckliga) kritiska avsnitt. Processmallen

Läs mer

Realtidssystem. - Introduktion, jämlöpande exekvering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 1

Realtidssystem. - Introduktion, jämlöpande exekvering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 1 Realtidssystem - Introduktion, jämlöpande exekvering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 1 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage)

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

Datorsystemteknik Föreläsning 7DAVA14

Datorsystemteknik Föreläsning 7DAVA14 Datorsystemteknik Föreläsning 7DAVA14 Innehåll Introduktion (forts) Polling (cyklisk avfrågning) Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Exempel

Läs mer

Föreläsning 3: Booleans, if, switch

Föreläsning 3: Booleans, if, switch TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt

Läs mer

1.1 Runnable och Thread

1.1 Runnable och Thread 1 Trådar 1.1 Runnable och Thread I övningen är ShoutThread hårdkodad att använda just ShoutRunnable. Det typiska förfarandet brukar annars vara att skicka över din Runnable i konstruktor-anropet till Thread:

Läs mer

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/4 2014 Innehåll Kort om Javas Exceptions Trådar i Java swing- klassen Timer Klient-Server-program Javas Exceptions Checked måste hanteras,

Läs mer

Processer och trådar. Rasmus Cronstrand Per Jonsson Ante Wall Fabian Åberg

Processer och trådar. Rasmus Cronstrand Per Jonsson Ante Wall Fabian Åberg Linköpings universitet Institutionen för datavetenskap TDDI81 Hemuppgift Processer och trådar av Rasmus Cronstrand Per Jonsson Ante Wall Fabian Åberg rascr534 / perjo927 / antwa730 / fabab714 2014-02-24

Läs mer

Tentamen vid Institutionen för Datavetenskap, Linköpings universitet

Tentamen vid Institutionen för Datavetenskap, Linköpings universitet TENTAMEN TDDC47 Realtids- och processprogrammering Datum: 2008-12-12 Tid: 8-12 Lokal: KÅRA Jourhavande-lärare: Jonas Elmqvist (Tel: 013-28 26 75, 070-647 63 72) Hjälpmedel: Poängantal: Engelsk lexikon/english

Läs mer

Tentamen Nätverksprogrammering Lösningsförslag

Tentamen Nätverksprogrammering Lösningsförslag LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2012 05 28, 8.00 13.00 Del 1 1. Time To Live (TTL) anger hur många routrar ett multicastpaket

Läs mer

Operativsystem ID2200/06 tentamen och omtentamen :00-12:00

Operativsystem ID2200/06 tentamen och omtentamen :00-12:00 Operativsystem ID2200/06 tentamen och omtentamen 2017-01-14 08:00-12:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Mobiler etc skall

Läs mer

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output Programmering hh.se/db2004 Föreläsning 5: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite mer om Javas stöd för fält Hur många element har ett fält?

Läs mer

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel Data- och Programstrukturer Provmoment: Ladokkod: Tentamen ges för: Omtentamen NDP011 Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum:

Läs mer

Signaler. Icke tillförlitliga signaler. Vad göra?

Signaler. Icke tillförlitliga signaler. Vad göra? Signaler Signaler Signaler kan betecknas som mjukvaruavbrott och du kan välja om du vill ta hand om dessa signaler eller strunta i dem. De funkar på ungefär samma sätt som hårdvaruavbrott och du kan definiera

Läs mer

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00 Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen 2019-01-11 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Anteckningarna lämnas

Läs mer

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö Kö (ADT) En kö fungerar som en kö. Man fyller på den längst bak och tömmer den längst fram

Läs mer

Tentamen, Distribuerade System/Programvaruarkitektur 2001-08-24

Tentamen, Distribuerade System/Programvaruarkitektur 2001-08-24 Tentamen, Distribuerade System/Programvaruarkitektur 2001-08-24 FÖRSÄTTSBLAD Inlämnas ifyllt tillsammans med tentan. Skriv namn på samtliga blad. Ange nedan vilka uppgifter du besvarat. Uppgift Besvarad

Läs mer

Parallellism, återblick

Parallellism, återblick Parallellism, återblick Josef Svenningsson December 11, 2012 Lab7 Det är problem med lab7. Gå med i den grupp som ni använt tidigare. DEMO Flera saker händer samtidigt Ofta hanterar program olika indata

Läs mer