Plenum OS Flashcards
Hvorfor har vi operativsystemer?
Mulighet for portable programmer, enklere å forholde seg til.
Abstrahere bort maskinvaredetaljer.
Deling av ressurser (scheduling, allokering). Rettferdig fordeling mellom prosesser.
Sikkerhet. Prosesser skal ikke kunne se og forandre hverandres minneområder.
Hvilke to perspektiver bruker vi for hva et operativsystem er?
Extended machine (utvidet maskin): Gjemmer detaljene slik at den blir enklere å bruke.
Resource manager (Ressurshåndterer): Deler ressursene mellom programmene.
Hvorfor trenger vi å vite hvordan operativsystemer fungerer?
For å kunne bruke maskinen på en effektiv måte. Kjøretid og latens er viktige mål på effektivitet.
For å forstå begrensninger, muligheter og mulige feil. Helst før de oppstår.
Hvilke hovedkomponenter finner man i et operativsystem?
Filhåndtering Brukergrensesnitt (system calls) Prosesshåndtering Enhetshåndtering (Devide mgmt.) Kommunikasjon (IPC, Nettverk) Minnehåndtering (allokering, aksess)
Hva skjer når vi kaller en systemfunksjon (f. eks. read) fra brukernivå (user space)?
- Argumentene pushes på stacken
- Systemkallnummer legges i et register
- Exceptioninstruksjon (kalt en trap).
- Operativsystemet håndterer systemkallet
- Operativsystemet returnerer, og programmet kjører videre.
Hva er forskjellen mellom Interrupts og Exceptions?
Interrupts er asynkrone. Ikke trigget direkte av prosessor-instruksjon.
Exceptions er synkrone. Trigget av prosessor-instruksjon.
Er et systemkall en interrupt eller exception?
Systemkall er synkron, og derfor en exception. Et systemkall kalles av og til en trap.
Hva gjør bootstrap?
Bootstrap setter i gang oppstartsprosedyren for operativsystemet. Bootstrap laster inn og kjører boot-programmet fra en kjent lokasjon på disk.
Hvilke to typiske kjerne-arkitekturer har vi?
Monolitiske kjerner og mikrokjerner.
Hva kjennetegner en monolitisk kjerne-arkitektur?
Monotolitiske kjerner har mye funksjonalitet inkludert i kjernen. Dette gjør denne arkitekturen effektiv, på bekostning av størrelse og kompleksitet.
Hva kjennetegner en mikrokjerne-arkitektur?
Mikrokjerner har minimal funksjonalitet i selve kjernen. Funksjonalitet implementeres i prosesser som kjører i userspace. Bruk av funksjonalitet krever en del sending av meldinger, som gjør denne arkitekturen ineffektive. Fordeler med mikrokjerner er at de er små, modulere, utvidbare og portable.
Hva er forskjellen på et program og en prosess?
En prosess er en kjørende instans av et program, og et program er en fil med executable-format.
Hvilke prosess-tilstander har vi?
Ready
Running
Blocked
Hvordan beveger man seg mellom de forskjellige prosess-tilstandene?
Ready -> Running: Scheduler starter prosessen
Running -> Ready: Scheduler stopper prosessen
Running -> Blocked: Prosess blokkerer for input
Blocked -> Ready: Ekstern hendelse ferdig
I tillegg starter en prosess i Ready, og avsluttes fra Running
Hva er en context switch?
En context switch er å bytte kjørende prosess.
Hvilke steg foretar kjernen i en context switch?
- Stop kjørende prosess
- Lagre kjørende prosess sin tilstand
- Last inn neste prosess sin tilstand
- Start neste prosess
Hvorfor er det umulig å lage en scheduleringsalgoritmer som passer for alle systemer og formål?
Algoritmen påvirker fairness, starvation, response time, throughput, utilization, overhead, predictability (og mer?).
Forskjellige systemer har forskjellige formål og dermed forskjellige krav til målene over.
Typiske systemer: Batch, interaktive, real-time.