← Område 6 Uppslag · Hur operativsystemet arbetar Ordlista

Dator- och nätverksteknik · område 6 · lektion 26

Hur operativsystemet arbetar

Kärnan gör tre saker: delar ut processorn, delar ut minnet, och avgör vem som får röra vad. Den tredje togs på lektion 25. Här tas de två första — och ingenting av det går att peka på i ett chassi.

Det här prövas i prov 2

Prov 2 den 15 december omfattar område 6 och 7. Härifrån kommer processerna och minnet — särskilt de två meningarna i avsnitt 6.

1. En processor, många program

Hur många program körs på din dator just nu? Fler än du ser fönster för. Och hur många processorkärnor har den? Betydligt färre.

Slutsatsen är att de inte kör samtidigt. Operativsystemet låter dem turas om, och byter så snabbt att det upplevs som parallellt.

Två begrepp:

2. Schemaläggningen

Den del av kärnan som väljer vilket program som får processorn näst heter schemaläggare. I ComputerExplorer → operating-systems → process-scheduler kör den Round Robin: varje process får sitt tidskvantum i tur och ordning.

De processer som är klara att köra men väntar på sin tur står i redokön.

TidskvantumVad du fårVad det kostar
KortJämnare svarstider. Bra när du skriver eller klickarFler växlingar — och varje växling kostar tid
LångtFärre växlingar. Bra när maskinen räknar i timmarEn kort process kan få vänta bakom en lång

De två talen som mäter om schemaläggningen är bra heter Väntat och Omloppstid i noden.

3. Kontextväxlingen

Bytet mellan två processer heter kontextväxling — context switch. Den går i sex steg:

StegVad som händer
1P1 körs — en process har processorn
2Timeravbrott utlöses — kvantumet är slut
3Sparar P1 — tillståndet skrivs till processkontrollblocket
4Växlar — kärnan väljer nästa
5Laddar P2 — nästa process tillstånd läses in
6Kör P2

Vad måste sparas för att en process ska kunna fortsätta exakt där den var? Var i programmet den stod, och vad som låg i processorns register. Det är processkontrollblocket.

Steg 3, 4 och 5 gör inget nyttigt arbete

De är ren omkostnad — tid som inte går till något program. Det är därför tidskvantumet inte kan vara hur kort som helst. Ett för kort kvantum lägger all tid på att växla.

4. Låset och dödläget

När två processer vill åt samma sak samtidigt behövs ett lås. Det släpper in en i taget, så att inte båda ändrar samma värde och en ändring försvinner.

Men lås kan låsa sig. Ett dödläge uppstår så här:

  1. P1 tar resurs R1
  2. P2 tar resurs R2
  3. P1 vill nu ha R2 — som P2 håller
  4. P2 vill ha R1 — som P1 håller
  5. Båda väntar. Ingen kan fortsätta.
Ett dödläge är inte en krasch

Ingenting har gått sönder. Båda processerna finns och båda väntar — på varandra. Det är värre än en krasch, eftersom ingenting larmar.

I deadlock-noden syns det som en cirkel i resursallokeringsgrafen. Cirkeln är dödläget.

5. Virtuellt minne

Om du startar tio program som vill ha 2 GB var, på en maskin med 8 GB — vad händer? Det fungerar.

Varje process får ett eget virtuellt adressutrymme. Processen tror att den har minnet för sig själv, från adress noll och uppåt. Operativsystemet mappar de virtuella adresserna mot fysiskt minne — och det som inte får plats läggs på lagringen.

OrdVad det är
SidaMinnet delas i lika stora block. Det är sidor som flyttas
RamEn plats i det fysiska minnet där en sida kan ligga
SidfelProcessen läser en sida som inte finns i något ram just nu. Operativsystemet hämtar den från lagringen
SidtabellMappningen mellan virtuella sidor och fysiska ramar

Ett sidfel är inte ett fel i betydelsen "något gick sönder". Det är normalt — men det kostar tid, eftersom lagringen är storleksordningar långsammare än RAM (lektion 9 och 11).

Det är därför en maskin med för lite minne blir trög i stället för att sluta fungera. Den byter sidor hela tiden.

6. De två meningarna

I labbrapportens resultatdel ska det stå två meningar om varför ett program kan se ut att ha mer minne än maskinen har.

Ett svar som håller nämner båda

Ett svar som bara säger "operativsystemet fixar det" är inte klart.

Kryssen sparas i din webbläsare.

7. Vanliga missuppfattningar

Det som sägsVad som faktiskt gäller
"Programmen körs samtidigt"De turas om. Växlingen är så snabb att den inte märks
"Process och program är samma sak"Programmet är filen. Processen är den som körs
"Kontextväxlingen är gratis, den går ju snabbt"Stegen som sparar och laddar gör inget nyttigt arbete. Det är kostnaden
"Kortare tidskvantum är alltid bättre"För kort lägger all tid på att växla
"Ett dödläge är en krasch"Ingen har kraschat. Båda väntar, och ingen kan fortsätta
"Sidfel betyder att något gått sönder"Det är normalt. Det kostar tid, det går inte sönder
"Virtuellt minne är samma sak som växlingsfilen"Adressutrymmet är kartan. Lagringen är dit sidor flyttas när ramarna är fulla

8. Ordlista

Ordträning

OrdBetyder
ProcessEtt program som körs, med sitt eget tillstånd i minnet
TidskvantumHur länge en process får hålla processorn innan den avbryts
RedoköDe processer som är klara att köra men väntar på sin tur
SchemaläggareDen del av kärnan som väljer vilken process som får processorn näst
Round RobinSchemaläggning där varje process får sitt tidskvantum i tur och ordning
KontextväxlingBytet mellan två processer. Engelska: context switch
ProcesskontrollblockDär en process tillstånd sparas när den växlas ut
LåsSläpper in en process i taget till en delad resurs
DödlägeTvå processer väntar på varandra i en cirkel. Ingen kan fortsätta
Virtuellt adressutrymmeDen egna bild av minnet varje process får
SidaEtt lika stort block minnet delas i
RamEn plats i det fysiska minnet där en sida kan ligga
SidfelNär en sida som behövs inte finns i något ram och måste hämtas från lagringen