Tentamen. Datorteknik och realtidssystem

Storlek: px
Starta visningen från sidan:

Download "Tentamen. Datorteknik och realtidssystem"

Transkript

1 Tentamen Datorteknik och realtidssystem, TSEA81 Datum Lokal TER2 Tid Kurskod TSEA81 Provkod TEN1 Kursnamn Datorteknik och realtidssystem Institution ISY Antal frågor 5 Antal sidor (inklusive denna 17 sida) Kursansvarig Anders Nilsson Lärare som besöker skrivsalen Anders Nilsson Telefon under skrivtiden Besöker skrivsalen Cirka 15 och 17 Kursadministratör Gunnel Hässler Tillåtna hjälpmedel Betygsgränser Inga Poäng Betyg U Viktig information Alla svar ska ha en motivation om inget annat anges. Om du svarar med programkod räknas kommentarer i programkoden som motivation. Svar som ej är motiverade kan leda till poängavdrag Om inget annat anges ska du anta att schemaläggningsmetoden som används är priority based, preemptive, scheduling Om du är osäker på det exakta namnet för en viss funktion, skriv en kommentar om vad funktionen gör så kommer vi troligtvis att förstå vad du menar. (Detsamma gäller syntaxen för programspråket C.) Skriv läsbart! Oläsbar text kan inte bedömas och ger därmed inga poäng. Lycka till! 1

2 Fråga 1: Periodiska processer(10p) Ett realtidssystem med tre periodiska processer, P1, P2 och P3, ska schemaläggas. Följande krav gäller: P1 ska köras under 1 tidsenhet i tidsintervallet [i4, (i + 1)4], där i är ett heltal och i 0. P2 ska köras under 3 tidsenheter i tidsintervallet [i7, (i + 1)7], där i är ett heltal och i 0. P3 ska köras under n tidsenheter i tidsintervallet [i14, (i + 1)14], där i är ett heltal och i 0. Varje process aktiveras vid startpunkten för respektive tidsintervall. Det innebär att P1 aktiveras vid var 4:e tidsenhet, med start vid tidpunkten 0, P2 aktiveras vid var 7:e tidsenhet, med start vid tidpunkten 0, och P3 aktiveras vid var 14:e tidsenhet, med start vid tidpunkten 0. Varje process har en deadline vid slutet av respektive tidsintervall. Det innebär att P1 har en deadline vid var 4:e tidsenhet, med början vid tidpunkten 4, P2 har en deadline vid var 7:e tidsenhet, med början vid tidpunkten 7, och P3 har en deadline vid var 14:e tidsenhet, med början vid tidpunkten 14. Tänk på att för varje deluppgift nedan tydligt visa och motivera hur du kommer fram till svaret. Ett sätt kan vara att rita en tidslinje där det framgår när och hur länge respektive process kör och var de har sina deadlines. (a) (5p) Antag att schemaläggningen Rate Monotonic Scheduling (RMS) används. Bestäm största möjliga värde på n, förutsatt att processernas krav uppfylls och att de klarar sina respektive deadlines. Bestäm också utnyttjandegraden U e under samma förutsättningar. (b) (5p) Antag att schemaläggningen Earliest Deadline First (EDF) används. Bestäm största möjliga värde på n, förutsatt att processernas krav uppfylls och att de klarar sina respektive deadlines. Bestäm också utnyttjandegraden U e under samma förutsättningar. 2

3 Fråga 2: Meddelandehantering(12p) En realtidsapplikation som använder meddelandehantering i Simple OS ska implementeras. Applikationen ska utgöra en timer med alarm. Följande funktioner finns redan: int get_input(void) // Returnerar ett eventuellt inmatat heltal, dock först efter att // användaren tryckt på enter-tangenten. OBSERVERA att eftersom denna // funktion stannar och väntar på inmatning så kommer endast // den process som anropat funktionen kunna vara körande, till dess // att funktionen returnerar förstås. void show_time(int timer_value) // Uppdaterar timerns display, och returnerar sedan void start_alarm(void) // Startar alarm-ljudet på timern, och returnerar sedan // Alarm-ljudet fortsätter, oavsett vad som händer för övrigt, ända // tills stop_alarm aktiverats void stop_alarm(void) // Stoppar alarm-ljudet på timern, och returnerar sedan I Simple OS finns även färdiga funktioner för att skicka och ta emot meddelanden: void si_message_send(const char message[], int length, int receive_pid) // Skickar meddelande, av längden length tecken, till processen med id receive_pid. // Anropande process väntar om meddelandebuffern är full. void si_message_receive(char message[], int *length, int *send_pid) // Tar emot meddelande, med längden *length tecken, från processen med id *send_id. // Anropande process väntar om meddelandebuffern är tom. Samt en lämplig funktion för att vänta en viss tid: void si_wait_n_ms(int n_ms) // Anropande process väntar n_ms millisekunder Följande krav finns: Timern ska använda sig av sekundnoggrannhet (ungefär) Det ska finns fyra processer i lösningen vars huvudsakliga uppgift ska vara följande (dvs du får införa mer funktionalitet, men inte mindre, om du behöver): 1. tick task : hålla reda på när det gått en sekund 2. timer task : hålla reda på återstående timer-tid 3. alarm task : starta och stoppa alarm-ljudet 4. user task : ta emot inmatning från användaren Du får INTE deklarera fler nya funktioner utöver dom som redan finns ovan. Du får förstås använda dig av redan existerande funktioner från C-språket och Simple OS om du vill. 3

4 Du kan räkna med att nödvändiga header-filer finns inkluderade samt att meddelandestackar för processerna finns deklarerade och initierade Du måste själv bestämma vilka och hur många meddelandetyper som behövs. Obs, glöm inte att visa detta. Du måste själv bestämma hur meddelandestrukturen ser ut. Obs, glöm inte att visa detta. Användaren ska kunna mata in en tid endast då timern står stilla. Så fort användaren matat in en tid ska timern börja räkna tiden. När den inmatade tiden har gått ska alarmet starta Användaren ska, genom att trycka på enter-tangenten, kunna bekräfta (stoppa) alarmet först när alarmet startat. Därefter ska användaren kunna mata in en ny tid. Huvudprogrammet ser ut enligt följande: int main(int argc, char **argv) /* initialise kernel */ si_kernel_init(); /* initialise message handling */ si_message_init(); /* create tasks, id s are set in starting order, starting with 1 */ si_task_create(tick_task, &tick_task_stack[stack_size-1], 10); int Tick_Task_Id = 1; si_task_create(timer_task, &timer_task_stack[stack_size-1], 12); int Timer_Task_Id = 2; si_task_create(alarm_task, &alarm_task_stack[stack_size-1], 14); int Alarm_Task_Id = 3; si_task_create(user_task, &user_task_stack[stack_size-1], 16); int User_Task_Id = 4; /* start the kernel */ si_kernel_start(); /* will never be here */ return 0; Din uppgift är alltså, utöver deklaration av meddelandetyper och meddelandestruktur enligt kraven ovan, att skriva koden för de fyra processerna tick task, timer task, alarm task och user task. 4

5 Fråga 3: Semaforer och händelsevariabler(10p) Betrakta följande program: #include <simple_os.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define BUFFER_SIZE 1 #define STACK_SIZE 5000 stack_item Producer_Stack[STACK_SIZE]; stack_item Consumer_Stack[STACK_SIZE]; /* data structure for buffer */ typedef struct /* the buffer itself */ char buffer_data[buffer_size]; /* position for next write */ int in_pos; /* position for next read */ int out_pos; /* number of elements in the buffer */ int count; /* semaphore for protection of the buffer */ si_semaphore mutex; /* event to indicate that the buffer has changed state, from full to non-full or from empty to non-empty */ si_condvar change; buffer_data_type; typedef buffer_data_type* buffer_type; buffer_type buffer; /* create buffer: creates a buffer and initialises the created buffer */ buffer_type create_buffer(void) /* reference to the created buffer */ buffer_type buffer; /* allocate memory */ buffer = (buffer_type) malloc(sizeof(buffer_data_type)); 5

6 /* start writing at first position */ buffer->in_pos = 0; /* start reading at first position */ buffer->out_pos = 0; /* no elements ar stored in the buffer */ buffer->count = 0; /* initialise semaphore and event variable */ si_sem_init(&buffer->mutex, 1); si_cv_init(&buffer->change, &buffer->mutex); return buffer; /* put item: stores an item in buffer */ void put_item(buffer_type buffer, char item) /* reserve buffer */ si_sem_wait(&buffer->mutex); /* check if the buffer is full, and if this is so, wait */ while (buffer->count == BUFFER_SIZE) si_cv_wait(&buffer->change); /* store item in buffer */ buffer->buffer_data[buffer->in_pos] = item; buffer->in_pos++; if (buffer->in_pos == BUFFER_SIZE) buffer->in_pos = 0; buffer->count++; /* notify other processes that a change has occurred */ si_cv_broadcast(&buffer->change); /* release buffer */ si_sem_signal(&buffer->mutex); 6

7 /* get_item: read an item from the buffer */ char get_item(buffer_type buffer) /* item to read from the buffer */ char item; /* reserve buffer */ si_sem_wait(&buffer->mutex); /* check if buffer is empty, and if this is so, wait */ while (buffer->count == 0) si_cv_wait(&buffer->change); /* read item from buffer */ item = buffer->buffer_data[buffer->out_pos]; buffer->out_pos++; if (buffer->out_pos == BUFFER_SIZE) buffer->out_pos = 0; buffer->count--; /* notify other processes that a change has occurred */ si_cv_broadcast(&buffer->change); /* release buffer */ si_sem_signal(&buffer->mutex); /* return value read */ return item; void producer_task(void) char string_to_send[] = "123"; int i; char item; while(1) for (i=0; i<strlen(string_to_send); i++) item = string_to_send[i]; put_item(buffer, item); printf("p:%c\n",item); si_wait_n_ms(2000); 7

8 void consumer_task(void) char item; while(1) item = get_item(buffer); printf("c:%c\n",item); /* main */ int main(void) /* initialise kernel */ si_kernel_init(); buffer = create_buffer(); /* create tasks */ si_task_create(producer_task, &Producer_Stack[STACK_SIZE-1], 10); // Highest priority si_task_create(consumer_task, &Consumer_Stack[STACK_SIZE-1], 20); // Lowest priority /* start the kernel */ si_kernel_start(); /* will never be here */ return 0; (a) (2p) Vad skriver programmet ut fram till dess att producer task väntat färdigt i 2000 ms, dvs under första varvet i while-loopen? Det räcker med ett svar som endast visar själv utskriften. (b) (8p) Beskriv varför utskriften blir som den blir i uppgift (a). Var noggrann med att förklara och motivera, gärna stegvis. Tänk på att beskriva, vad som händer och varför med processerna vid relevanta tillfällen, vilka relevanta funktioner som anropas samt bufferns status och innehåll. 8

9 Fråga 4: Barriär(9p) En synkroniseringsmekanism inom realtidssystem är en så kallad barriär. Denna används för att låta ett flertal processer vänta in varandra vid ett visst skede, t ex efter att varje process utfört ett visst arbete, innan man sedan låter processerna fortsätta med nästa omgång av arbetet. Skriv C-funktionen för en barriär med följande funktionshuvud: void barrier(int N) Funktionen barrier skulle kunna användas för en av t ex fem tänkta processer enligt följande: void *task1(void *unused) while(1) do_work(); barrier(5); Följande krav gäller: Barriär-funktionen barrier ska utgöra en barriär för mer än en process åt gången Ingen process får lämna barriären förrän alla aktuella processer från samma omgång har trätt in i barriären Ingen process får träda in i barriären förrän alla processer från föregående omgång lämnat barriären Eventuella egna variabler och funktioner måste deklareras Du kan valfritt använda realtidsfunktioner från antingen Linux eller Simple OS Programkoden behöver vara tydligt kommenterad för full poäng 9

10 Fråga 5: Stark/svag semafor(9p) Följande pseudokod utgör wait- och signal-funktionerna för en semafor: void wait(scb *Mutex) om fältet Count i Mutex är större än noll minska fältet Count i Mutex med ett annars flytta körande process PCB från ReadyList till listan WaitList anropa Schedule void signal(scb *mutex) om fältet WaitList i Mutex representerar en tom lista öka fältet Count i Mutex med ett annars flytta ett PCB från listan Waitlist till Readylist anropa Schedule (a) (1p) Är pseudokoden ovan för en stark eller svag semafor? (b) (1p) Vad är huvudsyftet med en stark semafor? (c) (1p) Vad är huvudsyftet med en svag semafor? (d) (6p) Modifiera pseudokoden för wait och signal ovan. Om pseudokoden ovan är en stark semafor, skriv då pseudokod för en svag semafor. Om pseudokoden ovan är en svag semafor, skriv då pseudokod för en stark semafor. 10

11 Lösningsförslag fråga 1: 1a Med RMS (Rate Monotonic Scheduling) får processerna prioriteter efter periodtid. Ju kortare periodtid, ju högre prioritet. Detta medför att prioriteten för P1 > P2 > P3. Därefter schemaläggs processerna med principen priority based preemptive scheduling. Vid tidpunkten 0 är alla processer samtidigt körklara, vilket händer nästa gång vid tidpunkten 28 då förloppet upprepar sig. Processerna blir körande enligt figur nedan. Deadlines för respektive process är markerade med lodräta streck. P3 P P Under tidsintervallet 0-14 kan P3 köra under totalt 4 tidsenheter, och under tidsintervallet kan P3 köra under 5 tidsenheter. Dvs n måste då sättas till det lägre alternativet, n = 4. Resursutnyttjandet blir därför U e = 27/ b Med EDF (Earliest Deadline First) är det möjligt att uppnå 100 procent utnyttjandegrad, dvs U e = 1. Största värdet på n ges då av följande ekvation: n 14 = 1 vilket ger n = 4,5. Observera att i uppgiften finns ingen förutsättning som säger att tidsavbrott endast kan ske vid hela tidsintervall. Dvs, det är fullt möjligt att bryta vid delar av tidsenheter. En körklar process med kortast tid till sin deadline är den som får köra. Om flera processer har samma tid till deadline och en av dem är körande så låter man den processen fortsätta, för att på så sätt undvika ett processbyte. I annat fall kvittar det vilken process som kör då flera processer har samma tid till sin deadline. Vid tidpunkten 0 är alla processer samtidigt körklara, vilket händer nästa gång vid tidpunkten 28 då förloppet upprepar sig. Processerna blir körande enligt exempel i följande figur (Det kan ju variera något beroende på vilken process man väljer när flera processer är körklara med samma tid till sin deadline). Deadlines för respektive process är markerade med lodräta streck. P3 P P , ,5 1,5 1,5 3 3 Lösningsförslag fråga 2: Om man för sig själv börjar med att rita upp en figur över de aktuella processerna med meddelandetyper och kommunikationsvägar så blir jobbet sedan bara att översätta den figuren till kod. 11

12 tick TICK timer TIME user START alarm START,ACK STOP Processen tick task skickar TICK-meddelanden till timer task en gång i sekunden. Processen user task börjar med inmatningsfunktionen get input, vilket leder till att inga andra processer därefter blir körande förrän användaren tryckt på enter-tangenten och get input returnerar. Då skickar user task ett TIME-meddelande till timer task, som därefter kan börja räkna tiden. När det är dags att starta alarmet så skickar timer task ett START-meddelande till alarm task, som startar alarmet och först därefter informerar user task (via ännu ett START-meddelande) att detta skett. Då kan user task övergå till att bekräfta alarmet via inmatningsfunktionen get input och skicka ett STOP-meddelande till alarm task som stoppar alarmet och sedan bekräftar detta till user task med ett ACK-meddelande. Då kan user task återgå till att ta in ett nytt timer-värde via inmatningsfunktionen get input. /* message types */ #define TICK_MESSAGE 0 #define TIME_MESSAGE 1 #define START_ALARM_MESSAGE 2 #define STOP_ALARM_MESSAGE 3 #define ACK_MESSAGE 4 /* message data type */ typedef struct int type; int timer_value; message_data_type; void tick_task(void) message_data_type message; while(1) si_wait_n_ms(1000); message.type = TICK_MESSAGE; si_message_send((char*) &message, sizeof(message), Timer_Task_Id); void timer_task(void) message_data_type message; 12

13 int length; int send_task_id; int timer_value = 0; while(1) si_message_receive((char *) &message, &length, &send_task_id); switch(message.type) case TICK_MESSAGE: timer_value--; show_timer(timer_value); if (timer_value == 0) message.type = START_ALARM_MESSAGE; si_message_send((char *) &message, sizeof(message), Alarm_Task_Id); break; case TIME_MESSAGE: timer_value = message.timer_value; show_timer(timer_value); break; void alarm_task(void) message_data_type message; int length; int send_task_id; while(1) si_message_receive((char *) &message, &length, &send_task_id); switch(message.type) case START_ALARM_MESSAGE: start_alarm(); message.type = START_ALARM_MESSAGE; si_message_send((char *) &message, sizeof(message), User_Task_Id); break; case STOP_ALARM_MESSAGE: stop_alarm(); message.type = ACK_MESSAGE; si_message_send((char *) &message, sizeof(message), User_Task_Id); break; 13

14 void user_task(void) message_data_type message; int length; int send_task_id; while(1) message.timer_value = get_input(); message.type = TIME_MESSAGE; si_message_send((char *) &message, sizeof(message), Timer_Task_Id); si_message_receive((char*) &message, &length, &send_task_id); message.timer_value = get_input(); message.type = STOP_ALARM_MESSAGE; si_message_send((char*) &message, sizeof(message), Alarm_Task_Id); si_message_receive((char*) &message, &length, &send_task_id); Lösningsförslag fråga 3: 3a Programmet skriver ut följande under första varvet i while-loopen för producer task: P:1 P:2 C:1 P:3 C:2 C:3 3b Vi kallar producer task för P, och consumer task för C. 1. P (högst prio) anropar put item med 1 (buffern ledig och tom), lägger in 1 i buffern, si cv broadcast orsakar inget, si sem signal låter P (högst prio) fortsätta. 2. P skriver ut P:1 3. P anropar put item med 2 (buffern ledig och full), P flyttas till väntelistan för händelsevariabeln change, C blir körande. 4. C anropar get item (buffern ledig och full), läser 1, si cv broadcast flyttar P från väntelistan för change till väntelistan för semaforen mutex, si sem signal flyttar P från väntelistan för semaforen till readylistan och P (högst prio) blir körande. 5. P fortsätter i put item (buffern ledig och tom), skriver in 2 i buffern. si cv broadcast orsakar inget, si sem signal låter P (högst prio) fortsätta. 6. P skriver ut P:2 14

15 7. P anropar put item med 3 (buffern ledig och full), P flyttas till väntelistan för händelsevariabeln change, C blir körande. 8. C returnerar från get item med C skriver ut C:1 10. C anropar get item (buffern ledig och full), läser 2, si cv broadcast flyttar P från väntelistan för change till väntelistan för semaforen mutex, si sem signal flyttar P från väntelistan för semaforen till readylistan och P (högst prio) blir körande. 11. P fortsätter i put item (buffern ledig och tom), skriver in 3 i buffern, si cv broadcast orsakar inget, si sem signal låter P (högst prio) fortsätta. 12. P skriver ut P:3, P ställer sig och väntar 2000 ms, C blir körande 13. C returnerar från get item med C skriver ut C:2 15. C anropar get item (buffern ledig och full), läser 3, si cv broadcast orsakar inget, si sem signal låter C fortsätta (endast C är redo). 16. C skriver ut C:3, anropar get item och blir väntande på händelsevariabeln (buffern tom). Lösningsförlag fråga 4: På något sätt behöver man hantera det faktum att processer från nästa omgång kan vilja gå in i barriären innan alla processer från föregående omgång har lämnat barriären. Detta görs i nedanstående lösning med variabeln barrier state som håller reda på om samma omgång av processer är i tillståndet ENTERING eller EXITING. int num = 0; typedef enum ENTERING, EXITING barrier_state_t; barrier_state_t state = ENTERING; pthread_mutex_t mutex; pthread_cond_t cv; void barrier(int N) /* reserve common resources */ pthread_mutex_lock(&mutex); /* as long as the previous round of tasks are in the process of exiting the barrier, no new tasks may enter the barrier */ while(state == EXITING) /* hold new arriving tasks from the next round */ pthread_cond_wait(&cv, &mutex); /* increase number of tasks in barrier */ num++; /* announce that another task has entered the barrier */ pthread_cond_broadcast(&cv); 15

16 /* as long as tasks are entering the barrier and until all relevant tasks have entered, hold tasks in a waiting state */ while(state == ENTERING) pthread_cond_wait(&cv, &mutex); /* if all relevant tasks have entered the barrier, it s time to exit */ if (num == N) state = EXITING; /* broadcast here is not really neccessary since it will be done just before exiting the function, but it might be more efficient here*/ pthread_cond_broadcast(&cv); /* decrease number of tasks in barrier */ num--; /* when all relevant tasks have exited the barrier, let the next round of tasks enter by changing state to ENTERING */ if (num == 0) state = ENTERING; /* announce that a task is leaving the barrier */ pthread_cond_broadcast(&cv); /* release common resources */ pthread_mutex_unlock(&mutex); Lösningsförlag fråga 5: 5a Den givna pseudokoden utgör en stark semafor. 5b En stark semafor förhindrar svält, dvs även lågprioriterade processer får möjlighet att exekvera. 5c En svag semafor hindrar inte exekveringen av högprioriterade processer (dvs tillåter svält), vilket kan vara önskvärt i vissa realtidssystem. 5d Pseudokoden för en svag semafor skulle kunna se ut så här: 16

17 void wait(scb *Mutex) så länge fältet Count i Mutex är lika med noll flytta körande process PCB från ReadyList till WaitList anropa Schedule minska fältet Count i Mutex med ett void signal(scb *Mutex) nollställ flagga för att anropa Schedule om fältet WaitList i Mutex inte representerar en tom lista flytta ett PCB från listan WaitList till ReadyList sätt flagga för att anropa Schedule öka fältet Count i Mutex med ett om flaggan för att anropa Schedule är satt anropa Schedule 17

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

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

Tentamen Datorteknik och realtidssystem, TSEA81 Datum Lokal

Tentamen Datorteknik och realtidssystem, TSEA81 Datum Lokal Tentamen Datorteknik och realtidssystem, TSEA81 Datum 2018-08-24 Lokal TER1 Tid 14-18 Kurskod TSEA81 Provkod TEN1 Kursnamn Datorteknik och realtidssystem Institution ISY Antal uppgifter 5 Antal sidor 17

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

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

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

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

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ö 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 i Introduktion till programmering

Tentamen i Introduktion till programmering Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:

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

Fö 7+8 TSEA81. Scheduling + Real-time Linux. wait. } else { sem->wait_list, WAIT_LIST_SIZE, pid); // semaphore waiting list

Fö 7+8 TSEA81. Scheduling + Real-time Linux. wait. } else { sem->wait_list, WAIT_LIST_SIZE, pid); // semaphore waiting list Fö 7+8 TSEA81 Scheduling + Real-time Linux wait void si_sem_wait(si_semaphore *sem) int pid; DISABLE_INTERRUPTS; // wait operation on semaphore sem // process id // atomic section begins if (sem->counter

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

Tentamen Grundläggande programmering

Tentamen Grundläggande programmering Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4:

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

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

Recap Mera om nya typer Kort Fält. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes. IDE-sektionen.

Recap Mera om nya typer Kort Fält. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes. IDE-sektionen. Programmering Sommarkurs 2007 www.hh.se/staff/vero/programmering Verónica Gaspes IDE-sektionen Juni 14 Utkast 1 Recap 2 Mera om nya typer 3 Kort 4 Fält Recap Man kan ge namn till typer. Vi undersökte enum

Läs mer

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad. 5(16) Tentamen på kurserna Programmeringsteknik med C och Matlab Programmering i C Tid: 2/11-11, kl. 9-13 Lärare: Jonny Pettersson Totalt: 60 poäng Betyg 3: 30 poäng Betyg 4: 39 poäng Betyg 5: 48 poäng

Läs mer

En kort text om programmering i C.

En kort text om programmering i C. En kort text om programmering i C C skapades 1972 av Brian Ritchie och Dennis Kerighan på Bell Labs i USA Det blev det språk som är mest använt genom tiderna Det finns många olika språk Pascal, FORTH,

Läs mer

Support Manual HoistLocatel Electronic Locks

Support Manual HoistLocatel Electronic Locks Support Manual HoistLocatel Electronic Locks 1. S70, Create a Terminating Card for Cards Terminating Card 2. Select the card you want to block, look among Card No. Then click on the single arrow pointing

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

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

HI1024 Programmering, grundkurs TEN2 2015-10-30

HI1024 Programmering, grundkurs TEN2 2015-10-30 HI1024 Programmering, grundkurs TEN2 2015-10-30 KTH STH Haninge 8.15-13.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

Exempelsamling Assemblerprogrammering

Exempelsamling Assemblerprogrammering Exempelsamling Assemblerprogrammering I uppgifterna nedan utgå från följande programskelett: #include.data var1:.word 12 var2:.word 19 sum: prod:.float 0.set noreorder.text.globl start.ent start

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

Tentamen *:58/ID100V Programmering i C Exempel 3

Tentamen *:58/ID100V Programmering i C Exempel 3 DSV Tentamen *:58/ID100V Sid 1(5) Tentamen *:58/ID100V Programmering i C Exempel 3 Denna tentamen består av fyra uppgifter som tillsammans kan de ge maximalt 22 poäng. För godkänt resultat krävs minst

Läs mer

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167 GU / Chalmers Campus Lindholmen Tentamen Programutveckling 2016-01-13 LEU 482 / TIG167 Examinator: Henrik Sandklef (0700-909363) Tid för tentamen: 2016-01-13, 08.30 12.30 Ansvarig lärare: Henrik Sandklef,

Läs mer

Operativsystem ID1200/06 Tentamen :00-18:00

Operativsystem ID1200/06 Tentamen :00-18:00 Operativsystem ID1200/06 Tentamen 2018-01-12 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa sidor,

Läs mer

Tentamen. Datorteknik och realtidssystem

Tentamen. Datorteknik och realtidssystem Tentamen Datorteknik och realtidssystem, TSEA81 Datum 2014-01-13 Lokal KÅRA Tid 8-12 Kurskod TSEA81 Provkod TEN1 Kursnamn Datorteknik och realtidssystem Institution ISY Antal frågor 4 Antal sidor (inklusive

Läs mer

#include <stdio.h> #include <string.h>

#include <stdio.h> #include <string.h> #include #include void fun(char s[]) int i=-1; while(s[++i]!=0) if('a'

Läs mer

Aktivitetsschemaläggning för flerkärninga processorer

Aktivitetsschemaläggning för flerkärninga processorer Lunds Tekniska Högskola Datorarkitekturer med Operativsystem EDT621 Aktivitetsschemaläggning för flerkärninga processorer Tobias Lilja 5 december 2016 Innehåll 1 Inledning 3 1.1 Syfte................................

Läs mer

BÄNKVÅG / BENCH SCALE ANVÄNDARMANUAL / USER MANUAL SW-III www.liden-weighing.com Svenska OBS! Under vågen sitter en justerbar skruv (se bild). Standardinställning är den för vägning. Om ni vill rengöra

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

BÄNKVÅG / BENCH SCALE Modell : SW-III / Model : SW-III ANVÄNDARMANUAL / USER MANUAL SW-III WWW.LIDEN-WEIGHING.SE 2014-03-26 OBS! Under vågen sitter en justerbar skruv (se bild). Standardinställning är

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

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 6: Filhantering Henrik Björklund Umeå universitet 13 oktober 2009 Björklund (UmU) Programmeringsteknik 13 oktober 2009 1 / 22 Textfiler Filer är sekvenser

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

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

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

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN HI1024 Programmering, grundkurs TEN2 2016-01-09 KTH STH Haninge 8.15-13.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

Fö 8 TSEA81. Real-time Linux

Fö 8 TSEA81. Real-time Linux Fö 8 TSEA81 Real-time Linux Real-time Linux Olika sätt att åstadkomma Real-time Linux: * Linux 2.6 har CONFIG_PREEMPT option, dvs även processer som gör systemanrop kan preemptas. * Linux 2.6 kan köras

Läs mer

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen Tentamen för teknisk kemi, 10p, moment 1 29 november 1999 Skrivtid 9-15 Hjälpmedel: av följande böcker. - U. Bilting och J. Skansholm: Vägen till C - A. Kelley & I. Pohl: A Book on C Maxpoäng: Gräns för

Läs mer

Övning från förra gången: readword

Övning från förra gången: readword (9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

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 13 mars 2013, klockan 14:00 19:00 i Vic 2 A-D, 3 A-C. Tillåtna hjälpmedel: på tentan utdelad

Läs mer

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011, KTH STH TENTAMEN HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011, 8.15-13.15 Gamla kurskoder: HI1900, 6E2950, etc. Examinator: Johnny Panrike Rättande lärare: Nicklas Brandefelt, Johnny

Läs mer

PROGRAMMERING-JAVA TENTAMINA

PROGRAMMERING-JAVA TENTAMINA PROGRAMMERING-JAVA TENTAMINA Nicolina Månsson 2010-08-16 (Kontaktperson Nicolina Månsson, tel. 0768-530640) Tentamensinstruktioner Poängsättning Hela tentamen omfattar 42 poäng. Poäng för varje uppgift

Läs mer

Pekare och arrayer. Indexering och avreferering

Pekare och arrayer. Indexering och avreferering Pekare och arrayer En array är ett sammanhängande minnesområde rymmande ett antal element av en viss typ. Arraynamnet kan ses som adressen till arrayens början, dvs. dess första element. En pekare är en

Läs mer

Möte 7: Uppföljning av föreläsningen med Peer Instruction - (PI)

Möte 7: Uppföljning av föreläsningen med Peer Instruction - (PI) Möte 7: Uppföljning av föreläsningen med Peer Instruction - (PI) Som sagt så kommer den här kursen endast innehålla en enda föreläsning och det var förra gången. Från och med nu så kommer vi förutsätta

Läs mer

tentaplugg.nu av studenter för studenter

tentaplugg.nu av studenter för studenter tentaplugg.nu av studenter för studenter Kurskod Kursnamn D0017E Inledande programmering för ingenjörer Datum 2014-10-31 Material Tentamen Kursexaminator Betygsgränser Tentamenspoäng 3 14; 4??; 5?? 25/25

Läs mer

BMI = (vikt i kg) / (längd i m) 2. Lösningsförslag

BMI = (vikt i kg) / (längd i m) 2. Lösningsförslag HI1024 TEN2 2013-10-28 Betygsgränser: Fx-8, E-9, D-11, C-12, B-14, A-16 (MAX-18) Generella rättningsnormer: Mycket dåliga variabelnamn ger -1p totalt på provet vid andra tillfället Inga eller dåliga kommentarer

Läs mer

Tentamen i Realtidsprogrammering för Au3, D3, E3

Tentamen i Realtidsprogrammering för Au3, D3, E3 Tentamen i Realtidsprogrammering för Au3, D3, E3 Ordinarie Tentamen Datum: 2005-10-21 Tid: 14:00-19:00 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng

Läs mer

Lösningsförslag. TDDC74 Programmering: Abstraktion och modellering. Dugga 3 (provkod TEN1), Tid: kl 14-16, Datum:

Lösningsförslag. TDDC74 Programmering: Abstraktion och modellering. Dugga 3 (provkod TEN1), Tid: kl 14-16, Datum: Dugga 3 (provkod TEN1), Tid: kl 14-16, Datum: 2013-03-12 Lösningsförslag Dugga 3 (provkod TEN1), Tid: kl 14-16, Datum: 2013-03- 12 Läs alla frågorna först och bestäm dig för den ordning som passar dig

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2014-06-12 Skrivtid: 1400-1900 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

PROGRAMMERING-Java Omtentamina

PROGRAMMERING-Java Omtentamina PROGRAMMERING-Java Omtentamina Nicolina Månsson 2007-08 13 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 41 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. -

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

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 ID1200/06 och ID2200/06 Tentamen TENA 6 hp :00-18:00

Operativsystem ID1200/06 och ID2200/06 Tentamen TENA 6 hp :00-18:00 Operativsystem ID1200/06 och ID2200/06 Tentamen TENA 6 hp 2018-04-03 14:00-18:00 Omtentander på ID2200 TEN1 3.8 hp och ID2206 TEN1 4.5 hp skall inte skriva denna tentamen! Instruktioner Du får, förutom

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

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16 TDDC74 Programmering: Abstraktion och modellering Dugga 2, 207-04-06, kl 4-6 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.

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 Torsdagen den 13 mars 2014, klockan 14:00 19:00 i MA:10. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla TentamensKod: Tentamensdatum: 180322 Tid: 09.00 13.00 Hjälpmedel:

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

Kurskod D0010E Datum 2012-05-15 Skrivtid 5tim

Kurskod D0010E Datum 2012-05-15 Skrivtid 5tim LULEÅ TEKNISKA UNIVERSITET Tentamen i Objektorienterad programmering och design Totala antalet uppgifter: 5 Lärare: Håkan Jonsson, 491000, 073-820 1700 Resultatet o entliggörs senast: 2012-05-29. Tillåtna

Läs mer

tentaplugg.nu av studenter för studenter

tentaplugg.nu av studenter för studenter tentaplugg.nu av studenter för studenter Kurskod Kursnamn UU-76062 Inledande programmering i Java Datum 2014-07-13 Material Tentamen Kursexaminator Betygsgränser Tentamenspoäng G 30; VG 36 40 (VG) Övrig

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

LULEÅ TEKNISKA UNIVERSITET

LULEÅ TEKNISKA UNIVERSITET LULEÅ TEKNISKA UNIVERSITET Tentamen i Objektorienterad programmering och design Totala antalet uppgifter: 5 Lärare: Håkan Jonsson, Andrey Kruglyak, 491000 Resultatet offentliggörs senast: 2010-04-09. Tillåtna

Läs mer

Enkla datatyper minne

Enkla datatyper minne Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in

Läs mer

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13.00. Omtentamen i Programmering C, Fri, Kväll, 050108.

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13.00. Omtentamen i Programmering C, Fri, Kväll, 050108. 1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13.00. Denna tenta kommer att vara färdigrättad Fr 14/1 och kan då hämtas på mitt tjänsterum,

Läs mer

*Pekarvärden *Pekarvariabler & *

*Pekarvärden *Pekarvariabler & * *Pekarvärden *Pekarvariabler & * Motivering Pekare är ett fundamentalt koncept i C (och C++) Multipla returvärden från funktioner. Arrayer hanteras via pekare Dynamiskt minne (kommer i slutet av kursen)

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

printenv sort pager printenv grep args sort pager

printenv sort pager printenv grep args sort pager 1 Problembeskrivning Uppgiften var att skriva ett program, digenv för att visa miljövariabler. programmet vara ekvivalent med att köra: Kört utan argument så skulle printenv sort pager och kört med argument

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

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

Tentamen PC-teknik 5 p

Tentamen PC-teknik 5 p Tentamen PC-teknik 5 p Namn:. Klass:... Program: Di2, Em3, Et3 Datum: 03-08-15 Tid: 13:30-18:30 Lokal: E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific C

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2012-03-14 Skrivtid: 0800-1100 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12 TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 215, kl 8 12 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.

Läs mer

Tentamen ges för: Tentamensdatum: Tid:

Tentamen ges för: Tentamensdatum: Tid: Programmering E 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Tentamen TE081B El2 Tentamensdatum: 2012-04-13 Tid: 900 1300 Hjälpmedel: Kursbok Kelley, Pohl: A Book on C, Fourth Edition Tillåtet

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

Laborationens mål är att få displayen att visa timmar, minuter och sekunder samt att kunna ställa klockan.

Laborationens mål är att få displayen att visa timmar, minuter och sekunder samt att kunna ställa klockan. Namn: Laborationen godkänd: Digitala system 15 p L T H I n g e n j ö r s h ö g s k o l a n v i d C a m p u s H e l s i n g b o r g Datorprojekt, del 3 Projektlaboration 3, hantering av klocka. Laborationsuppgifter:

Läs mer

Tentamen i Realtidsprogrammering

Tentamen i Realtidsprogrammering Tentamen i Realtidsprogrammering Omtentamen Datum: 2008-12-13 Tid: 14:00 17:00 Ansvarig lärare: Telefon: 301438 Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng fördelade på 5 uppgifter. 20 poäng

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för:

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 DE16, IMIT16, SYST16 och ITEK15 samt öppen för alla TentamensKod: Tentamensdatum: 170323 Tid: 09.00

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

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011 1 of 7 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

Läs mer

Objektorientering i liten skala

Objektorientering i liten skala Linköpings Universitet Institutionen för datavetenskap (IDA) UPP-gruppen 2012-10-24 Objektorientering i liten skala Mål I denna lab skall du skriva ett objektorienterat program. Programmet skall delas

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

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

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

Styrteknik: Binära tal, talsystem och koder D3:1

Styrteknik: Binära tal, talsystem och koder D3:1 Styrteknik: Binära tal, talsystem och koder D3:1 Digitala kursmoment D1 Boolesk algebra D2 Grundläggande logiska funktioner D3 Binära tal, talsystem och koder Styrteknik :Binära tal, talsystem och koder

Läs mer

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167 GU / Chalmers Campus Lindholmen Tentamen Programutveckling 2016-01-13 LEU 482 / TIG167 Examinator: Henrik Sandklef (0700-909363) Tid för tentamen: 2016-01-13, 08.30 12.30 Ansvarig lärare: Henrik Sandklef,

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

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011, Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1 Måndagen den 10 januari 2011, 8.15 12.15 Tentamen består av två delar, del A och del B. Del A innehåller 10 kryssfrågor på olika teman

Läs mer

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN HI1024 Programmering, grundkurs TEN2 2015-01-08 KTH STH Haninge 13.15-18.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19 TDDC74 Programmering: Abstraktion och modellering Dugga 2, 2017-04-06, kl 17-19 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i

Läs mer

Tentamen i Grundläggande Programvaruutveckling, TDA548

Tentamen i Grundläggande Programvaruutveckling, TDA548 Tentamen i Grundläggande Programvaruutveckling, Joachim von Hacht/Magnus Myreen Datum: 2017-08-14 Tid: 14.00-18.00 Hjälpmedel: Lexikon Engelskt-Valfritt språk. Betygsgränser: U: -23 3: 24-37 4: 38-47 5

Läs mer