Systembeskrivning. Systemskiss. Moduler.

Relevanta dokument
Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Datorteknik ERIK LARSSON

Föreläsning 2. Operativsystem och programmering

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Introduktion till hårdvara, mjukvara och operativsystem

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Datorsystem 5. På denna föreläsning skall vi prata om Operativsystem Exempel på tenta (typ fjolårets)

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Olika OS. Unix, Linux och Windows. Unix. Unix. En översikt av ett par OS. Titt på hur de gör. Många varianter. Mycket gemensamt. En del som skiljer

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

TDDC77 Objektorienterad Programmering

Reservföreläsningen inställd

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Projekt Fake för Virtutech

Operativsystem - input/output, skydd, virtualisering

Introduktion till programmering, hösten 2011

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Introduktion till programmering och Python Grundkurs i programmering med Python

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Operativsystem (ID2200/06) XX XX:00-XX:00

Föreläsning 3. Programmering, C och programmeringsmiljö

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Datorteknik ERIK LARSSON

Grundkurs i programmering - intro

KURSMÅL WINDOWS STARTA KURSEN

Operativsystem ID1200/06 och ID2200/06 Tentamen TENA 6 hp :00-18:00

Tentamen den 18 mars svar Datorteknik, EIT070

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Tentamen PC-teknik 5 p

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

DIG IN TO Dator och nätverksteknik

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

DIG IN TO Dator och nätverksteknik

Datorsystemteknik Föreläsning 7DAVA14

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

En kort text om programmering i C.

Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A

Lösningsförslag till tentamen i IS1350 Operativsystem

PC-Axis familjen En produktöversi k t

Projekt Fake för Virtutech

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Installation av atmel Studio på mac / linux

Tentamen PC-teknik 5 p Lösningar och kommentarer

Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet

Minnesisolering för virtuella maskiner en hypervisorstudie

Timervirtualisering för hypervisors JONAS HAGLUND

Operativsystem. Hierarkin för hårdvara läses nerifrån

Operativsystem ID2200/06 omtentamen :00-18:00

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

TDIU01 - Programmering i C++, grundkurs

F5: Högnivåprogrammering

Instruktioner för att kunna programmera på skolans datorer

Polling (cyklisk avfrågning) Avbrott

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

Föreläsning 3. Programmering, C och programmeringsmiljö

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Deluppgift 10 Starta den första processen (3.5h förarbete, 30min kodning)

Code-Lite tutorial ( /RoJ)

Objektorienterad programmering i Java

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

4 grundregler. Minneshantering. Problemet. Windows minkrav

32 Bitar Blir 64 Sammanfattning

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

DIG IN TO Dator och nätverksteknik

Processer och trådar. Rasmus Cronstrand Per Jonsson Ante Wall Fabian Åberg

Innehålls förteckning

F5: Högnivåprogrammering

TDDC76 - Programmering och Datastrukturer

Inledande programmering med C# (1DV402) Introduktion till C#

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

TDDC76 - Programmering och Datastrukturer

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Det virtuella tangentbordet

Statistik över heltal

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

Köra programportalen med Windows 8

Uppgifter till praktiska tentan, del A. (7 / 27)

Hur delas CPU? Processormodell. Vårt produk9onsbolag igen. Produkt 2. Produkt Vinster med aa göra saker sam9digt.

Program. Datorteknik. Semantiskt gap. C - Inledning. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Transkript:

Page 1 of 5 Systembeskrivning 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

Page 2 of 5 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

Page 3 of 5 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 Begrepp & akronymer Begrepp Virtutech

Page 4 of 5 Simics Företaget som står bakom projektet. De tillhandah åller också Simics (se nedan). En datorsimulator. Kan simulera en antal olika CPU:er och hårdvarukonfigurationer. Tanken är att EOS skall utvecklas med hjälp av detta program. Boota Att starta datorn. För att ladda in vårt OS vid start använder vi oss av GRUB, som är en 'Boot-Loader'. Interface 1. Det användaren av datorn ser av operativsystemet (t.ex. en textprompt) 2. De (system)funktioner som kan anropas ifrån andra program Nanok ärna Den processor-arkitekturs-känsliga delen av kärnan. Också den delen som implementeras i assembler. Tanken är att hålla denna del så liten som möjligt, för att förenkla eventuella konverteringar av EOS till andra arkitekturer. Kontextbyte Att växla program som körs. EOS skall kunna köra flera program "samtidigt". Eftersom det bara går att exekvera ett program i taget, måste systemet med jämna mellanrum byta program som k örs, för att på så sätt simulera att programmen körs samtidigt. Interrupthantering En dators komponenter genererar interrupts. Dessa måste EOS ta hand om på rätt sätt. T.ex. g öra ett kontextbyte vid ett timer-interrupt, eller läsa/skriva till hårddisken när den är "redo". Trådhantering Program körs i "trådar". EOS måste kunna hålla reda på alla program/trådar som k örs, för att t.ex. kunna göra kontextbyten, allokera/frigöra minne mm. Minneshantering Eftersom EOS är operativsystemet, måste EOS tillhandahålla minnesfunktioner såsom 'malloc', 'free' etc. EOS måste också tillhandahålla en (vrituell) addressrymd som ser likadan ut för alla program. Viktigt är också kopplingen riktigt minne - virtuellt minne (mappningen mellan ett programs virtuella minne och det fysiska minnet som faktiskt finns i datorn). Input/output Skärm, tangentbord, h årddisk mm. EOS måste ha drivrutiner för dessa (till en början endast skärm/tangentbord). Schemaläggare/scheduler Den rutin som ser till att alla trådar får processortid, dvs. faktiskt får exekvera. Mini-stdlib Då delar av EOS kommer att implementeras i C/C++, kommer ett antal funktioner från C/C++ standardbibliotek att behöva implementeras. Den mängd nödv ändiga funktioner utgör vårt mini-stdlib. Byggmiljö EOS måste kompileras, och kompileras på rätt sätt, vilket g ör att vi behöver en väldefinierad milj ö (samling program mm.) som är likadan för allihopa. Fulkod Kod som av någon anledning inte är snygg. Det kan vara sättet på vilket ett problem har lösts, eller helt enkelt hur koden ser ut, dvs. dålig eller ingen användning av "coding convensions". Akronymer OS EOS Operating System. Den mjukvara som abstraherar hårdvaran för applikationerna som användaren skriver/kör. Educational Operating System

Page 5 of 5 x86 MM VMM MMU I/O CVS Intel/AMD's processor arkitektur, för vilken EOS utvecklas. Memory Manager Virtual Memory Manager Memory Management Unit Input Output Concurrent Versions System $Id: acronyms.html,v 1.5 2003/03/22 15:38:42 d00-awa Exp $