TDIU16 Process- och operativsystemprogrammering
Laborationer
Labanmälan
Labanmälan öppnar 19/3. Deadline 23/3.
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. Dock kan du enkelt välja att göra det och få värdefull kunskap om git 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.
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:
Dokumentation (original)
- Stanford's documentation (Projekten är inte relevanta för kursen.)
- A local copy.
Givna filer till deluppgifter 1-8
Dessa filer ligger i mappen src/standalone
i git-repositoryt du klonar när du
installerar Pintos (första uppgift vecka 12 nedan). Vi rekommenderar även att
du sätter upp ett privat gitlab-konto enligt Gitlab setup i
vänstermenyn. Checka sedan in er kod ofta (git commit -m "one little step"
)!
Labuppgifter
Introduktion
Diverse frivilliga uppgifter
- 1. Grunder i C
- 3. Processhantering
- OBS! Dessa implementeras utanför Pintos. Se givna filer!
Rekommenderade (frivilliga) uppgifter när behov uppstår
- C-programmering slides
- Sätt er in i viktiga delar av Pintos!
- 4. Pintos länkade lista
- 7. Felsökning med debugger
- OBS! Dessa implementeras utanför Pintos. Se givna filer!
Uppgifter du kan jobba på i förväg eller när du kört fast
- OBS! Dessa implementeras utanför Pintos. Se givna filer!
- 5. Accesskontroll
- 6. Associativ container
- 8. Skapa stack till main
- Läs Pintos kod! Se läsanvisningarna för Pintos källkod i dokumentet.
Vecka 12
- 2. Argument till main i C implementeras utanför Pintos
- 6. Associativ container implementeras utanför Pintos (används i vecka 13)
- För de som vill ha mer pekarövning: 8. Skapa stack till main implementeras utanför Pintos (används i vecka 15)
- Uppgift 2 och 6 demonstreras lämpligtvis i slutet av första passet den 20/3
- 9. Installera PintOS
- 12. Systemanropet halt
- 13. Systemanropet exit
Vecka 13
Deadline 1
Du ska kunna köra examples/file_syscall_tests.c
felfritt. Detta bör vara klart 27/3,
eftersom vecka 15 behövs för kommande uppgifter. Deadline för bonus är den 10/4.
Vecka 15
- 8. Skapa stack till main
- OBS! Uppgift 8 implementeras utanför Pintos. Se givna filer!
- 11. Argument till main
- 10. Första processen
Vecka 16
Vecka 17 och 18
- 18. Processhantering: wait
- 20. Synkronisering (Påbörjas! Ej del av deadline 2!)
Deadline 2
Programmen examples/*longrun*
fungerar. Detta demonstreras senast 8/5 för bonus.
Tips om när olika testprogram (make check) bör fungera.
Vecka 19
Vecka 20 och 21
- 5. Accesskontroll
- OBS! Uppgift 5 implementeras utanför Pintos. Se givna filer!
- 19. Säkra systemanropen
Deadline 3
Alla Pintos testprogram fungerar konsekvent över många testkörningar. Detta demonstreras senast sista labtillfället (24/5).
Vecka 22
TENTAMEN Tisdag 30/5 kl 14-18
Sidansvarig: Filip Strömbäck, Klas Arvidsson
Senast uppdaterad: 2018-05-02