Design Systemkald. User-mode Linux, The Linux kernel/325-2004



Relaterede dokumenter
1 Operativsystemer oversigt

Operativsystemer of C Efterår 2013 Virtuel hukommelse (kap. 9)

Interconnect. Front end interface

Systemkald DM Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/ Afleveret af: Jacob Christiansen,

Processer og tråde. dopsys 1

Sider og segmenter. dopsys 1

Typisk PC arkitektur. Synkronisering ved aktiv venten

Lageradministration Paging og segmentering

Sider og segmenter. dopsys 1

Lageret er hierarkisk fokus nu: disk

Filsystemer. dopsys. fredag den 26. november 2010

Lærebog. Datalogi 1F Forår Hvad sker hvornår? Kursusbøger. Planen for idag. Hvad er et operativsystem

Koordinering. dopsys

DM14-1. Obligatorisk opgave F.06. System Call. Jacob Aae Mikkelsen Ingen andre gruppe medlemmer. 6. marts 2005

Filsystemer: Implementation. dopsys

Principper for Samtidighed og Styresystemer

Implementation af Koordinering. dopsys 1

Lageradministration. dopsys

Algorithms & Architectures II

Operativsystemer - dopsys

19. januar 2006

Input/Output: Disk & Clock. dopsys

Oversigt. Operativsystemer [6]: Virtuelt lager. Virtuel lager. Virtuelt lager. Virkemåde. Virtuelt lager eksempel virtuelt lager

Principper for Samtidighed og Styresystemer

Filsystemer: Anvendelse. dopsys

Styresystemer og tjenester

Principper for Samtidighed og Styresystemer

Styresystemer og tjenester

ITJAV2 Obligatorisk opgave Portering af KVM til RTKernel

Vidar Jon Bauge. Notater til Teknik. Datamatikeruddannelsen efterår 2005 Side 1 af 54

Sådan bruger du BK- 9 Performance List. Formatering af USB- Memory. "Performance List" er en liste over dine registreringer.

Oversigt. Operativsystemer [5]: Filsystemer. Hvad er en fil? Hvor er en fil? Strukturen af en fil. Beskrivelse af en fil

FS2: Dynamic Data Replication in Free Disk Space for Improving Disk Performance and Energy Consumption

Operativsystemer. Tobias Brixen Q2-2012

Exceptions i Delphi. Try except

Programmering i maskinkode på AMIGA

Systemkald i Unix/Linux

Processer og koordinering

1 Sammenfatning 3. 5 Afprøvning Forventede uddata for obligatoriske afprøvningstilfælde Overholdelse af grænseflade...

Aftenskole i programmering sæson Core Data del 2. Sæson 2-13

Virtuel Hukommelse. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Schedulering. dopsys 1

Routing tables Processer Tråde Hukommelse. Operativsystemer og netværk Lektion 5. I/O Linux Debian Webserver

Schedulering. dopsys 1

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester

Multiprogrammering og operativsystemer i Danmark

Indhold. Download driver Find version af Windows Hent drivers til Windows Udpak driver... 6

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Indhold

Contents. ESXi installation og basisk konfiguration

DATALOGI 1F. Skriftlig eksamen tirsdag den 10. juni % 2 10 % 3 25 % 4 10 % 5 30 %

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Indhold

Lageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder

Planen for idag. Datalogi 1F Forår Hvad er en proces? Livscyklus for en proces. Hvad består en proces af?

Planen for idag. Synkroniseringsmekanismer. Krav til løsning. Kritiske regioner. Bagerens algoritme. Kritisk region via delt lager.

Installation af en virtuel maskine

Planen for idag. Kontrol af ydre enheder. Systemarkitektur. Synkronisering ved aktiv venten. Multiprogrammering[1]: Ydre enheder og multiprogrammer

Styresystemer og tjenester

Contents. John Have Jensen Mercantec 2011

Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet

I3PRG3+I3DTM3+I3ISY1-3. semester

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner

EasyRun En løbers bedste ven

Kernealphaerne Indhold af G1

Router U270 funktionsbeskrivelse

Sektornet VPN. Opsætning af Novell 4.1x server og klient på. Windows 2000/NT/XP

Optimering af Pervasive v 9 databasen

Tegnekasse. Introduktion. Scratch. I dette projekt skal du lave dit eget tegneprogram! Arbejdsliste. Test dit Projekt.

Disk-vedligeholdelse i Windows 10 - juli 2017

Blockprog Rev1.0. Block programmering CS1/CJ1. Qiuck guide OMRON

Jobliste overblik

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

komplet kopi af harddisken: 20 minu sådan! Med en kopi af Windows og dine programmer får du en ustabil eller fejlramt pc på ret kurs i en ruf.

Delta Elektronik A/S - AKD

Best Practices: I/O-konfiguration. Thomas Damgaard, Chefkonsulent, SAS Institute

Datatekniker med programmering som speciale H5

ALM / QualityCenter 11 Opgradering

BlogReader Af Jonas F. Jensen.

1 IKON BETEGNELSE INDLAGT SKAL TILFØJES

Lageradministration Intel Pentium og Unix/Linux

Processer. DS kursusgang nr. 2: Procestræer. ps: Vis processer

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

MAG Brugsvejledning. 2 Tilslutning 3 Opsætning af Wi-FI 4 Betjening af systemet 5 Catch-Up 6 Fjernbetjeningen 7 Fejlsøgning

Software Dokumentation

Datatekniker med programmering som speciale

2. Systemarkitektur... 2

Database "opbygning"

Installations guide Saxo ERPTrader. Microsoft Dynamics NAV 2009 / 2013 / 2013R2

Index. Indledning/formål...2 Hardware...3. Cisco 2501 Router... 3 Routerens interfaces...3

Rumfart. Introduktion. Scratch. Nu skal du lære hvordan du programmerer din egen animation! Arbejdsliste. Test dit Projekt.

OS2BORGERPC. Installations guide. Januar 2019

Aftenskole i programmering sæson Flere registreringer. Sæson 2 - Lektion 8

Digital stemmeoptager

dmasark Aflevering - Uge 50

Erfaringer med Information Management. Charlottehaven Jens Nørgaard, NNIT A/S

Hvad er SkyDrive Pro og hvordan bruges det?

Datalogi 1F. K1: Implementering af multiprogrammeringskerne med prioriteret skedulering. af Nikolaj Lundsgaard, Martin Schultz & Jesper Thøfner

Styresystemer og tjenester

Navision Stat 5.4. Beskrivelse af SFTP kommunikation mellem NS 5.4 og det eksterne fagsystem. Overblik. Side 1 af 6

FleeDa (DBK Fleetmap Database) Installationsvejledning til installation af VPN og FleeDa klient på egen PC (Juli 2017)

Transkript:

Tracing tråden afbryder systemkaldet via ptrace Systemkaldet til værten ændres til getpid Processens stak manipuleres til at kalde kernen Kernen returnerer til processen Design Systemkald

Design Startup/shutdown Startup Processen initialiseres for at kunne ligne en rigtig maskine Analogt til boot loader funktionaliteten Fysisk hukommelsesområde sættes op Task structure, stack og idle proces initialiseres Idle processen kalder start_kernel og den virtuelle maskine booter Init processen starter op og fungerer som tracing tråd Shutdown Nedlukning håndteres af arkitekturspecifikke rutiner I UML-porten foregår det således: Alle levende processer dræbes (inklusive helper threads) Tracing tråden afslutter nedlukningen Ved halt vil tracing tråden blot afslutte Ved reboot loopes tilbage til initialiseringskoden

Generisk kerne Task structure oprettes Arch laget sørger for den maskinafhængige del Design Oprettelse/nedlæggelse af processer UML-Port Ny proces oprettes på værten for hver ny VM proces Processer på værten oprettes af tracing tråden Tracing tråden har brug for at ptrace alle nye processer Ptrace er simplere, hvis tracing tråden er forælder Proces initialisering Signal handlers sættes op (SIGSEGV, SIGIO, SIGVTALRM) Processen sætter sig selv til at blive ptraced af forælder Ved endt initialisering sender processen SIGSTOP til sig selv Tracing tråden ser dette og sætter systemkalds returværdien til 0 Ligeledes sættes returværdien for forking processen til pid for den nye proces

Design Oprettelse/nedlæggelse af processer (fortsat) Skedulering Den nye proces signaleres, og handleren kalder schedule_tail Processen sender et SIGSTOP til sig selv Tracing tråden kopierer registrene fra forking processen til den nye proces Proces nedlæggelse Kmalloced buffere i processens thread structure frigives Processen på værten dræbes

Design Context switching Hver proces har sin egen tråd på værten Ved frivilligt context switch kaldes schedule som sender besked til tracing tråden Sider kan blive paged ud mens en proces sover Sider som bliver paged ud mens en proces sover bliver gemt i en cirkulær buffer

Design Traphåndtering og hukommelsesfejl Traphåndtering UML implementerer traps ved signaler Clock interrupts ved SIGALRM og SIGVTALRM I/O device interrupts ved SIGIO Memory faults ved SIGSEGV Traphandlers kører i kernetilstand Traphandlers kører på proces kerne stakken med system kalds tracing slået fra Hukommelsesfejl (Memory faults) Linux implementerer demand loading af proces kode og data Når en ikke-eksisterende side (page) tilgås, trappes en hukommelsesfejl Seg. fault handleren bestemmer om fejlen opstod i user-mode eller kernel-mode I user-mode: Hvis siden burde eksistere gøres den tilgængelig (Page fault mechanism) Ellers sendes SIGSEGV til den forespørgende processen I kernel-mode: Hvis siden burde eksistere gøres den tilgængelig Ellers panikker kernen

Design Låsning og IRQ håndtering Låsning Interrupt blokering Interrupts er signaler Interrupts blokeres vha. sigprocmask SMP låsning Instruktionerne til SMP låsning er ikke priviligerede i i386 arkitekturen UML nedarver SMP låsning direkte fra i386 porten Semaforer Semafor primitiverne er ikke priviligerede i i386 UML nedarver semafor primitiverne fra i386 porten IRQ håndtering UML IRQ systemet svarer næsten til i386 porten Signal handleren bestemmer, hvilken IRQ signalet repræsenterer Derpå kaldes do_irq og interrupten håndteres som i alle andre ports

Udvidelser COW block driver Hvad er COW? COW er Copy On Write layering En privat skrivbar fil (COW laget) suplerer en delt read-only fil (backing filen) Dette giver et billede af et sammenhængende read/write block device. Flere VM'er kan dele et enkelt filsystem Der skriver kun til COW laget Der læses enten fra COW laget eller fra backing filen COW filstruktur COW fil header: Magic number Versionsnummer Sti til backing filen Seneste modifikationstid og filstørrelse for backing filen Sector størrelse Bitmap der angiver, hvilke blokke der er blevet ændret => hukommelsen COW filen er "sparse" og kun modificerede blokke er allokeret på disken Læsning og skrivning foregår til samme position i både COW og backing fil

Udvidelser COW block driver (fortsat) Fordele COW mindsker forbrug af diskplads ved flere VM'er COW forbedre ydeevnen (Caching) Nemt at lave en ny COW fil og dermed starte fra scratch COW filen kan flettes ind i backing filen med uml_moo

Udvidelser hostfs Hvad er hostfs? Virtuelt UML filsystem Giver adgang til værtens filsystem Værtens kataloger kan mountes direkte med mount via hostfs Design Hostfs er implementeret som en user-space og en kernel-space del Kernel-space delen: Implementerer VFS interfacet VFS funktioner implementeres som kald til user-space delen User-space delen: Udfører kaldene som libc kald på værten Fordele Eksterne resourcer kan tilgås som filer Som eksempel vil en database kunne tilgås som filsystem under UML Ulemper Hostfs kan ikke begrænses til bestemte kataloger Mulighed for DOS angreb på værtens diskplads

Anvendelse Udvikling/kerne debugging Oprindelige mål med UML porten Giver mulighed for kerneudvikling uden separat testmaskine Giver mulighed for at anvende gdb og andre udviklingsværktøjer med Linux kernen Gdb og UML gdb kan ikke umiddelbart bruges sammen med UML Derfor startes gdb af tracing tråden under systemkalds tracing Tracing tråden fanger ptrace og andre systemkald fra gdb og eksekverer disse Disse systemkald annulleres og returværdien skrives tilbage til gdb

Anvendelse Virtuelt netværk Mulighed for at sende til værten og ud på de netvæk som værten er tilsluttet Mulighed for at sende til andre UML på samme vært En tråd på værten som agerer switch for det virtuelle netværk Brug ved f.eks.: Undervisning i netværk Test af netvært programmer Prototype af netvært struktur Test af clustering

Fremtidigt arbejde Fremtiden for UML Beskytte kernehukommelsen mod brugerprogrammer Mulighed for "rigtige" drivere Værts operativ systems ports SMP support UML som et normal brugerprograms bibliotek