oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO
oppgave 1 Hvorfor har vi operativsystemer? Portable programmer Enklere å programmere applikasjoner Abstraksjon av ressurser (hardware) Deling av ressurser (hardware) Sikkerhet 1
oppgave 1 Hvorfor trenger vi å forstå hvordan de fungerer? Hva gjør operativsystemet for oss? Hva kan operativsystemet ikke gjøre for oss? Forstå feil som oppstår Forstå hvordan programmene våre fungerer i en større sammenheng 2
oppgave 2 Hva er hovedoppgavene til BIOS og bootstrap? BIOS Basic Input/Output System Bootstrapping Å starte opp seg selv på egenhånd 3
oppgave 2 Beskriv enkelt hva skjer fra øyeblikket når vi slår på datamaskinen frem til operativsystemet er klart til bruk. Forhåndsbestemt oppstartsaddresse POST Power On Self-Test BIOS laster inn en bootloader og starter bootloaderen Bootloaderen laster inn operativsystemet og starter operativsystemet Operativsystemet kjører initialiseringskode 4
oppgave 3 Hva er bruker- og kernelnivå? Hvorfor kan ikke alt kjøre på kernelnivå? Kernel-nivå: Koden til operativsystemet Tilgang til alle ressurser og instruksjoner Bruker-nivå: Begrensede instruksjoner Tilgang til ressurser gjennom systemkall Hvorfor et slikt skille? Sikkerhet Brukervennlighet (for programmerere) 5
oppgave 4 Hva skjer når vi gjør et systemkall (feks. read) fra brukernivå? Kaller en funksjon i et bibliotek for systemkall Argumentene pushes på stacken Systemkall-nummer legges i et register Interrupt-instruksjon Operativsystemet utfører systemkallet Systemkallet returnerer til biblioteket når den er ferdig Returnerer til funksjonskallet 6
oppgave 5 Hva er fordeler og ulemper med monolitiske kjerner vs micro-kjerner? Monolittisk: Hele operativsystemet kjører i kernel mode Ett stort operativsystem-objekt som kompileres og lastes inn av bootloaderen Alle deler av operativsystemet kan kommunisere direkte med hverandre (delt minne) Micro-kjerner: Kun de mest nødvendige delene kjører i kernel mode Resten kjører på brukernivå (drivere, filsystem, protokoller) Kommunikasjon mellom ulike moduler gjennom IPC. 7
oppgave 5 Monolithic Kernel based Operating System Microkernel based Operating System Application System Call VFS user mode IPC, File System Scheduler, Virtual Memory Device Drivers, Dispatcher,... kernel mode Application IPC UNIX Server Device Driver File Server Basic IPC, Virtual Memory, Scheduling Hardware Hardware Kilde: https://en.wikipedia.org/wiki/file:os-structure.svg 8
oppgave 5 Hva er fordeler og ulemper med monolitiske kjerner vs micro-kjerner? Monolittisk: Fordeler: Raske Enkle å konstruere Ulemper: Store Lite fleksible under kjøring Feil i drivere kan være katastrofale Endringer krever rekompilering og omstart 9
oppgave 5 Hva er fordeler og ulemper med monolitiske kjerner vs micro-kjerner? Micro-kjerner: Fordeler: Minimale i størrelse Ekstremt fleksible Enklere å porte til en ny platform Ulemper: Vanskelig å gjøre effektivt (men ikke umulig) 10
oppgave 5 Finn ut hvordan de mest populære OSene (Windows, Linux, OS X) er bygd med tanke på kjernetype. Windows: Monolittisk OS X: Monolittisk Linux: Monolittisk Alle tre er monolittiske, men henter noen egenskaper fra micro-kjerner Ofte betegnet som hybrid-kjerner 11
oppgave 6 Hva er en interrupt? Hva skjer når en interrupt blir opprettet? Signal til prosessoren om noe som krever operativsystemets oppmerksomhet Kilder Hardware (IRQ) Harddisk, nettverkskort, timer Software Interrupt-instruksjoner Exceptions/Traps Side-effekt av en instruksjon Prosessoren kaller en Interrupt Service Routine som OSet har satt opp En ISR lagrer state, håndterer interrupten, og gjenoppretter state 12
oppgave 7 Forklar hvordan funksjonene fork() og execve() fungerer. Fork: Oppretter en ny prosess Kopierer programkoden, stacken, heapen, context og prosess-relaterte datastrukturer i kjernen Returnerer 0 i den nye prosessen. Returnerer PID til barneprosessen i foreldreprosessen. Execve: Bytter ut programkoden med et nytt program Setter opp stacken og heapen på nytt Hva får vi om vi kombinerer disse? 13
oppgave 8 Forklar hva som skjer i en context switch. State (registere) lagres i PCB State til neste prosess lastes fra PCB OSet iverksetter den neste prosessen 14
15