TDIU16 Process- och operativsystemprogrammering
Laborationer
Labanmälan
Labanmälan är öppen. Deadline 8/4.
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.
En lokal introduktion och övning på git
hittar du i
vänstermenyn. 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
- 2. Argument till main
- 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
- 6. Associativ container
- 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
Vecka 13
Deadline 1
Du ska kunna köra examples/file_syscall_tests.c
felfritt.
Detta demonstreras senast 30/3. Början av vecka 14 behöver du
för att läsa in dig på kommande uppgifter.
Vecka 14
- 8. Skapa stack till main
- OBS! Uppgift 8 implementeras utanför Pintos. Se givna filer!
- 11. Argument till main
- 10. Första processen
Vecka 15
Vecka 17
- 18. Processhantering: wait
- 20. Synkronisering (Påbörjas! Ej del av deadline 2!)
Deadline 2
Programmen examples/*longrun*
fungerar. Detta
demonstreras senast 2/5.
Tips om när olika testprogram (make check) bör fungera.
Vecka 19
Vecka 20
- 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 (23/5).
Vecka 22
TENTAMEN Tisdag 3/6 kl 14-18
Sidansvarig: Filip Strömbäck, Anton Sundblad
Senast uppdaterad: 2017-03-21