Göm menyn

TDIU16 Process- och operativsystemprogrammering

Laborationer


Arbete med laborationerna

Laborationerna görs i par. All mjukvara som krävs för laborationerna finns installerad på datorerna i SU-salarna på IDA. Det går även att arbeta med laborationerna hemifrån eller på egen dator då SU-salarna är upptagna.

Versionshantering med git

Koden för Pintos hämtar du genom att klona ett git-repository. När du väl klonat Pintos från kurs-repositoryt finns inget krav att fortsätta utnyttja fördelarna med att ha koden i git annat än att ladda upp koden där så att assistenterna i kursen kan komma åt den. Dock kan du enkelt välja att utnyttja styrkorna med Git under kursen och få värdefull kunskap på köpet.

Det finns många tutorials om git på webben. En som är både "hands-on" och visuell är http://learngitbranching.js.org/.

Om du väljer att använda git rekommenderar vi:

  • Använd branching! Lös varje delproblem i en egen branch. Gör experiment i en egen branch. Ni kan till och med jobba parallellt på var sin branch om det fungerar för er. Då kan ni ha "master" funktionell och ändå committa ofta.
  • Checka in koden frekvent! Gör en commit så fort ni har löst ett litet problem som för er framåt. Så fort det går beskriva vad ni gjort med en kort mening, kör git commit -m "den korta meningen". Då blir det lätt följa vad som hänt i historiken, vilket kan underlätta vid felsökning, eller om man behöver gå tillbaka till en tidigare version.

Git blir mycket enklare om du vet vad du gör, eller omvänt: om du provar ett kommando och det visar sig fel är det mycket jobbigt att få det rätt igen (men det går!). När du gjort alla fel och till slut lärt dig använda git rätt kanske du uppskattar lite träffsäker git-komik:

Labba hemifrån (valfritt)

Om du vill kunna arbeta med laborationerna hemifrån går även det. I detta fall är det extra viktigt att vara noggran med att versionshantera koden med Git och göra commits ofta för att inte riskera att den senaste versionen finns på fel dator.

Pintos-kodbasen går att kompilera och köra under de flesta Linux-system. Vi har dock bara möjlighet att garantera att allt fungerar som det ska på Ubuntu 20.04 (vi har sett att saker fungerar på andra system, men vi kan inte ge garantier). Följande alternativ finns för att få tillgång till ett Ubuntu-system:

  • På din Linux-maskin - Om du redan kör Linux (gärna Ubuntu) så kan du helt enkelt följa instruktionerna för att installera Pintos i lab 3.
  • Virtuell maskin - Oavsett vilket operativsystem du kör så kan du installera Ubuntu i en virtuell maskin, exempelvis med hjälp av VirtualBox. Instruktioner för detta finns här. Efter att du har installerat Linux i din virtuella maskin kan du följa instruktionerna för att installera Pintos i lab 3.
  • WSL - Om du kör Windows så kan du också installera Ubuntu i WSL. Vi vet i kursen att studenter har gjort labbserien på detta sätt. Vi har tyvärr inte möjlighet att hjälpa till att felsöka detta sätt att göra labbarna på (du kan behöva konfigurera ytterligare saker för att grafiska applikationer ska fungera korrekt, exempelvis). Vill du testa så kan du köra instruktionerna för att installera Pintos i lab 3 i en WSL-terminal.
  • ThinLinc - Du kan även köra ThinLinc för att komma åt skolans system och filsystem. ThinLinc fungerar bra för att labba hemma någon gång ibland, men om alla använder ThinLinc som huvudsätt att arbeta med labbarna finns risk för att systemet inte orkar med. Föredra därför att göra labbarna på din egen dator om du regelbundet labbar hemifrån.

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.

Assistenthjälp under laborationspass

Under laborationerna kommer assistenterna att gå runt i salarna. Assistenterna börjar i ena änden av salen (eller salarna) och ser till att gå förbi alla grupper. Om ni behöver hjälp, påkalla assistentens uppmärksamhet när denne passerar er.

Den typen av problem som uppkommer i den här kursen (framför allt på de senare labbarna) tar ofta relativt lång tid för assistenten att hjälpa till med. Ni kan därmed inte räkna med att få hjälp av assistenten mer än en eller två gånger under ett labbpass. Det är därför en bra idé att förbereda sig inför labbpasset genom att åtminstone läsa igenom labbinstruktionerna, och gärna börja skriva lite kod innan. På det viset kan ni utnyttja den tid ni har med assistenten så bra som möjligt. Utöver detta är det bra att ha en "backupplan" att arbeta med medan man väntar på assistenten. Detta kan exempelvis vara att läsa kommande labbar, eller att läsa in sig mer på koden i Pintos. Det finns också ett par uppgifter som är märkta som "Fristående uppgifter" som kan påbörjas lite när som.

Redovisningar

Laborationerna redovisas muntligen under labbpassen. Du behöver inte skicka in något efter den muntliga redovisningen. Det är dock en bra idé att versionshantera din kod och se till att kurspersonalen är inbjuden till ert Git-repository (vissa problem kräver att vi i lugn och ro tittar närmare på er kod).

Uppgifter

Nedan finns en veckoplanering över kursen. Den är tänkt att användas som stöd för att avgöra om man är i fas eller inte. Mjuka deadlines ger bonuspoäng på tentan (mot högre betyg). Alla laborationer ska vara redovisade innan hård deadline för respektive laboration.

Utöver veckoplanen finns en lista av fristående övningar som kan lösas lite när som. Dessa fungerar bra att arbeta med när man har kört fast med någon annan labb. Det finns också några frivilliga övningar som ger extra övning i C eller som visar på hur olika koncept i Pintos fungerar i Linux (eller andra UNIX-system).

Pintos-Wiki


Labbuppgifterna är i allmänhet korta och beskriver målet med uppgiften och ger tips på hur problemet kan angripas. Resterande information finns i Pintos-Wikin i vänstermenyn, eller här nedanför. Där finns information om hur Pintos fungerar, tips för felsökning, och annan bra information.

Innan ni börjar är det en bra idé att läsa igenom introduktionskapitlet i Wiki:n.

Pintos-Wiki

Fristående uppgifter


De flesta uppgifterna i kursen bygger på varandra. Fördelen är att ni blir mer och mer bekväma med de delar vi arbetar med. Nackdelen är att om man fastnar på en uppgift kan man inte alltid rakt av fortsätta med en annan uppgift. Det är lite tråkigt ifall det är långt till nästa labbpass när man kan få hjälp av assistent.

Vissa av uppgifterna är fristående. De görs utanför Pintos, och de beror därför inte på att tidigare uppgifter finns och fungerar. De är därför bra att arbeta med ifall man kör fast med resten av uppgifterna. Nedan finns en lista över vilka uppgifter som är fristående:

  • Lab 1: Alla deluppgifter är oberoende av varandra
  • Lab 3: Del A är fristående
  • Lab 4: Del A är fristående, och del C kan påbörjas fristående.
  • Lab 5: Del A är fristående

Fristående frivilliga uppgifter

Det finns också en samling fristående uppgifter som inte längre är en del av kursen (därav numreringen, x=eXtra). Dessa finns kvar för de som är intresserade. De ger ytterligare bakgrund till koncept och systemanrop som implementeras i kursen. Vissa av dem ger också extra hjälp till saker som ni kanske vill använda i de ordinarie uppgifterna.

Planering


Nedan visas en planering över de ordinarie labbuppgifterna i kursen, vecka för vecka. Planeringen innehåller också de deadlines (bårde mjuka och hårda) som finns i kursen.

Vecka 14

Vecka 15

Vecka 16

  • 3. Processhantering (Del A och B)
  • Special: Passet tisdag 2026-04-14 är ett miniseminarium som introducerar del A av labb 3
  • Mjuk deadline 1: lab 1 och 2 demonstrerade senast passet fredag 2026-04-16

Vecka 17

Vecka 18

  • 4. Synkronisering av filsystemet (Del A)
  • Hård deadline: lab 1 och 2 redovisade senast på passet torsdag 2026-04-30
  • Planera att bli klar med lab 3 till slutet av veckan.

Vecka 19

Vecka 20

Vecka 21

  • 5. Säkra systemanrop (Del A och B)
  • Mjuk deadline 3: lab 4 och 5 demonstrerade senast passet fredag 2026-05-22

Vecka 22

  • Hård deadline: sista passet i kursen tisdag 2026-05-26

Vecka 23

  • Tenta: tisdag 2026-06-02 kl 08-12
  • Hård deadline: alla eventuella kompletteringar klara fredag 2026-06-05.

    Allt som händer efter detta datum hanteras nästa gång kursen går.

Regler


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.

Studenter från tidigare år

Här är saker att göra om du har påbörjat kursen tidigare år men inte blivit klar:

  • Skicka e-post till kursledare och meddela att du har resultat sedan tidigare

    För att du dels ska kunna tillgodoräkna avklarade delar av labbserien från tidigare år, och dels så att du hamnar i en lämplig grupp i år.

  • Hämta hem senaste versionen av labbskelettet från Git. Har du varit duktig och versionshanterat räcker det sannolikt att göra git pull https://gitlab.liu.se/tdiu16-material/pintos.git.
  • Kontrollera ifall några laborationer har ändrats eller tillkommit. Dessa måste du eventuellt redovisa/göra på nytt i år.
  • Inför redovisning: se till så att du är väl insatt i din kod. Även kod från tidigare år. Vid redovisningen vill vi se att du har förstått vad du har gjort.

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.


Sidansvarig: Filip Strömbäck
Senast uppdaterad: 2026-03-13