Syfte
Du skaffar dig kunskaper om hur ett Unix/Linux-system implementerar de vanligaste mekanismerna i ett operativsystem. Du får kunskaper och färdigheter i C++-programmering med systemanrop och biblioteksfunktioner. Programmering av parallella processer, trådar behandlas med tillhörande synkroniseringsmekanismer. Programmering enligt POSIX-standarder för att skapa portabla program betonas.
Lärandemål
Efter genomgången kurs ska du
- kunna redogöra för design och principer för implementation av ett Unix/Linux-system,
- känna till tillräckligt många systemkommandon för att kunna använda ett Unix/Linux-system för programutveckling,
- från C++ kunna utnyttja systemanrop för utnyttjande av tjänster från operativsystemet,
- känna till och kunna utnyttja olika mekanismer för kommunikation mellan exekverande processer,
- känna till principerna för, och kunna utnyttja olika synkroniseringsmekanismer,
- kunna utnyttja POSIX-standarder för att konstruera källkodsportabla applikationer,
- kunna bedöma i vilka situationer ett program ska implementeras med trådar, och
- kunna redogöra för processer, trådar, minneshantering, filsystem, I/O-system, scheduleringsalgoritmer m.fl. mekanismer i Unix/Linux.
Innehåll
I kursen ingår följande moment: systemkommandon och skalprogram, biblioteksfunktioner och systemanrop enligt POSIX, processer, trådar och schedulering, signaler enligt POSIX, minneshantering med virtuellt minne och paging, synkroniseringsmekanismer, mekanismer för processkommunikation, device drivers och I/O samt filsystem.
Behörighet
Datateknik GR (A), 22,5 hp, inkluderande en grundläggande kurs i Operativsystem, 7,5 hp samt Objektbaserad programmering i C++, 7,5 hp.
Urvalsregler
Urval sker i enlighet med Högskoleförordningen och den lokala antagningsordningen.
Undervisning
Tidigt i undervisningen ingår en obligatorisk aktivitet, skriftlig inlämningsuppgift.
Kursen kan genomföras som campuskurs eller som webbaserad distanskurs utan samlingar. Olika genomföranden ställer olika krav på lärare och student. Vid varje kurstillfälle framgår vilken undervisningsform som kommer att tillämpas. Kursarbetets omfattning uppskattas till ca 200 timmar.
Campuskurs:
Undervisningen består av cirka 32 timmar (16 %) föreläsningar och 32 timmar (16 %) handledda laborationer. Cirka 136 timmar (68 %) av kurstiden är studietid utan lärare som du skall ägna åt inläsning av litteratur, föreberedelser för laboration, eget laborerande, redovisning av uppgifter samt förberedelser för seminarier och tentamen.
Vid förändrad resurstillgång kan fördelningen ändras.
Webbaserad distanskurs utan samlingar:
Allt kursmaterial presenteras via en webbaserad undervisningsplattform. Handledning ges via den aktuella undervisningplattformen uitfrån den enskilde studentens behov. Detta kan exempelvis ske via epostkorrespondens eller diskussionsgrupper. För varje student avsätts ca 5 timmars handledningstid.
Vid förändrad resurstillgång kan fördelningen ändras.
Examination
0.0 hp, I104: Skriftlig inlämningsuppgift
Betyg: Godkänd (P) eller Underkänd (F)
3.0 hp, L104: Laborationer
Betyg: Godkänd (P) eller Underkänd (F)
4.5 hp, T104: Tentamen
Betyg: A, B, C, D, E, Fx och F. A-E är Godkänt, Fx och F är Underkänt.
Betygskriterier för ämnet finns på www.miun.se/betygskriterier.
Betygsskala
På kursen ges något av betygen A, B, C, D, E, Fx och F. A - E är Godkänt, Fx och F är underkänt.
Litteratur
Obligatorisk litteratur
Robbins K, Robbins S, Unix Systems Programming: Communication, Concurrency and Threads, Prentice Hall, 2003 Second Edition, 0-1304-2411-0
Övrig information
Den som inte senast kursvecka tre genomfört Skriftlig inlämningsuppgift, moment I104, kommer att förlora sin plats i och med att Lärosätet då registrerar ett ”tidigt avbrott”.
Denna kurs kan inte ingå i samma examen som kurs med kod DTAB51.