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.
Beskriv hva som skjer når en bruker gjør et tastetrykk.
Tastetrykk gir interrupt som CPU håndterer. Tastetrykket går til prosessen som er i fokus, men ikke nødvendigvis den som kjører.
Ved et tastetrykk svarer systemet forskjellig for preemptive eller ikke-preemptive systemer?
Preemptive vil kunne stoppe kjørende prosess og håndtere tastetrykket. Gir mer overhead men raskere responstid.
Non-preemptive vil vente til kjørende prosess er ferdig og så håndtere tastetrykket. Gir lite overhead men treg og varierende responstid.
Når kjøres en scheduleringsalgoritme?
Prosess lages Prosess terminerer Prosess blokkerer Interrupt (preemptivt system) Klokke-interrupt (preemptivt system)
Hva innebærer minnehåndtering i kjernen?
Allokering av plass til prosesser.
Beskyttelse av minneområder (sikkerhet).
Gi inntrykk av at det er nok minne selv om det ikke er det.
Kontrollere bruken av forskjellig type minne.
Hva slags fragmentering vil du kunne finne i virtuelt minne (med pages)?
Intern fragmentering. Ubrukt plass i pages.
Større sider gir mer intern fragmentering.
Fragmentering er negativt fordi det sløser ressurser.
Er fragmentering av virtuelt minne (med pages) et problem i dagens systemer?
Nei, de fleste systemer i dag har vi mer enn nok minne til at det blir et problem.
Egner virtuelt minne seg til sanntids-applikasjoner som har strenge krav til responstid?
Kommer an på hvor strenge krav, men generelt egner det seg ikke fordi det kan ta lang tid å hente pages fra disk.