Operativsystem
IS1350 7.5hp
Jim Dowling
Docent, PhD
[email protected]
[Bilder av Robert Rönngren]
Innehåll
Om kursen
www.it.kth.se/courses/IS1350
Vad är ett operativsystem och varför ser de
ut som de gör?
kap. 1.1-1.3, 1.6-1.7
Processer
kap. 1.5, 2.1, 2.5
OS Föreläsning 1, Introduktion,
historia och processer
2
Om kursen -varför
Varför läsa OS?
 De flesta datorsystem behöver ett OS för att
fungera
 OS:et påverkar vad man kan göra med ett
datorsystem, hur det programmeras, prestanda
hos applikationerna
 OS är märkvärdigt långlivade!!!
- bra abstraktioner och API
- krav på bakåtkompatibilitet
OS Föreläsning 1, Introduktion,
historia och processer
3
Om kursen – mål och krav
Mål
 god förståelse för hur OS
- är uppbyggda och fungerar
- hur de påverkar applikationer, prestanda etc
- kunna dra egna slutsatser utgående från kunskaperna i kursen
 på egen hand kunna programmera med systemanrop
(dvs klara av C-programmering med systemanrop)
Krav
 aktuell laborationskurs
 Tentamen
OS Föreläsning 1, Introduktion,
historia och processer
4
Exempeloperativsystem
UNIX -> SunOS, Mac OS, Linux, (Windows)
LINUX -> Android, Chrome
Windows
OS Föreläsning 1, Introduktion,
historia och processer
5
Om kursen – det praktiska
 https://www.kth.se/social/course/IS1350/
 Labbassistenter
 Lars Kroll, [email protected]
 Alexandru-Adrian (Alex) Ormenisan, [email protected]
 C-programmering
 OBLIGATORISK TENTAANMÄLAN VIA DAISY
OS Föreläsning 1, Introduktion,
historia och processer
6
Hur klarar man kursen?
SKAFFA OCH LÄS BOKEN!
Tips från tidigare års studenter
 Börja med labbarna i tid!
Labbarna är realistiska programmeringsuppgifter
 Inte tillrättalagda
 Realistiska felmöjligheter
 Inte ”toy-examples/proof-of-concept”
Ska lyfta er till en nivå:
 Lösa enklare civilingenjörsmässiga uppgifter
OS Föreläsning 1, Introduktion,
historia och processer
7
Professionalism
Ni ska ut och jobba om 1-1.5 år!
Hur mycket är en kurs om 7.5hp värd?
Hur ska ni värdera 3 labbrapporter och
program? (2 personer * 80 h)
Ställ frågor!!!!!!!
OS Föreläsning 1, Introduktion,
historia och processer
8
Vilka krav ska man ställa på en
prestandautvärdering?
Mät rätt saker
 Alldeles för ofta mäter man inte det man tror att
man mäter
Mätnogrannhet – felmarginaler
 Bör normalt kunna anges
Reproducerbarhet
 Experimenten måste vara sådan och så väl
beskrivna att de kan upprepas av någon annan
OS Föreläsning 1, Introduktion,
historia och processer
9
Vad är ett operativsystem och
varför ser de ut som de gör?
Vad är ett operativsystem?
(Det program som startas när datorn slås på)
Det program som implementerar alla
systemanrop
Det/de program som exekverar i ”kernelmode”
Operativsystemet skall göra datorsystemet
användbart för dess ändamål!
OS Föreläsning 1, Introduktion,
historia och processer
11
Varför ser operativsystem ut som de
gör?
En liten historisk överblick av
dator- och operativsystemens
utveckling från 1940-talet och
framåt
Historia-första generationen –45-55
Datorer som fyller hela rum (kvarter)
Mekaniska reläer och vakumtuber
I/O
 kontrollpanel med switchar/kopplingspanel
 senare – hålkortsläsare
Inget OS!
Ex: ENIAC, BARK, BESK
Bara en användare i taget - otympligt
"I think there is a world market for maybe five computers." -- Thomas Watson, chairman of IBM, 1943
OS Föreläsning 1, Introduktion,
historia och processer
13
Återanvändning av kod
Måste varje användare skriva all kod från
början?
Återanvänd kod i form av biblioteksrutiner
Kräver
 Relokerbarhet
 Länkare
 Laddare
OS Föreläsning 1, Introduktion,
historia och processer
14
Historia – andra generationen –55-65
Transistorer – tillförlitliga
Kommersiella datorer, sk ”mainframes”
Hålkort - band
Front-end
Exekvering
Mainframe
Band - printer
Back-end
Batch – flera ”job” samlas på band
”Off-line” – utskrift av resultat
OS Föreläsning 1, Introduktion,
historia och processer
15
Batch-Sequential Bearbetning
Scanna → Sortera
IBM 082
MapReduce
OS Föreläsning 1, Introduktion,
historia och processer
Inte feltolerant 
Historia – tredje generationen –65-80
 Integrerade kretsar – billigare
 Mainframes – minidatorer (PDP)
 Operativsystemen viktiga
OS/360, MULTICS, UNIX
 Multiprogrammering
 Flera jobb samtidigt – överlappa I/O med beräkningar
 Spooling – läsa in jobb till kö samtidigt som andra
jobb igång
 Timesharing – flera interaktiva användare delar CPU:n
OS Föreläsning 1, Introduktion,
historia och processer
17
UNIX
MULTICS
UNIX
System V
BSD
POSIX
MINIX
OS Föreläsning 1, Introduktion,
historia och processer
LINUX
18
Dennis Ritchie Invented
the C programmingLanguage
and help Ken Thompson build
the Unix Operating System
OS Föreläsning 1, Introduktion,
historia och processer
19
Historia – fjärde generationen –80-nu
Ökande integration (kretsar)
Superdatorer – mikrodatorer (persondatorer)
inbyggda datorer
Nätverk
Persondatorer
 Användarvänlighet
 GUI – grafiska användargränssnitt
 CP/M, MS-DOS, WINDOWS
OS Föreläsning 1, Introduktion,
historia och processer
20
En närmare titt på vad OS gör och
hur de organiseras
Operativsystem för olika ändamål
 Olika tillämpningar/plattformar kan ställa speciella
krav på operativsystem
 Speciella OS eller anpassade versioner av mer
generella OS för:







Stordatorer
Servrar
Multi-processorer
Persondatorer
Inbyggda system
Realtidssystem
Smart-cards
OS Föreläsning 1, Introduktion,
historia och processer
22
Vad gör ett operativsystem
Filsystem (persistent lagring av information)
I/O enheter (hantering utan alla detaljer)
Processer (virtuella maskiner)
Kommunikation
Säkerhet, accesskontroll
OS Föreläsning 1, Introduktion,
historia och processer
23
Ett operativsystem levereras med
Kärna
 Kör i kernel (supervisor) mode
 Kan ej bytas av enskilda användare
 Gemensam för alla användare
Systemprogram (tcsh, ls, wc, ...)
 Kör i user mode (användarläge)
 Kan bytas av enskilda användare
 Ej gemensamma – olika användare kör normalt olika
instanser av systemprogramvaran
OS Föreläsning 1, Introduktion,
historia och processer
24
Ett operativsystem kan levereras
med
Servers (mail, telnet, ...)
 Kör i user mode
 Kan ej bytas av enskilda användare
 Gemensamma för alla
OS Föreläsning 1, Introduktion,
historia och processer
25
Datorsystem
Applikationer –
ex. Webb, spel, administrativa system
Kommandotolk/shell
Editorer
Kompilatorer
Systemanrop
Operativsystem
CPU/Processer
User
space
Minneshantering
Filsystem
Kommunikation
Säkerhet
I/O
Kernel
space
Maskininstruktioner
Mikroarkitektur
Fysiska komponenter
OS Föreläsning 1, Introduktion,
historia och processer
26
Två vyer av operativsystem?
Virtuell (utökad/extended) maskin
 Isolera program från hårdvaran
 Bättre programmeringsmodell
 Portabilitet
Resurshanterare
 Filsystem
 Minne
 CPU tid
 I/O enheter
OS Föreläsning 1, Introduktion,
historia och processer
27
Operativsystemet som virtuell maskin
Pascal, C, OZ, ML, Lisp....
Kompilator
Assembly
Assembler
Binärkod med systemanrop
Operativsystem
Binärkod utan systemanrop
Mikroprogram
Mikrokod
Digital logik
OS Föreläsning 1, Introduktion,
historia och processer
28
Olika synvinklar på ett
operativsystem
Användarens bild
 Kommandon (ls, wc, ...)
 Fönstersystem
Programmerarens bild
 Systemanrop (fork(), exec(), ...)
 Minnesmodell (text, data, stack, ...)
Implementatörens bild
 Struktur (monolitiskt, lagrat, ...)
OS Föreläsning 1, Introduktion,
historia och processer
29
Operativsystemsstruktur
Monolitisk (vanlig)
Lagrad, jfr OSI-modellen, MULTICS, WINDOWS NT
Virtuella maskiner, VM-370, Pentium emulerar 8086,
JAVA Virtual Machine
Mikrokärnor – Client-Server modeller
MACH, WINDOWS-98-2000
OS Föreläsning 1, Introduktion,
historia och processer
30
Systemanrop
Hur får vi kontrollen att övergå från user-mode
(användarprogram) till kernel-mode (OS)?
 Systemanrop startas med någon form av TRAP
instruktion
 Koden finns i kärnan
 Anropande process byter normalt stack tilll en kärnstack och fortsätter exekvera systemanropet i
kärnan
 Exekverar i kernel (supervisor) mode
 Cirka 100 stycken i Posix (350+ i Linux, många fler i
Windows)
OS Föreläsning 1, Introduktion,
historia och processer
31
count = read (fd, buffer, nbytes)
FFFF
nbytes
buffer
1
fd
SP
R0
stack
read
3
HELLO WORLD
count = read (fd, buffer, nbytes)
read()
TRAP
OS
2
data - heap
text - programkod
read - biblioteksfunktion
4
5
HELLO
WORLD
0
OS Föreläsning 1, Introduktion,
historia och processer
32
LÄS kap 1.6 – bra för
labbarna!
OS Föreläsning 1, Introduktion,
historia och processer
33
Varför har vi valt UNIX som
exempelsystem?
 Ett fleranvändar OS med många användningsområden
 Öppen källkod
 Först eller bland de första med många viktiga
koncept
 Har influerat många andra OS (MS-DOS)
 Enkelt och rent API (systemanrop)
 Tillgång till vettiga labbmaskiner
 Används i många industriella applikationer där
systemnära eller utveckling av kärnan krävs
OS Föreläsning 1, Introduktion,
historia och processer
34
Processer
En av grundpelarna i
operativsystem
Program och processer
Ett program är en följd av instruktioner
En process är ett program under exekvering
 kod
 data (stack, heap, ...)
 registerinnehåll
 fildeskriptorer
 ytterligare administrativ info
OS Föreläsning 1, Introduktion,
historia och processer
36
Ett funktionsanrop –
int main(int argc, char *argv[])
{
int tal = 4;
printTal(4);
}
void printTal(int param)
{
int aLokalVariable;
printf(”tal %d\n”, param);
}
Aktiverings
post 1
(stack
frame) för
main
Aktiverings
post 2 för
PrintTal()
Hur hittar man returadress och adress
till föregående aktiveringspost om man
tilllåter ett variabelt antal parametrar
som man gör i C?
OS Föreläsning 1, Introduktion,
historia och processer
Lokala variabler: tal
OXFF
Adress till aktiveringspost 0
Returadress efter main()
Parametrar till main():
argv
argc
Lokala variabler:
aLokalVariable
Adress tilll aktiveringspost 1
Returadress efter printTal:
Parametrar till printTal():
param
DATA + HEAP
TEXT
OXO
37
Varför processer?
Bättre programmeringsmodell –
många problem hanteras naturligt av
processer
Bättre feltolerans – om en process går ned så
behöver inte hela programmet/OS:et krascha
Möjlighet till bättre resursutnyttjande
genom överlappning av CPU-användning och
perifera enheter (I/O-enheter)
OS Föreläsning 1, Introduktion,
historia och processer
38
Att skapa och terminera processer
Processer i UNIX skapas med systemanropet
fork()
Processer fås att exekvera ett nytt program
med ett systemanrop ur familjen exec()
Processer kan terminera på fyra sätt:
 Normalt programslut (frivilligt)
 Med fel som programmet upptäckt (frivilligt)
 Fatalt fel (ofrivilligt)
 Dödas av annan process
OS Föreläsning 1, Introduktion,
historia och processer
39
Process hierarkier
Två alternativ:
 Den process som skapar (föräldraprocessen)
associeras med den skapade processen
(barnprocessen) på något sätt, ex. UNIX
 Godtycklig eller ingen association mellan processer
(ex. Windows)
OS Föreläsning 1, Introduktion,
historia och processer
40
Multitasking
Multitasking innebär att flera processer
exekverar samtidigt
 En process startar innan föregående avslutar
 De behöver inte bägge exekvera i samma ögonblick
Processerna kan vara
 Program körda av olika användare vid timesharing
 Program för samma användare på en arbetsstation
eller PC (t.ex. emacs och en kompilator)
 Systemprocesser
OS Föreläsning 1, Introduktion,
historia och processer
41
Förgrunds och bakgrundsprocesser i
UNIX
En process i UNIX kan antingen exekvera i
 förgrunden – vara den som man interaktivt arbetar
mot
 bakgrunden (background) – processen exekverar
men är inte den man interaktivt arbetar mot
Bakgrundsprocesser används för att
implementera delar av OS:et, serverprocesser för mail etc.
Serverprocesser som exekverar i bakgrunden
kallas ofta demoner (daemons)
OS Föreläsning 1, Introduktion,
historia och processer
42
Processtillstånd
RUNNING
schemaläggaren beslutar att
köra processen
blockerande systemanrop
preemption
BLOCKED
något händer,
t.ex. I/O klar
READY
Varför finns inte alla tänkbara tillståndsövergångar med i bilden?
OS Föreläsning 1, Introduktion,
historia och processer
43
Processtabell
Operativsystemet behöver hålla information
om processerna i systemet
Implementeras i en processtabell
Ett entry i processtabellen kallas ofta
ProcessControl Block (PCB)
Processhantering
register
programräknare
stackpekare
register
prioritet
process id
föräldraprocessens PID
signaler
statistik
Minneshantering
text
data/heap
stack
Filhantering
root directory
fildescriptorer
User ID
Group ID
OS Föreläsning 1, Introduktion,
historia och processer
44
Frågor
Varför går det bra/vill man ofta ha, flera
processer igång samtidigt?
100%
CPU
utnyttjande
grad
20% I/O wait
50% I/O wait
80% I/O wait
0
#processer
Vilken process skall få exekvera?
OS Föreläsning 1, Introduktion,
historia och processer
45
Schemaläggning
Fördela exekveringstid mellan processer på
ett rättvist och effektivt sätt
Offline: alla processer är givna i förväg
(batch jobb)
Online: processer tillkommer kontinuerligt
(ex. interaktivt fleranvändarsystem)
OS Föreläsning 1, Introduktion,
historia och processer
46
Mål för schemaläggning
 Allmänt
 Rättvis (fair)
 Implementera policy
 Balans – alla delar av systemet skall utnyttjas
 Batchsystem
 Maximera throughput
 Minimera turnaroundtid
 Maximera CPU-utnyttjandegraden
 Interaktiva system
 Minimera responstid
 Proportionalitet – möt användarens förväntningar
 Realtidssystem
 Klara deadlines
 Förutsägbarhet
OS Föreläsning 1, Introduktion,
historia och processer
47
Offline schemaläggning
Shortest Job First (SJF) kan användas om
man vet processernas exekveringstid i förväg
Man tar processerna i ordning från processer
med kort exekveringstid till processer med
lång tid
Om man vill ha en algoritm som ger den
kortaste medelsluttiden för processerna är
SJF bevisbart optimal
OS Föreläsning 1, Introduktion,
historia och processer
48
SJF och medelsluttid
M
Medelsluttid = (3+9)/2=6
Medelsluttid = (6+9)/2=7,5
0
3
6
9
OS Föreläsning 1, Introduktion,
historia och processer
49
Avbrytande schemaläggning
(preemptive scheduling)
Exekverande process kan avbrytas utan att
ha bett om det (RUNNINGREADY)
Bra om vissa processer är interaktiva men
inte nödvändigtvis alla
En process avbryts om
 den kört länge/förbrukat sitt tidskvanta
 en process med högre prioritet blir körbar
(BLOCKEDREADY)
OS Föreläsning 1, Introduktion,
historia och processer
50
Schemaläggning med tidsdelning
(time-slicing)
Alla processer som är READY ligger på readykön
När en process har kört en stund, t.ex.
100ms, läggs den sist i ready-kön och den som
ligger först får köra i stället
Tiden som en process får köra kallas för time
slice
För bra prestanda krävs rimlig relation mellan
time-slice och context-switch (processbytes)
tid
OS Föreläsning 1, Introduktion,
historia och processer
51
Prioriteter
Varje process har en prioritet
 0-159 i Unix System V release 4
 -20 – 20 i ”original” UNIX
Processen med högst prioritet får köra (om ej
BLOCKED)
En process prioritet kan ändras under
exekvering
Prioriteter anger hur bråttom en process har
 Ta emot paket från nätet: Bråttom!
 Kompilera ett program: Inte så bråttom.
OS Föreläsning 1, Introduktion,
historia och processer
52
Prioriteter och tidsskivning
En ready-kö för varje prioritet
Processer som använder hela sin time slice
utan att bli BLOCKED får lägre prioritet
En process som ligger länge i ready-kön får så
småningom ökad prioritet för att undvika
svältning
Kan ge bättre utnyttjande, ökad parallellitet,
mellan CPUn och I/O-enheterna
OS Föreläsning 1, Introduktion,
historia och processer
53
Några ytterligare exempel på
schemaläggningsstrategier
Round-robin
Shortest process next
 Uppskatta processens längd med längden av nästa
CPU-burst (Tn+1)
 Tn+1 = aTn + (1-a)Tn-1, 0<= a <= 1
Probabilistisk schemaläggning, lotterischemaläggning
OS Föreläsning 1, Introduktion,
historia och processer
54
Policy och mekanism
Ofta vill man skilja på policy och mekanism
Ex:
mekanismen är prioritetsschemaläggning
policy är hur prioriteter väljs/bestäms
OS Föreläsning 1, Introduktion,
historia och processer
55
Sammanfattning
Applikationer –
ex. Webb, spel, administrativa system
Kommandotolk/shell
Editorer
Kompilatorer
Systemanrop
Operativsystem
CPU/Processer
Minneshantering
Maskininstruktioner
Mikroarkitektur
Fysiska komponenter
OS Föreläsning 1, Introduktion,
historia och processer
56
Kommande föreläsningar
 Tors 13-15 D2:
Minneshantering: del 1
 Mån 15-17 D3:
Minneshantering: del 2
OS Föreläsning 1, Introduktion,
historia och processer
57