Göm menyn

TDIU16 Process- och operativsystemprogrammering

Examination


Tentamen VT2024

Tentamen VT2024 ges i ordinarie utförande, det vill säga som en datortentamen på plats.

Det finns lite skillnader i tentaupplägget historiskt:

  • 2024 och framåt: Uppgiften om Banker's algorithm är borttagen då den inte längre är en del av kursmålen. Uppgiften ersätts inte av en annan uppgift, så det kommer vara en uppgift mindre framgent. Poängen på den borttagna uppgiften kommer att spridas ut på synkroniseringsuppgifterna i stället.
  • 2020 och 2021: Dessa tentor gavs på distans och hade ett annat upplägg än vad som används i år. Det är fortfarande intressant att öva på dessa tentor. Det som skiljer är att första uppgiften i del B (jämför din lösning med två referenslösningar) inte kommer finnas med. Resterande uppgifter är bra övning inför årets tentaupplägg. Notera också att den ena av lösningarna som finns i del 2 är helt korrekt, så i den meningen finns det ett lösningsförslag till dessa tentor. Dock är det inte alltid uppenbart vilken av de två lösningarna som är korrekt.

Bonuspoäng på tentan

Det går att få totalt 4 bonuspoäng på tentan. Dessa bonuspoäng gäller mot högre betyg. Varje mött deadline i labbserien ger en bonuspoäng (totalt 3). Samlar du mer än 499 poäng i onlinedelen av verktyget får du ytterligare en bonuspoäng (detta görs individuellt).

Gamla tentor

Endast första ordiniarie tentamen varje år publiceras.

Kursen är ny för 2015. För äldre uppgiftexempel hänvisas till del 2 av tentamen i kursen TDDI81.

Examinationsmoment och regler

Inga examinationsmoment är inlagda i kursdatabasen.

Regler för examinering av datorlaborationer vid IDA

Datorlaborationer görs i grupp eller individuellt, enligt de instruktioner som ges för en kurs. Examinationen är dock alltid individuell.

Det är inte tillåtet att lämna in lösningar som har kopierats från andra studenter, eller från annat håll, även om modifieringar har gjorts. Om otillåten kopiering eller annan form av fusk misstänks, är läraren skyldig att göra en anmälan till universitetets disciplinnämnd.

Du ska kunna redogöra för detaljer i koden för ett program. Det kan också tänkas att du får förklara varför du har valt en viss lösning. Detta gäller alla i en grupp.

Om du förutser att du inte hinner redovisa i tid, ska du kontakta din lärare. Då kan du få stöd och hjälp och eventuellt kan tidpunkten för redovisningen senareläggas. Det är alltid bättre att diskutera problem än att, t.ex., fuska.

Om du inte följer universitetets och en kurs' examinationsregler, utan försöker fuska (t.ex. plagiera, använda otillåtna hjälpmedel eller ej godkända AI-baserade assistenter) kan detta resultera i en anmälan till universitetets disciplinnämnd. Konsekvenserna av ett beslut om fusk kan bli varning eller avstängning från studierna.

Policy för redovisning av datorlaborationer vid IDA

För alla IDA-kurser som har datorlaborationer gäller generellt att det finns en bestämd sista tidpunkt, deadline, för inlämning av laborationer. Denna deadline kan vara under kursens gång eller vid dess slut. Om redovisning inte sker i tid måste, den eventuellt nya, laborationsserien göras om nästa gång kursen ges.

Om en kurs avviker från denna policy, ska information om detta ges på kursens webbsidor.

Bedömningskriterier

För betyg 3 krävs uppfyllnad av alla bedömningskriterier för betyg 3.

För betyg 4 krävs uppfyllnad för betyg 3 samt majoriteten av bedömningskriterierna för betyg 4.

För betyg 5 krävs uppfyllnad för betyg 3 samt alla bedömningskriterier för betyg 5.

Lärandemål För betyg 3 För betyg 5
implementera grundläggande systemanrop i exempeloperativsystemet Pintos Examineras i LAB1

Kunna redogöra för hur en process kan begära resurser och tjänster från kernel på ett säkert sätt.

Kunna redogöra för hur kernel kan verifiera att resurser som tilldelats en process används av rätt process, och på ett korrekt sätt. Studenten ska även kunna implementera ett möjligt sätt att lösa detta på.

Kunna implementera datastrukturer för att lagra en föräldra-barn-relation mellan processer, och använda denna för att låta processer vänta på att barnprocesser har terminerat.

-
förklara synkroniseringsrelaterade begrepp Examineras i LAB1 och DAT1

Kunna förklara begreppen aktiv väntan (eng. busy wait), kritiska sektioner, samt race conditions.

Kunna beskriva semantiken hos lås, semaforer, och condition variables på en övergripande nivå.

Använder delvis korrekt terminologi i sina förklaringar.

Examineras i DAT1

Kunna förklara skillnaden i styrka och tillämpningar mellan lås, semaforer, och condition variables.

Kunna förklara användningsområdet och vad som är speciellt med atomiska operationer.

Kunna beskriva och resonera kring skillnader mellan atomiska operationer och de synkroniseringsprimitiver som tas upp i kursen (lås, semaforer, och condition variables).

Använder fullständigt korrekt terminologi i sina förklaringar.

analysera programkod för att identifiera kritiska sektioner och aktiv väntan samt använda relevanta mekanismer för att på ett adekvat sätt korrigera och trådsäkra koden Examineras i LAB1 och DAT1

Kunna identifiera en möjlig, konkret, orsak till varför ett multitrådat program inte fungerar som det ska, givet ett eller flera exempel på symptom som felen orsakar.

Kunna använda relevanta mekanismer för att trådsäkra ett givet program, givet ett eller flera exempel på symptom som orsakas av ej trådsäkra delar av programmet.

Examineras i DAT1

Kunna använda relevanta mekanismer för att trådsäkra ett givet program så att så stor del av programmet kan köras parallellt som möjligt.

Kunna resonera om, och jämföra olika sätt att trådsäkra ett program på, med avseende på möjlighet till parallell exekevering och kostnad för synkronisering.


Sidansvarig: Filip Strömbäck
Senast uppdaterad: 2024-04-23