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 U1 Tid Kurskod TSEA81 Provkod TEN1 Kursnamn Datorteknik och realtidssystem Institution ISY Antal frågor 5 Antal sidor (inklusive denna sida) 10 Kursansvarig Anders Nilsson Lärare som besöker skrivsalen Anders Nilsson Telefon under skrivtiden Besöker skrivsalen Cirka 9 och 11 Kursadministratör Gunnel Hässler Tillåtna hjälpmedel Inga Poäng Betyg Betygsgränser 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: Teori(9p) (a) (3p) Är följande påstående sant eller falskt? Den viktigaste egenskapen hos ett realtidssystem är att alla program som körs är väl optimerade och körs så snabbt som möjligt. Motivera noga! (b) (3p) Förklara vad priority inversion är och ge ett exempel på hur det kan uppkomma. (c) (3p) Namnge en vanlig mekanism och beskriv hur denna fungerar för att lösa problemet med priority inversion. Fråga 2: Schemaläggning(8p) Antag att du har följande två aktiviteter som måste köras enligt följande specifikationer på en dator som enbart har en processor: activity1(): Denna funktion måste köras var 7:e millisekund. Den tar 4 millisekunder att köra activity2(): Denna funktion måste köras var 3:e millisekund. Den tar 1 millisekund att köra Det här är utdrag ifrån källkoden till det program som är tänkt att implementera detta: void *thread1(void *unused) while(1) activity1(); // Tar 4 millisekunder att köra usleep(3000); // Sov i 3 millisekunder void *thread2(void *unused) while(1) activity2(); // Tar 1 millisekund att köra usleep(2000); // Sov i 2 millisekunder int main(int argc, char **argv) pthread_t t1; pthread_t t2; struct sched_param sp; pthread_create(&t1, NULL, thread1, NULL); pthread_create(&t2, NULL, thread2, NULL); sp.sched_priority = 1; // Högre siffra i detta fält -> processen har högre prioritet pthread_setschedparam(t1, SCHED_FIFO, &sp); // Sätt tråd 1 till prioritet 1 sp.sched_priority = 2; pthread_setschedparam(t2, SCHED_FIFO, &sp); // Sätt tråd 2 till prioritet 2 pthread_join(t1,null) pthread_join(t2,null) return 0; Visa vad som händer när detta program körs genom att rita ett tidsdiagram. Kommer specifikationerna ovan att uppfyllas? Om specifikationerna uppfylls: Beräkna hur mycket av datorns processorkapacitet som används Om specifikationerna inte uppfylls: Modifiera programlistningen ovan så att specifikationerna uppfylls (samt visa att specifikationerna uppfyllts), alternativt visa på att det är omöjligt att uppfylla specifikationerna. 2

3 Fråga 3: Avbrott(8p) (a) (4p) Diskutera varför det är en dålig ide att styra åtkomsten till gemensamma variabler via en semafor om ett av de ställen som behöver komma åt variablerna är en avbrotts-rutin. Nedan följer ett utdrag ur en hypotetisk applikation som visar ett icke-fungerande sätt att synkronisera åtkomst till gemensamma variabler: // Detta är en avbrotts-hanterare void gpio_interrupt(void) int val = get_gpio_port(); si_sem_wait(&param.mutex); param.val = val; si_sem_signal(&param.mutex); // Detta är en helt vanlig funktion som aldrig anropas ifrån ett // avbrott: int calculate_zaphod(void) si_sem_wait(&param.mutex); int retval = param.val * / ; si_sem_signal(&param.mutex); return retval; (b) (4p) Visa hur programkoden ovan kan skrivas om så att ett lämpligare sätt används för att synkronisera åtkomsten till de delade variablerna i structen param. Fråga 4: Monitorer(15p) Du är ansvarig för att skriva delar av en programvara som styr lagerrobotar i ett automatiserat lager. Din uppgift är att implementera funktionen charge robot() som anropas av huvudprogrammet när aktuell lagerrobot har för lite laddning kvar i batteriet samt har åkt till det område i lagret där laddaren finns. Du ska följa specifikationerna nedan när du implementerar denna funktion: Varje robot styrs av en egen task Om fler än en robot behöver laddas så ska den robot som har minst laddning kvar i batteriet ha förtur till laddaren. Laddning kan bara ske för en robot i taget. Den synkroniseringsmekanism som ska användas i charge robot() är en så kallad monitor. Du kan välja om du vill använda SimpleOS eller pthreads för att lösa uppgiften. Det finns sammanlagt MAX ROBOTS antal robotar i systemet. När charge robot() returnerar kommer roboten automatiskt att åka ifrån laddningsområdet och återvända till sina vanliga sysslor. Till din hjälp har du följande funktioner: unsigned int get charge(unsigned int robot id) - Returnerar laddningen hos roboten med id:t robot id unsigned int my id(void) - Returnerar id för den robot som denna task styr. void activate charger(void) - Denna funktion gör så att roboten åker in i laddningsenheten och laddar roboten. Endast en robot får laddas i taget. Tips: Du vill eventuellt använda en array i stil med följande för att hålla koll på vilka robotar som behöver laddas: unsigned int want_to_charge[max_robots]; // Sätt en etta i denna array // om denna robot försöker // ladda sig. Annars sätter // du en nolla 3

4 Fråga 5: Operativsystem(10p) Nedanstående programlistning är ett utdrag av funktionerna sem wait samt sem post från ett hypotetiskt operativsystem: void sem_wait(struct sem *s) if( *** > 0) else void sem_post(struct sem *s) if (!empty( *** )) else Platser som markerats med *** har dock raderats. Varje förekomst av *** ska ersättas med någon av följande kodsnuttar: s->counter++ s->counter-- s->mutex s->counter s->event s->wait list s->ready list DISABLE INTERRUPTS ENABLE INTERRUPTS schedule() int task id = remove highest prio(s->wait list) ready list insert(task id) ready list remove(current task id) wait list insert(s->wait list,current task id) Din uppgift är att skriva ner de kompletta implementationerna av sem wait respektive sem post. För full poäng måste din källkod även vara kommenterad! 4

5 Lösningsförslag fråga 1: 1a Falskt. (1p) Motivation (2p): Den viktigaste egenskapen är att ett realtidssystem är deterministiskt/förutsägbart, t ex på så sätt att deadlines möts/hålls, och på så sätt att gemensamma resurser skyddas. För full poäng behöver man framhålla att just determinism är viktigt, samt ge exempel på vad som avses med det, enligt exempel ovan. 1b Se läroboken under avsnittet för prioritetsinversion. 1c Mekanismen som avses är prioritetsärvning (priority inheritance). Se läroboken under avsnittet för prioritetsärvning. Lösningsförslag fråga 2: Följande gäller: Tidskraven att aktiviteterna ska köras var x:te millisekund innebär INTE att de måste starta eller avsluta sitt arbete periodisk var x:te millisekund, utan att de ska starta och avsluta sitt arbete inom denna periodtid som tidskraven utgör. Något annat vore orimligt i ett realtidssystem. För full poäng behöver man: -visa att specifikationerna inte uppfylls genom att rita ett korrekt tidsdiagram (med tillräckligt lång analys) där det framgår att activity1 inte klarar sina deadlines, antingen genom att tydligt markera var dessa deadlines finns eller att i motiveringen berätta vid vilken tidpunkt activity1 missar sin deadline, samt dra en korrekt slutsats baserad på korrekta orsaker. -visa korrekt modifierad programkod med kommentarer, eller MYCKET klart och entydigt via text/pseudokod visa hur modifieringen ser ut (här har många tagit sig friheten att bara översiktligt berätta vad sleep until gör, det är ingen standardfunktion). -visa att tidsdiagrammet efter modifiering nu uppfylls, genom att göra en tillräckligt lång analys där det nu framgår att aktiviteterna håller sina deadlines, att mönstret upprepar sig efter en viss tidpunkt och att dra en korrekt slutsats baserad på korrekta orsaker. Under rättningen har det gjorts många välvilliga tolkningar i denna uppgift... Det här händer när programmet körs: thread1 thread 2 (högst prioritet) t=0 ms Körklar Kör activity2() t=1 ms Kör activity1() usleep() t=2 ms Kör activity1() usleep() t=3 ms Körklar Kör activity2() t=4 ms Kör activity1() usleep() t=5 ms Kör activity1() (klar) usleep() t=6 ms usleep() Kör activity2() t=7 ms usleep() usleep() t=8 ms usleep() usleep() t=9 ms Körklar Kör activity2() t=10 ms Kör activity1() usleep() t=11 ms Kör activity1() usleep() t=12 ms Körklar Kör activity2() 5

6 t=13 ms Kör activity1() usleep() t=14 ms Kör activity1() (klar) usleep() t=15 ms usleep() Kör activity2() t=16 ms usleep() usleep() t=17 ms usleep() usleep() t=18 ms Körklar Kör activity2() t=19 ms Kör activity1() usleep() t=20 ms Kör activity1() usleep() t=21 ms Körklar Kör activity2() t=22 ms Kör activity1() usleep() t=23 ms Kör activity1() (klar) usleep() osv osv Man kan i tidsdiagrammet konstatera att activity1() under den tredje körningen missar deadline vid tidpunkten 21 ms då den är klar först vid tidpunkten 23 ms. Man kan även resonera som så att tidmätningen för activity1() startar vid t=0 varpå den missar deadline readan vid t=13 ms. Korrekt analys som visar att specifikationen inte uppfylls för omodifierad kod i båda fallen ger 3p förutsatt att man korrekt motivierar sin slutsats. Problemet är att trådarna använder en sleep-funktion som sover till en relativt angiven tidpunkt. Problemet är att detta bygger på att de vet exakt hur lång tid funktionsanropen tar och att körtiden för anropet till activity1() i thread1 ej kommer att vara fem millisekunder längre eftersom körningen avbryts några gånger av thread2. En bättre lösning är att modifiera programkoden så att det ser ut ungefär som följer: // Uppdatera den angivna tidpunkten (ts) genom att lägga till angivet antal // millisekunder till ts och sov till den uträknade tidpunkten. void sleep_until(struct timespec *ts, unsigned int delay_in_us) ts->tv_nsec += delay_in_us * 1000; if(ts->tv_nsec > ) ts->tv_nsec -= ; ts->tv_sec++; // Notering: Den exakta syntaxen till detta anrop är inte viktig. // Så länge det är uppenbart vad som åsyftas här så // är det OK. clock_nanosleep(clock_monotonic, TIMER_ABSTIME, &ts, NULL); void *thread1(void *unused) struct timespec ts; clock_gettime(clock_monotonic, &ts); while(1) activity1(); sleep_until(&ts, 7); // Vänta till periodens slut // thread2 modifieras på motsvarande sätt (med fördröjningen 3 ms // istället för 7) Korrekt modifierad och kommenterad/förklarad programkod ger 2p. Då kommer körningen av programmet att se ut på följande sätt: thread1 thread 2 (högst prioritet) 6

7 t=0 ms Körklar Kör activity2() (hämtar originaltid) t=1 ms Kör activity1() (hämtar originaltid) sleep_until(3ms) t=2 ms Kör activity1() t=3 ms Körklar Kör activity2() t=4 ms Kör activity1() sleep_until(6ms) t=5 ms Kör activity1() (klar) t=6 ms sleep_until(8ms) Kör activity2() t=7 ms sleep_until(9ms) t=8 ms Kör activity1() t=9 ms Körklar Kör activity2() t=10 ms Kör activity1() sleep_until(12ms) t=11 ms Kör activity1() t=12 ms Körklar Kör activity2() t=13 ms Kör activity1() (klar) sleep_until(15ms) t=14 ms sleep_until(15ms) t=15 ms Körklar Kör activity2() t=16 ms Kör activity1() sleep_until(18ms) t=17 ms Kör activity1() t=18 ms Körklar Kör activity2() t=19 ms Kör activity1() sleep_until(21ms) t=20 ms Kör activity1() (klar) t=21 ms sleep_until(22ms) Kör activity2() t=22 ms Kör activity1() sleep_until(24ms) t=23 ms Kör activity1() osv osv Här kan noteras att vid tiden t=22ms så befinner vi oss i samma tillstånd som vid tiden t=1ms. Vi kan alltså konstatera att detta utseende kommer att fortsätta upprepa sig med periodtiden 21 ms. Korrekt demonstration och motivation av att specifikationerna kan uppfyllas enligt modifierad programkod ger 3p. Lösningsförslag fråga 3: 3a Då ett avbrott i princip kan komma när som helst så medför det att en semafor i ett avbrott kommer att lägga körande task på väntelistan, förutsatt att avbrottet inte får tillgång till resursen, t ex på grund av att avbrottet kommer mellan wait och signal i en task som använder samma semafor som avbrottet. Om då körande task är calculate zaphod (eller någon annan task som använder samma semafor) så blir ju effekten densamma som om man gör två på varandra följande wait (på samma semafor) i en och samma task. Dvs det uppstår i detta fall en låsning mellan avbrottet och tasken. En annan task blir ju dock körande (via schedule i wait). Alternativt, om körande task inte har nåt med semaforen att göra (det kan ju tänkas att en taskswitch har gjorts) så blir den tasken väntande (placerad i väntelistan för semaforen) av fel orsak. Överkurs: Vissa realtidssystem, t ex SimpleOS, kräver att det alltid finns en körande task, dvs om ingen annan task kör så kommer idle task att köra, men om idle task har lagts på en semafors väntelista och ingen annan task vill köra, så finns ingen task att växla till, varpå realtidssystemet får ett obestämt beteende. 3b void gpio_interrupt(void) 7

8 int val = get_gpio_port(); param.val = val; int calculate_zaphod(void) // De utkommenterade raderna visar var vi måste ha wait/signal om // vi behöver skydda param.val även mot åtkomst ifrån andra tasks // och inte bara ifrån avbrottsrutinen. // si_sem_wait(&param.mutex); DISABLE_INTERRUPTS; int retval = param.val * / ; ENABLE_INTERRUPTS; // si_sem_signal(&param.mutex); return retval; Då vi inte vill ha wait/signal i avbrottet måste all användning av param.val istället skyddas genom att stänga av avbrott. Observera att DISABLE INTERRUPTS/ENABLE INTERRUPTS behöver placeras innanför wait/signal, eftersom implementationen av wait gör ENABLE INTERRUPTS innan retur. Lösningsförslag fråga 4: unsigned int want_to_charge[max_robots]; pthread_mutex_t charge_mutex = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t charge_cv = PTHREAD_COND_INITIALIZER; int charger_is_busy = 0; // Undersök om roboten med angett id har minst laddning kvar bland // de som faktiskt försöker ladda sig. int has_least_charge(int id) unsigned int mycharge = get_charge(id); int i; for(i=0; i < MAX_ROBOTS; i++) if(i == id) continue; if(want_to_charge[i] && (get_charge(i) < mycharge)) return 0; // Om vi gick igenom alla robotar som vill laddas utan att hitta // någon med lägre laddning så är det vi som har minst laddning! return 1; void charge_robot(void) pthread_mutex_lock(&charge_mutex); want_to_charge[my_id()] = 1; while(!has_least_charge(my_id()) charger_is_busy) 8

9 pthread_cond_wait(&charge_cv, &charge_mutex); charger_is_busy = 1; // Följande utkommenterade rad behövs inte för just de // funktioner som vi skriver, men kan behövas om annan typ av // funktionalitet ska implementeras. // pthread_cond_broadcast(&charge_cv); pthread_mutex_unlock(&charge_mutex); // Vi ser till att inte ha någon mutex låst medans roboten // laddas för att undvika att trådar "hänger" sig i väntan på // att roboten laddas. (Något som kan ta avsevärd tid.) Till // denna tentauppgift är det inte strikt nödvändigt, men det // är ofta en bra idé att designa sitt system så att lås inte // hålles onödigt länge. (Detta underlättar också // vidareutveckling av systemet om ny funktionalitet behöver // läggas till.) activate_charger(); pthread_mutex_lock(&charge_mutex); charger_is_busy = 0; want_to_charge[my_id()] = 0; pthread_cond_broadcast(&charge_cv); pthread_mutex_unlock(&charge_mutex); Lösningsförslag fråga 5 void sem_wait(struct sem *s) DISABLE_INTERRUPTS; // Skydda semaforens datastruktur genom att // se till så att processorn inte kan bli avbruten // när koden nedan körs. if(s->counter > 0) s->counter--; else // Om semaforen är tillgänglig behöver vi enbart räkna // ner den med ett // Semaforens räknare är noll. Se till så att processen hamnar i semaforens // väntelista och inte längre är markerad som körklar genom att ta bort // processen från listan med körklara processer. ready_list_remove(current_task_id); wait_list_insert(s->wait_list,current_task_id); schedule(); // Hitta den högst prioriterade körklara // processen och växla till denna. ENABLE_INTERRUPTS; // Tillåt avbrott igen void sem_post(struct sem *s) 9

10 DISABLE_INTERRUPTS; // Se ovan if (!empty(s->wait_list)) // Det är minst en process som ligger och väntar i sem_wait() // på denna semafor. Ta bort den högst prioriterade processen som // väntar ifrån semaforens väntelista och gör denna körklar. // (Vi räknar inte upp semaforen här eftersom sem_wait isåfall // direkt skulle behöva räkna ner den.) int task_id = remove_highest_prio(s->wait_list); ready_list_insert(task_id); schedule(); // Växla till den uppväckta processen om det är så // att denna har högre prioritet än aktuell process. else // Ingen väntar på semaforen just nu, räkna bara upp semaforens värde. s->counter++; ENABLE_INTERRUPTS; Notering: För full poäng räcker det inte att skriva kommentarer som enbart förklarar vad varje rad kod gör utan att sätta in raderna i ett större sammanhang. Dvs, kod som kommenteras i stil med nedan gör ingen särskild glad (oavsett om det är på tentan eller i verkliga livet). void sem_post(struct sem *s) DISABLE_INTERRUPTS; // Stäng av interrupts if(!empty(s->wait_list)) // Kolla om väntelistan är tom // osv... 10

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ö 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

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

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

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

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

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

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

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ö 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

(2) Skriv ett program som skapar ett antal processer vars relationer beskrivs av nedanstående tidsdiagram a

(2) Skriv ett program som skapar ett antal processer vars relationer beskrivs av nedanstående tidsdiagram a Tentamen i Operativsystem, HI1025:LAB1-15 mars, 2017 Allmänna instruktioner. Tentamen innehåller 3 programmeringsproblem av den art vi exemplifierat på seminarier och i övningar. För godkänt betyg ska

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

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 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

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

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

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

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

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

Tentamen TEN1 HI

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

Läs mer

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

Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25

Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25 Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-0-2 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Elena Fersman besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka

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

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

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

Tentamen i Realtidsprogrammering

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

Läs mer

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

Tentamen i Realtidsprogrammering

Tentamen i Realtidsprogrammering Tentamen i Realtidsprogrammering Omtentamen Datum: 2007-08-31 Tid: 08:00 11:00 Ansvarig lärare: Telefon: ej tillgänglig Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng fördelade på 5 uppgifter.

Läs mer

Tentamen EDA698 Realtidssystem (Helsingborg)

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

Läs mer

Grundprogrammen. combine

Grundprogrammen. combine Seminarium II Andra seminariet behandlar speciella övningsuppgifter som gavs ut på kurswebben tidigare. Programmen som presenteras är förlag till lösningar på övningsuppgifterna. Genomgående används systemanropet

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

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

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

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

Design av inbyggda system

Design av inbyggda system Design av inbyggda system Innehåll Hårdvarunära design Erfarenhet värd att tänka på Avbrottsrutiner och huvudloopar hantering av gemensamma data Kopplingsschema hur och varför Designspecar bra / dåligt

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

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

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

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

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

SP:PROG3 HT12 Tenta 2013-01-19

SP:PROG3 HT12 Tenta 2013-01-19 DSV SU/KTH sid 1 (5) SP:PROG3 SP:PROG3 HT12 Tenta 2013-01-19 Tentan består av tre uppgifter. Max poäng är 30. För betyget E (godkänd) krävs minst 18 poäng och minst en poäng på varje uppgift. Betygskriteria

Läs mer

Realtidsprogrammering Ordinarie tentamen

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

Läs mer

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C 1 of 7 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen fredag 15

Läs mer

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen

Läs mer

TENTAMEN. Luleå tekniska universitet

TENTAMEN. Luleå tekniska universitet TENTAMEN Luleå tekniska universitet Kurskod: D0019N Kursnamn: Programutveckling med Java Tentamensdatum: 2009-12-21 Skrivtid: 4 timmar Tillåtna hjälpmedel: Deitel & Deitel: Java How to Program (valfri

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

Tentamen Datastrukturer (DAT036)

Tentamen Datastrukturer (DAT036) Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2013-12-16, 14:00 18:00. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 15:00 och

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings universitet

Försättsblad till skriftlig tentamen vid Linköpings universitet Försättsblad till skriftlig tentamen vid Linköpings universitet Datum för tentamen 08-03-3 Sal (5) Tid 8- Kurskod TSEA Provkod TEN Kursnamn/benämning Provnamn/benämning Institution Antal uppgifter som

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

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

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

Tentamen i Grundläggande Programvaruutveckling, TDA548

Tentamen i Grundläggande Programvaruutveckling, TDA548 Tentamen i Grundläggande Programvaruutveckling, Joachim von Hacht/Magnus Myreen Datum: 2016-12-20 Tid: 08.30-12.30 Hjälpmedel: Engelskt-Valfritt språk lexikon Betygsgränser: U: -23 3: 24-37 4: 38-47 5

Läs mer

Tentamen i. Programmering i språket C

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

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

Tentamen i Digitalteknik TSEA22

Tentamen i Digitalteknik TSEA22 Tentamen i Digitalteknik TSEA22 Datum för tentamen 100601 Sal TERC,TER2 Tid 14-18 Kurskod TSEA22 Provkod TEN 1 Kursnamn Digitalteknik Institution ISY Antal uppgifter 5 Antal sidor 5 Jour/Kursansvarig Olle

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

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

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 Datastrukturer, DAT037 (DAT036)

Tentamen Datastrukturer, DAT037 (DAT036) Tentamen Datastrukturer, DAT037 (DAT036) Datum och tid för tentamen: 2017-01-11, 14:00 18:00. Ansvarig: Fredrik Lindblad. Nås på tel nr. 031-772 2038. Besöker tentamenssalarna ca 15:00 och ca 17:00. Godkända

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

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,

Läs mer

Tentamen i EDA011 Programmeringsteknik för F, E, I, π och N

Tentamen i EDA011 Programmeringsteknik för F, E, I, π och N Tentamen i EDA011 Programmeringsteknik för F, E, I, π och N Måndagen den 24 april 2006 Skrivtid: 8.00 13.00 Tillåtna hjälpmedel: Java-snabbreferens. Resultat: Resultatet av denna tentamen rapporteras direkt

Läs mer

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn 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 examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok 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

Läs mer

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN HI1024 Programmering, grundkurs TEN2 2016-12-22 KTH STH Flemingsberg 8.15-13.00 Tillåtna hjälpmedel: Kursboken C PROGRAMMING A Modern Approach K. N. King helt utan anteckningar Alternativt C från början

Läs mer

PROGRAMMERINGSTEKNIK TIN212

PROGRAMMERINGSTEKNIK TIN212 Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:

Läs mer

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00 Operativsystem ID2200 Tentamen TEN1 3.8 hp 2018-04-03 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

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

HI1024 Programmering, grundkurs TEN2 2014-03-13

HI1024 Programmering, grundkurs TEN2 2014-03-13 HI1024 Programmering, grundkurs TEN2 2014-03-13 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

Design av inbyggda system

Design av inbyggda system Design av inbyggda system Innehåll Hårdvarunära design Erfarenhet/Utmaningar värda att tänka på Avbrottsrutiner och huvudloopar hantering av gemensamma data Kopplingsschema hur och varför Designspecar

Läs mer

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner

Läs mer

Realtidsprogrammering. En introduktion Implementering (med exempel från PIC)

Realtidsprogrammering. En introduktion Implementering (med exempel från PIC) Realtidsprogrammering En introduktion Implementering (med exempel från PIC) Utan timing Periodtid varierar beroende på funktionernas exekveringstid. Specificera endast maxtid ( Worst case) och eventuellt

Läs mer

Tentamen i Grundläggande programmering STS, åk 1 fredag

Tentamen i Grundläggande programmering STS, åk 1 fredag Tentamen i Grundläggande programmering STS, åk 1 fredag 2002-08-23 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Anders besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka kl.

Läs mer

OOP Tentamen

OOP Tentamen DVS SU/KTH 1 (6) OOP OOP Tentamen 2010-01-15 15.00 20.00 Avser kurserna: DSK1:OOP GES:OOP ID1013 Anvisningar Skriv namn och personnummer på varje inlämnat blad. Påbörja varje ny uppgift på nytt blad. Skriv

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-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

Tentamen i EIT070 Datorteknik

Tentamen i EIT070 Datorteknik Tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 10 mars 2010, klockan 08:00 13:00 å Victoriastadion 1 och 2. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Försättsblad till skriftlig tentamen vid Linköpings Universitet Försättsblad till skriftlig tentamen vid Linköpings Universitet Datum för tentamen 03-05-3 Salar U, KÅRA, U3 Tid -8 Kurskod TSEA Provkod TEN Kursnamn Digitalteknik Institution ISY Antal uppgifter som ingår

Läs mer

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:

Läs mer

OOP Tentamen

OOP Tentamen DVS SU/KTH 1 (6) OOP OOP Tentamen 2007-12-21 13.00 18.00 Avser kurserna: DSK1:OOP GES:OOP ID1013 GKOOP-distans Anvisningar Skriv namn och personnummer på varje inlämnat blad. Påbörja varje ny uppgift på

Läs mer

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl Skolan för datavetenskap och kommunikation Objektorienterad Programkonstruktion, DD1346 Tentamen 2016 03 18, kl. 14.00 17.00 Tillåtna hjälpmedel: Papper, penna och radergummi. Notera: Frågorna i del I

Läs mer

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN1 - Teoretisk tentamen Tid: Torsdagen den 20 oktober 2011,

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN1 - Teoretisk tentamen Tid: Torsdagen den 20 oktober 2011, KTH STH TENTAMEN HI1024:TEN1 - Teoretisk tentamen Tid: Torsdagen den 20 oktober 2011, 8.15-12.15 Gamla kurskoder: HI1900, 6E2950, etc. Examinator: Johnny Panrike Rättande lärare: Nicklas Brandefelt, Johnny

Läs mer

Tentamen TEN1 HI

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

Läs mer

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar Dynamiskt minne Agenda Vad är dynamiskt minne Motivering Hur gör man i C Övningar Minne Datorns primärminne används till olika ändamål De flesta system partitionerar minnet efter användningen: Programkoden

Läs mer

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer Tentamen i.. TDDC30/725G63 Objektorienterad programmering i Java, datastrukturer och algoritmer Datum 2012-12-21 Tid 14-18 Provkod DAT1 Institution Institutionen för Datavetenskap (IDA) Jour Johan Janzén

Läs mer

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Objektorienterad Programkonstruktion. Föreläsning jan 2016 Objektorienterad Programkonstruktion Föreläsning 13 19 jan 2016 Tentamen Del I, E del Flervalsfrågor 20/25 krävs för godkänt, ger betyg E Upp till 7 möjliga bonuspoäng Del II, Högrebetygsdel Problemfrågor

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2016-08-16 Lokal TER2, TER4 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal sidor (inklusive

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2016-05-31 Lokal Kåra, T1, T2, U1, U15 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal

Läs mer

Tentamen Datastrukturer (DAT037)

Tentamen Datastrukturer (DAT037) Tentamen Datastrukturer (DAT07) Datum och tid för tentamen: 2016-01-09, 14:00 18:00. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 15:00 och ca

Läs mer

TUTORIAL: SAMLING & KONSOLL

TUTORIAL: SAMLING & KONSOLL TUTORIAL: SAMLING & KONSOLL Denna tutorial är en fortsättning på den tutorial där vi skapade klassen Car och sedan objekt av denna klass. Vi skall nu lära oss att lagra dessa objekt i en samling och även

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

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 I 2016-03-17 Skrivtid: 1400 1900 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

Design av inbyggda system. Innehåll. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design TDD

Design av inbyggda system. Innehåll. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design TDD Innehåll Design av inbyggda system Erfarenhet/Utmaningar värda att tänka på Avbrottsrutiner och huvudloopar hantering av gemensamma data hur och varför Designspecar bra / dåligt / hur / varför / när Inbyggt

Läs mer

Design av inbyggda system

Design av inbyggda system Design av inbyggda system Innehåll Hårdvarunära design Erfarenhet/Utmaningar värda att tänka på Avbrottsrutiner och huvudloopar hantering av gemensamma data Kopplingsschema hur och varför 10 sätt att lyckas

Läs mer

Tentamen Datastrukturer, DAT037 (DAT036)

Tentamen Datastrukturer, DAT037 (DAT036) Tentamen Datastrukturer, DAT037 (DAT036) Datum, tid och plats för tentamen: 2017-08-17, 8:30 12:30, M. Ansvarig: Fredrik Lindblad. Nås på tel nr. 031-772 2038. Besöker tentamenssalarna ca 9:30 och ca 11:00.

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

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller

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

DAT043 Objektorienterad Programmering

DAT043 Objektorienterad Programmering DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är

Läs mer