Plenum OS Flashcards

1
Q

Hvorfor har vi operativsystemer?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hvilke to perspektiver bruker vi for hva et operativsystem er?

A

Extended machine (utvidet maskin): Gjemmer detaljene slik at den blir enklere å bruke.

Resource manager (Ressurshåndterer): Deler ressursene mellom programmene.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hvorfor trenger vi å vite hvordan operativsystemer fungerer?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hvilke hovedkomponenter finner man i et operativsystem?

A
Filhåndtering
Brukergrensesnitt (system calls)
Prosesshåndtering
Enhetshåndtering (Devide mgmt.)
Kommunikasjon (IPC, Nettverk)
Minnehåndtering (allokering, aksess)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hva skjer når vi kaller en systemfunksjon (f. eks. read) fra brukernivå (user space)?

A
  1. Argumentene pushes på stacken
  2. Systemkallnummer legges i et register
  3. Exceptioninstruksjon (kalt en trap).
  4. Operativsystemet håndterer systemkallet
  5. Operativsystemet returnerer, og programmet kjører videre.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hva er forskjellen mellom Interrupts og Exceptions?

A

Interrupts er asynkrone. Ikke trigget direkte av prosessor-instruksjon.

Exceptions er synkrone. Trigget av prosessor-instruksjon.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Er et systemkall en interrupt eller exception?

A

Systemkall er synkron, og derfor en exception. Et systemkall kalles av og til en trap.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hva gjør bootstrap?

A

Bootstrap setter i gang oppstartsprosedyren for operativsystemet. Bootstrap laster inn og kjører boot-programmet fra en kjent lokasjon på disk.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hvilke to typiske kjerne-arkitekturer har vi?

A

Monolitiske kjerner og mikrokjerner.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hva kjennetegner en monolitisk kjerne-arkitektur?

A

Monotolitiske kjerner har mye funksjonalitet inkludert i kjernen. Dette gjør denne arkitekturen effektiv, på bekostning av størrelse og kompleksitet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Hva kjennetegner en mikrokjerne-arkitektur?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hva er forskjellen på et program og en prosess?

A

En prosess er en kjørende instans av et program, og et program er en fil med executable-format.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hvilke prosess-tilstander har vi?

A

Ready
Running
Blocked

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hvordan beveger man seg mellom de forskjellige prosess-tilstandene?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hva er en context switch?

A

En context switch er å bytte kjørende prosess.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hvilke steg foretar kjernen i en context switch?

A
  1. Stop kjørende prosess
  2. Lagre kjørende prosess sin tilstand
  3. Last inn neste prosess sin tilstand
  4. Start neste prosess
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Hvorfor er det umulig å lage en scheduleringsalgoritmer som passer for alle systemer og formål?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Beskriv hva som skjer når en bruker gjør et tastetrykk.

A

Tastetrykk gir interrupt som CPU håndterer. Tastetrykket går til prosessen som er i fokus, men ikke nødvendigvis den som kjører.

19
Q

Ved et tastetrykk svarer systemet forskjellig for preemptive eller ikke-preemptive systemer?

A

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.

20
Q

Når kjøres en scheduleringsalgoritme?

A
Prosess lages
Prosess terminerer
Prosess blokkerer
Interrupt (preemptivt system)
Klokke-interrupt (preemptivt system)
21
Q

Hva innebærer minnehåndtering i kjernen?

A

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.

22
Q

Hva slags fragmentering vil du kunne finne i virtuelt minne (med pages)?

A

Intern fragmentering. Ubrukt plass i pages.

Større sider gir mer intern fragmentering.

Fragmentering er negativt fordi det sløser ressurser.

23
Q

Er fragmentering av virtuelt minne (med pages) et problem i dagens systemer?

A

Nei, de fleste systemer i dag har vi mer enn nok minne til at det blir et problem.

24
Q

Egner virtuelt minne seg til sanntids-applikasjoner som har strenge krav til responstid?

A

Kommer an på hvor strenge krav, men generelt egner det seg ikke fordi det kan ta lang tid å hente pages fra disk.

25
Q

En maskin med 32-bit virtuelle adresser bruker en to-nivås page table.

De virtuelle adressen splittes opp i 9-bits top level page table felt, et 11-bits andre-nivås page table og et offsett.

Hvor store pages er det i systemet og hvor mange pages er det i systemet?

A

Antall bits til offset = 32 - 11 - 9 = 12
- Dette gir oss størrelsen for en page

Størrelsen på page = 2^12 = 4096

Antall pages $= 2^32 / 2^12 = 2^20 = 1048578$

26
Q

En sidetabelloppføring på IA-32-arkitekturen, med gitt at sidestørrelsen er 4 KiB.

Hvor stor er sidetabellen?

A

Hver side er 4KiB, altså 4096 bytes, som er 2^12.

Med IA-32 arkitekturen har vi da 20bits til side/page addresser, som er 2^20 = 1048576 sider.

Total får da sidetabellen en størrelse på 1048576 * 4 = 4MiB.

  • En vil bruke 4 bytes for å addressere en side derfor har vi *4 på slutten.
27
Q

En maskin har 48 bits virtuelle addresser og 32 bits fysiske addresser. Page-størrelsen er 8 KB.

Hvor mange pages er det maksimalt plass til?

A

8KB = 8192 = 2^13
- Offsetet tar altså 13 bits for å få plass til pages av størrelse 8KB

(Virtuelle pages) Totalt antall adresser / Adresser per page. 2^48 / 2^13 = 2^35.

(Fysiske frames) Totalt antall adresser / Adresser per page. 2^32 / 2^13 = 524288.

28
Q

Hvilke forskjeller er det mellom minne og harddisker?

A

Minne er raskere enn harddisker.

Minne er dyrere (per byte) enn harddisker.

Harddisker har større lagringskapasitet.

Harddisker er persistente (Overlever reboot).

29
Q

Hvilke komponenter og logiske enheter består en mekanisk harddisk av?

A
Plater (Platters)
Spindel
Spor (Tracks)
Disk hoder (Disk heads)
Sylindre (Cylinders)
Sektorer (Sectors)
30
Q

Hva består aksess-tid for en blokk på en disk av?

A

Søketid - Flytte hodet til rett spor

Rotasjonsforsinkelse

Overføringstid

Andre forsinkelser. CPU for å lage forespørsel og prosessere I/O. Schedulering. Checksum…

31
Q

Hvorfor er det viktig å bruke en disk-scheduleringsalgoritme som passer til applikasjonene som bruker disken?

A

Algoritmen man bruker påvirker aksesstid (response time), overføringshastighet (throughput) og rettferdighet (fairness).

Algoritmen kan tilpasses aksess-mønsteret til applikasjonene som kjører i OSet.

32
Q

Hvordan er CPU-scheduling og disk-scheduling forskjellig?

A

Disker er mekaniske. Vanskelig å forutse aksesstid.

Disk-aksess bør ikke avbrytes (preemption).

33
Q

Hvilke plasserings-ordning for data på disk har vi (som er nevnt i pensum)?

A

Interleaved
Contiguous
Organ-pipe

34
Q

Hvorfor bør du ikke dra ut usb-kabelen til en ekstern lagringsenhet uten å ‘ejecte’ den?

A

Disk-blokker kan være cachet i minne. Det kan føre til korrupsjon og tap av data.

35
Q

Hva er disk-striping og sammensatt striping (Compound striping)?

A

Striping. En metoder for å få høyere overføringsrate ved å bruke flere disker for lesing av en fil.

Compound striping. Bruker kun et subset av diskene for aksess.

36
Q

Hvilken organisering av fil-blokker bruker FAT (File Allocation Table)?

A

Chaining in map.

37
Q

Forklar hvorfor en flytt operasjon fra et utstyr til et annet krever manipulasjon av filen selv, mens en flytt operasjon fra et sted til et annet på samme utstyret innebærer bare manipulasjon av katalogen.

A

Ved flytting mellom enheter må data kopieres til en ny file. Ved flytting på samme enhet trenger man kun å lage en ny fil-referanse i katalogen.

38
Q

Hvilke former for IPC (lokalt på en maskin) kjenner vi til i Unix/Linux?

A
Mailboxes (Message queues)
Shared memory
Signals
Pipes
Sockets
(Filer)
39
Q

Nevn noen forskjeller og likheter mellom pipes og mailboxes.

A

Begge har FIFO-sortering.

Pipes er byte-strøm, mens mailboxes har oppdeling.

Pipes er vanligvis en-til-en, mens mailboxes brukes av flere.

40
Q

Når vil man bruke pipes og når vil man bruker mailboxes?

A

Pipes ved en-til-en og når meldings-grenser ikke har betydning. Mailboxes ved en-til-mange og når meldings-grenser har betydning. (Bare veiledende)

41
Q

Hvorfor trenger vi egne funksjoner for å opprette områder med delt minne, istedenfor å bare bruke malloc og sende pekeren til området til en annen prosess?

A

En peker refererer til en minne i (ikke delt) virtuelt minne. Når man allokerer delt minne vil prosessene adressere samme minne selv om de har forskjellige virtuelle adresser.

42
Q

Nevn noen forskjeller mellom mmap og shmget, under hvilke forhold kan vi bruke mmap til å kommunisere mellom prosesser?

A

Minne allokert med shmget må de-allokeres.

Minne allokert med mmap de-allokeres når prosessen avsluttes eller ved siste unmap-kall.

Mmap kan brukes med filer

43
Q

Hvordan kan du liste de forskjellige signalene maskinen din kjenner til? Hvilken viktige signaler har vi?

A

“man 7 signal” gir en liste med signaler.

SIGKILL
SIGABRT
SIGHUP
SIGINT
SIGPIPE
44
Q

Hva skiller prosesser fra tråder med tanke på IPC?

A

Prosesser må sende meldinger eller opprette delt minne ved hjelp fra kjernen for å kunne kommunisere.

Tråder kan bruke minne for kommunikasjon uten å få hjelp fra kjernen.