Systembeskrivning

Untitled Document Projektets namn: Educational Operating System (EOS)
Uppdragsgivare: Virtutech

Gruppmedlemmar:
Jens Lind (Projektledare)
Peter Wåhlander (Sekreterare)
Åke Wallebom
Gilbert Netzer
Daniel Eklöf
Karl Berglund
Daniel Felke

Hemsida: http://www.nada.kth.se/projects/proj03/EOS/

Systemskiss


fig. 1: EOS moduler och hur de hänger ihop.

Moduler

Här följer en kort beskrivning av vad de olika modulerna i fig. 1 innehåller.

Användarprogram

Innehåller alla användarprogram.

Biblioteksfiler

Den här modulen består av tre filer: stdlib.h, stdio.h och string.h. Filerna innehåller funktioner som t.ex. printf(), new och delete. Modulen är gränssnittet mellan användarprogram och operativsystemet.

Systemanrop

Systemanrop består av ett antal funktioner som gör det möjligt för användaren att ta del av operativsystemets tjänster. Det är med hjälp av systemanrop som funktionerna i standard biblioteket kan ta sig från userspace till kernelspace. Till exempel finns det systemanrop för att få operativsystemet att skriva ut ett antal tecken på skärmen eller skapa en ny tråd.

Virtuell minneshanterare

Varje trådgrupp har en egen 4 GB stor minnesrymd. Virtuella minneshanterarens uppgift är att mappa fysiskt minne till en virtuell adress om en tråd begär mer minne. Den ska också se till att allt mappat fysiskt minne returneras till systemet om en tråd avslutas. Mycket av den virtuella minneshanteringen sker i MMU:n som är en hårdvaruenhet i processorn [X86].

Fysisk minneshanterare

Fysiska minnehanteraren hanterar systemets tillgängliga RAM-minne. Den måste veta hur mycket minne som finns tillgängligt och vilket av det som används eller eventuellt är reserverat och vilket som är ledigt.

Input/Output

I/O-modulen ger operativsystemet möjlighet att skriva tecken till monitorn och läsa tecken från tangentbordet.

Schemaläggare

Schemaläggaren har funktioner för att skapa och avsluta trådar och trådgrupper. Trådarna kan ges en viss prioritet som avgör hur ofta de kommer få tillgång till processorn. Schemaläggaren gör det också möjligt att blockera trådar eller säga åt dem att vänta en viss tid.

Avbrottshanterare

Den här modulen tar hand om mjukvaru- och hårdvaruavbrott. Sådana avbrott kan uppkomma då en användarprogram ger upphov till ett systemanrop (mjukvaruavbrott) eller när en division med noll sker i processorn (hårdvaruavbrott). Efter ett avbrott har hanterats återgår systemt till vad de höll på med innan avbrottet.

Nanokärna

Nanokärnan är den enda modulen som är processorarkitektursberoende, och dess uppgift är att abstrahera hårdvaran så pass mycket att de övriga modulerna utan (eller med liten) modifiering kan köras på vilken processortyp som helst.

Systemdesigndokument

Systemdesigndokumentet är genererat av Doxygen [DOX] från EOS källkod. Här följer en beskrivning av vad man kan hitta i de sidorna. Doxygen genererar dokument på engelska därför är rubrikerna på engelska. Systemdesigndokumentet [SYS] är väldigt stort, därför bör det läsas online och inte skrivas ut. Generellt sett gäller det att man från en sida kan nå informationen på de andra sidorna, men den här strukturen förenklar sökandet och skapar en mer överskådlig modell av systemet. Speciellt intressant kan det vara att se diagram över hur klasser förhåller sig till varandra och vilka andra metoder och attribut en viss metoder använder sig av. Sådan information hjälper både när man ska söka i, debugga eller utöka koden.

Main page

För tillfället fyller den här sidan ingen annan funktion än att visa vilken version av EOS Doxygen-genererade dokument det här är.

Namespace list

En lista med alla namespaces som finns i EOS. Här går det att få information om vilka klasser och attribut ett namespace innehåller samt ytterligare information om de klasserna och attributen.

Class hierarchy

Den här sidan visar alla klasser som finns i EOS och hur de förhåller sig till varandra. Man kan antingen få se det som ett diagram där det finns pilar som visar samband mellan olika klasser eller som en lista där arv visas med hjälp av sublistor. Från den här sidan kan man sedan få information för varje klass. Informationen består av beskrivning av metoder och attribut samt ett diagram över hur valda klassen förhåller sig till andra klasser.

Alphabetical list

En sida som listar alla EOS klasser sorterade i bokstavsordning. För klasserna går det att få exakt samma information som för sidan med class hierarchy.

Compound list

På den här sidan kan man se alla klasser, strukturer och unioner som finns i EOS kod.

File list

Rätt uppenbart: en lista av filerna som EOS består av. Här går det att se koden som en fil innehåller eller få information om vilka metoder som finns deklarerade i en fil samt en graf med olika beroenden mellan den här filens medlemmar och andra filers klasser och attribut.

Namespace members

En lista sorterade i alfabetisk ordning med metoder och attribut som tillhör ett namespace. Här går det att få samma information om ett visst namespace som på sidan med namespace list.

Compound members

En alfabetiskt sorterad lista med alla metoder och attribut som finns i EOS. Det går förstås att få information om klassen ett visst attribut eller en viss metod tillhör.

File members

En sida som namespace members, men här med metoder och attribut som tillhör en viss fil. Härifrån går det att få samma information om filerna som för sidan med file list.

Related pages

Den här sidan har externa länkar.

Referenser

[DOX] Doxygen, http://www.stack.nl/~dimitri/doxygen/, 2003-05-13
[SYS] EOS Systemdesigndokument, http://www.nada.kth.se/projects/proj03/EOS/doc/eos/index.html, 2003-05-15
[X86] Intel Pentium 4 Processor, http://developer.intel.com/design/pentium4/manuals/, 2003-05-15
[PRO] EOS Projektpresentation, http://www.nada.kth.se/projects/proj03/EOS/doc/projektpresentation.html, 2003-05-13
[ANV] EOS Användarhandledning, http://www.nada.kth.se/projects/proj03/EOS/doc/anvandarhandledning.html, 2003-05-13

 

Appendix A: Begrepp och akronymer

[an error occurred while processing this directive]