TDDI81 |
Processprogrammering och operativsystem, 4 p
/
6 hp
/Concurrent programming and operating systems/
För:
DI
EL
IP
|
OBS! |
Får ej ingå i examen samtidigt som TDDB63, TDDB68, TDDB72 eller TDDI12
|
|
Prel. schemalagd
tid: 86
Rek. självstudietid: 74
|
|
Utbildningsområde: Teknik
Ämnesgrupp: Datateknik Nivå (A-D):C
Huvudområde: Datateknik, Programmering Nivå (G1,G2,A): G2
|
|
Datavetenskap Datavetenskap, datalogi
|
|
Mål:
IUAE-matris
Efter avslutad kurs ska studenten kunna:
- förklara de grundläggande skälen varför operativsystem används och problemen som uppstår när dessa behov skall tillfredsställas.
- kunna beskriva och förklara de metoder och algoritmer som tillåter delning av datorsystemets mest grundläggande resurser (processortid, minne och lagring) kan delas på ett säkert, rättvist, förutsägbart och effektivt sätt.
- förklara och tillämpa de grundläggande begreppen process och tråd.
- förklara de problem som uppstår i flertrådade, samverkande system, som processkommunikation, synkronisering, resursdelning, och dödlägen (deadlock).
- kunna implementera korrekte lösningar till några valda algoritmer, metoder eller problem i ovanstående punkter, t.ex. synkronisering, systemanrop och minneshantering.
|
|
Förkunskaper: (gäller studerande antagna till program som kursen ges inom, se 'För:' ovan) Kännedom om grundläggande datastrukturer och algoritmer.
Programmeringsfärdighet i ett imperativt språk, lämpligast C med fokus på pekarhantering.
Grundläggande kunskaper om datorarkitektur är att föredra, men ej ett krav.
OBS! Tillträdeskrav för icke programstudenter omfattar vanligen också tillträdeskrav för programmet och ev. tröskelkrav för progression inom programmet, eller motsvarande.
|
|
Organisation: Kursen genomförs i form av
- föreläsningar som presenterar teoridelen av kursen.
- lektioner tillägnade problemlösning som förberedelse till laborativt arbete och tentamen.
- programmeringsuppgifter där studenten studerar och utökar ett
existerande operativsystem med ny funktionalitet.
Kursen pågår hela vårterminen.
|
|
Kursinnehåll:
- Introduktion till C-programmering.
- Motivering av operativsystem, översikt av ett operativsystems funktioner och byggstenar, minneshantering, sekundärminne, input/output, skydd och säkerhet.
- Delning av processortid: Processer, trådar, process och trådkommunikation, schemaläggning, synkronisering - problem och lösningar, detektion och förhindrande av dödlägen (deadlocks).
- Delning av minne: kontinuerlig allokering, kompression (compaction), segmentering, paging och virtuellt minne med relaterade problem, lösningar och algoritmer (translation look-aside buffer, ersättningsalgoritmer, etc.).
- Delning av sekundär lagring: Konceptet fil, filsystem, allokeringsmetoder (kontinuerlig, länkad, indexerad), hantering av fritt utrymme.
- Hot mot datorsystem och operativsystem, skyddsmekanismer vid delning av resurser, skydd mot obehörigt utnyttjande av datorresurser, säkerhet.
|
|
Kurslitteratur: Silberschatz A, Galvin P, Gagne G: Operating Systems Concepts. 7th edition. Wiley, 2005.
|
|
Examination: |
TEN1
LAB1
UPG1
|
Skriftlig tentamen (U,3,4,5) En laborationskurs (U,G) Frivillig dugga (U,G) |
3 hp 3 hp 0 hp
|
|
|
Frågorna vid den skriftliga tentamen kontrollerar hur väl studenten har uppfyllt lärandemålen i kursen. För att bli godkänd kan brister i uppfyllandet av vissa delmål kompenseras med bättre uppfyllande av andra delmål, dock krävs ett minimum i vissa centrala områden. |
|