hogeschool rotterdam / cmi

advertisement
HOGESCHOOL ROTTERDAM / CMI
Computersystemen 2
(TIRCCMS02 - Operating systems)
[email protected]
HOGESCHOOL ROTTERDAM / CMI
1 Inleiding
HOGESCHOOL ROTTERDAM / CMI
Voorwoord (1/3)
Een Operating System heeft vier
belangrijke onderdelen:
• Beheer van processen
• Invoer/uitvoer
• Geheugenbeheer (TIRCMS03)
• Filebeheer (TIRCMS03)
L.V. de Zeeuw
Computersystemen 2
3
HOGESCHOOL ROTTERDAM / CMI
Voorwoord (1/2)
Lijst met Operating Systems
Zie:
http://en.wikipedia.org/wiki/List_of_operating_systems
L.V. de Zeeuw
Computersystemen 2
4
HOGESCHOOL ROTTERDAM / CMI
1Inleiding
(1/)
• Het operating system
schermt de
onderliggende
hardware af van de
gebruiker en zijn
applicaties.
• De gebruiker krijgt te
maken met een
interface of virtuele
machine die
eenvoudiger is te
begrijpen.
L.V. de Zeeuw
Computersystemen 2
5
HOGESCHOOL ROTTERDAM / CMI
1Inleiding
L.V. de Zeeuw
(1/1)
Computersystemen 2
6
HOGESCHOOL ROTTERDAM / CMI
1.1Wat
is een operating system?
Twee onafhankelijke taken:
• Het operating system als een
uitgebreide machine (top-down visie)
• Het operating system als beheerder van
resources (bottum-up visie)
L.V. de Zeeuw
Computersystemen 2
7
HOGESCHOOL ROTTERDAM / CMI
1.1.1Het
operating system als een
uitgebreide machine (1/3)
De architectuur van de meeste computers is op
machine niveau primitief en daarom lastig
programmeren.
Zie bijvoorbeeld diskette besturingschip NEC
PD765
http://www.isdaman.com/alsos/hardware/fdc/fl
oppy.htm
L.V. de Zeeuw
Computersystemen 2
8
HOGESCHOOL ROTTERDAM / CMI
1.1.1Het
operating system als een
uitgebreide machine (2/3)
• Het is duidelijk dat de gemiddelde
programmeur zich niet al te zeer wil
bezighouden met het programmeren
van diskette drive’s.
• Een programmeur wil liever werken met
files die in een lees of schrijf toestand
worden gebracht:
Open file / Close file, etc
L.V. de Zeeuw
Computersystemen 2
9
HOGESCHOOL ROTTERDAM / CMI
1.1.1Het
operating system als een
uitgebreide machine (3/3)
• Het programma dat deze details van de
hardware voor programmeur verborgen houdt
is het operating system.
• Zo bekeken is het de bedoeling van het
operating system de gebruiker voorzien van
een virtuele machine die gemakkelijker te
programmeren is dan de onderliggende
hardware.
L.V. de Zeeuw
Computersystemen 2
10
HOGESCHOOL ROTTERDAM / CMI
1.1.2Het
operating system
als beheerder van resources (1/2)
• Operating system als beheerder van
alle delen van een ingewikkeld
hardware systeem.
• Denk aan: processoren, geheugens
timers, schijven, terminals,
magneetband drives, netwerk interfaces
laserprinters en allerlei andere
apparatuur
L.V. de Zeeuw
Computersystemen 2
11
HOGESCHOOL ROTTERDAM / CMI
1.1.2Het
operating system
als beheerder van resources (1/2)
• Voorbeeld: SPOOLING
• SPOOL:
– Simultaneous peripheral operations on-line
• Je wilt niet dat als meerdere gebruikers
een printer delen de te printen tekst
door elkaar komt.
L.V. de Zeeuw
Computersystemen 2
12
HOGESCHOOL ROTTERDAM / CMI
1.2Geschiedenis
van
operating systems (1/2)
De eerste echte digitale
computer (geen OS):
The Analytical Engine
ontworpen door Charles
Babbage (1792-1871)
Charles Babbage - Computer History Museum
Charles Babbage - You Tube
L.V. de Zeeuw
Computersystemen 2
13
HOGESCHOOL ROTTERDAM / CMI
1.2Geschiedenis
van
operating systems (2/2)
• Ada Lovelace (18151852) schreef voor de
Analytical Engine van
Babbage het eerste
computerprogramma.
• Het feit dat een vrouw
zich hiermee bezig hield
was voor die tijd zeer
bijzonder want vrouwen
werden in het onderwijs
buitengesloten.
L.V. de Zeeuw
Computersystemen 2
14
HOGESCHOOL ROTTERDAM / CMI
1.2.11e
generatie (1945-1955):
vacuumbuizen en schakelpanelen (1/2)
1e Generatie:
• Gedurende de Tweede Wereldoorlog werden computers gebouwd uit
mechanische relais daarna werden deze relais vervangen door vacuüm
buizen.
• Deze machines waren zo groot dat ze volledige kamers vulden.
• Deze computers werden geprogrammeerd in machinetaal door gebruik
te maken van schakelpanelen.
• Begin jaren 50 werden de schakelpanelen vervangen door
ponskaarten.
Besturingssystemen bestonden toen nog niet.
Typische programma’s: Bijna alle problemen bestonden uit
ongecompliceerde berekeningen zoals het bepalen van de tabellen
voor sinus en cosinus.
L.V. de Zeeuw
Computersystemen 2
15
HOGESCHOOL ROTTERDAM / CMI
1.2.11e
generatie (1945-1955):
vacuumbuizen en schakelpanelen (2/2)
Enkele
relays
Vroege vacuüm
buis
ENIAC Plugboard
L.V. de Zeeuw
Computersystemen 2
16
HOGESCHOOL ROTTERDAM / CMI
1.2.22e
generatie (1955-1965):
transistoren en batchsystemen de (1/4)
2e Generatie
•
De uitvinding van de transistor in het midden van de jaren 50 was
de start van een nieuwe generatie computers.
•
Computers werden zo betrouwbaar dat ze konden worden
gefabriceerd en verkocht aan klanten die daarvoor wilden betalen.
•
Mainframes: Grote vele miljoenen kostende computers in AC
computer rooms met eigen staf.
•
Computertijd moest gereserveerd worden. Ponskaarten werden nog
steeds gebruikt.
Batch systeem
Typische programma’s: Wetenschappelijke en technische berekeningen
L.V. de Zeeuw
Computersystemen 2
17
HOGESCHOOL ROTTERDAM / CMI
1.2.22e
generatie (1955-1965):
transistoren en batchsystemen de (2/4)
Transistor Radio
Transistors
Ponskaart
Ponskaart en
Tape
L.V. de Zeeuw
Computersystemen 2
18
HOGESCHOOL ROTTERDAM / CMI
1.2.22e
generatie (1955-1965):
transistoren en batchsystemen de (3/4)
L.V. de Zeeuw
Computersystemen 2
19
HOGESCHOOL ROTTERDAM / CMI
1.2.22e
generatie (1955-1965): transistoren
en batchsystemen de (4/4)
FMS: Fortran Monitor System
L.V. de Zeeuw
Computersystemen 2
20
HOGESCHOOL ROTTERDAM / CMI
1.2.33e
•
generatie (1965-1980): IC’s en
multiprogrammering (1/6)
Begin jaren 60: twee productielijnen:
– Computers voor bedrijfsleven (IBM 1401)
– Computers voor technische wetenschappelijke berekeningen (IBM 7094)
•
•
•
•
•
•
•
De IBM 360 serie werd ontwikkeld (waarbij IC’s werden gebruikt) om
beide benaderingen samen te voegen tot één universeel toepasbaar
systeem.
Ontwikkeling van multiprogrammering
Ontwikkeling van spooling
Ontwikkeling van time-sharing
MULTICS (Multiplexed Information and Computing Service) stond aan de
basis van vele ontwikkelingen.
UNICS (UNiplexed Information and Computing Service) is een gestripte
variant van MULTICS bedoeld voor de kleine PDP/7
UNIX werd tegen het eind van de 3e generatie uit UNICS ontwikkeld
(MULTICS  UNICS  UNIX)
L.V. de Zeeuw
Computersystemen 2
21
HOGESCHOOL ROTTERDAM / CMI
1.2.33e
generatie (1965-1980): IC’s en
multiprogrammering (2/6)
IBM 1401
IBM 7094
L.V. de Zeeuw
Computersystemen 2
22
HOGESCHOOL ROTTERDAM / CMI
1.2.33e
generatie (1965-1980): IC’s en
multiprogrammering (3/6)
IBM OS/360
L.V. de Zeeuw
Computersystemen 2
23
HOGESCHOOL ROTTERDAM / CMI
1.2.33e
generatie (1965-1980): IC’s en
multiprogrammering (4/6)
• Fred Brooks was
een van de
ontwerpers van
OS/360 en schreef
over zijn ervaringen
dit boek.
L.V. de Zeeuw
Computersystemen 2
24
HOGESCHOOL ROTTERDAM / CMI
1.2.33e
PDP/7
L.V. de Zeeuw
generatie (1965-1980): IC’s en
multiprogrammering (5/6)
PDP/11
Computersystemen 2
25
HOGESCHOOL ROTTERDAM / CMI
1.2.33e
L.V. de Zeeuw
generatie (1965-1980): IC’s en
multiprogrammering (6/6)
Computersystemen 2
26
HOGESCHOOL ROTTERDAM / CMI
1.2.44e
generatie (1980-heden):
Personal Computers (1/2)
•
•
•
•
•
LSI (Large Scale Integration) maakt de PC mogelijk
Vergeleken met PDP-11 geen essentieel verschil.
Enorme prijsdaling
Gebruikersvriendelijk
Eerste OSen voor PC’s: MS-DOS (Intel 8088) en
UNIX (Motorola 68000)
• GUI (Macintosh, Windows)
• Netwerken van PC’s
• Gedistribueerde Operating Systems
L.V. de Zeeuw
Computersystemen 2
27
HOGESCHOOL ROTTERDAM / CMI
1.2.44e
generatie (1980-heden):
Personal Computers (2/2)
IBM-PC - 1981
L.V. de Zeeuw
Computersystemen 2
28
HOGESCHOOL ROTTERDAM / CMI
1.3Begrippen
die bij
Operating Systems een rol spelen (1/1)
• De interface tussen
het operating
system en
gebruikers
programma’s wordt
gevormd door een
verzameling
system calls
L.V. de Zeeuw
Computersystemen 2
29
HOGESCHOOL ROTTERDAM / CMI
1.3.1Processen
(1/5)
Een proces is een programma in uitvoering en
bestaat uit:
• het uit te voeren programma
• de gegevens voor het programma
• de stack
• de stackpointer
• de programma teller
• andere registers
L.V. de Zeeuw
Computersystemen 2
30
HOGESCHOOL ROTTERDAM / CMI
1.3.1Processen
(2/5)
• Bij een time sharings systeem beslist het
operating system een proces af te breken om
een ander proces te gaan uitvoeren.
• Als een proces wordt afgebroken moeten alle
gegevens worden bewaard.
• Deze gegevens worden bewaard in de
procestable.
• De procestabel is een array of lijststructuur
met records.
• Elke record beschrijft een proces.
L.V. de Zeeuw
Computersystemen 2
31
HOGESCHOOL ROTTERDAM / CMI
1.3.1Processen
(3/5)
• De voornaamste system calls houden
zich bezig met aanmaken en
beëindigen van processen.
• Voorbeeld:
Het proces command interpreter of shell
leest een opdracht van de gebruiker om
een editor te starten. De shell start het
proces dat de editor gaat uitvoeren.
L.V. de Zeeuw
Computersystemen 2
32
HOGESCHOOL ROTTERDAM / CMI
1.3.1Processen
(4/5)
Als een proces een of meer processen (childprocessen)
kan creëren en deze processen ook weer
childprocessen kunnen creëren krijgen we
boomstructuur van processen.
L.V. de Zeeuw
Computersystemen 2
33
HOGESCHOOL ROTTERDAM / CMI
1.3.1Processen
(5/5)
• Af en toe is het noodzakelijk gegevens te sturen naar
een proces dat wordt uitgevoerd.
• Processen communiceren onderling via signals die
door het operatings system worden afgehandeld.
• Signals zijn het software equivalent van hardware
interrupts.
• Traps (vallen) die door hardware wordt gedetecteerd
(bijvoorbeeld het uitvoeren van een ongeoorloofde
instructie) veroorzaken een interrupt die wordt
omgezet in signals naar het proces dat de fout heeft
veroorzaakt.
• Trap  interrupt  signal
L.V. de Zeeuw
Computersystemen 2
34
HOGESCHOOL ROTTERDAM / CMI
1.3.2Files
(1/7)
Systemcalls zorgen voor het
• creëren
• openen
• schrijven
• lezen
• sluiten
van files.
L.V. de Zeeuw
Computersystemen 2
35
HOGESCHOOL ROTTERDAM / CMI
1.3.2Files
(2/7)
Begrippen
• Directory
• Root directory
• Padnaam
• Actuele (werk)
directory
L.V. de Zeeuw
Computersystemen 2
36
HOGESCHOOL ROTTERDAM / CMI
1.3.2Files
(3/7)
Vergelijking
Proces
Directory
Structuur
Boomstructuur
Boomstructuur
Diepte
Circa max 3
Veel dieper
Levensduur
Kort (minuten)
Lang (jaren)
Beveiliging en
eigendomsrechten
Een parentproces kan
alleen een childproces
aansturen of
benaderen
Vaak kan een grotere
groep dan alleen de
eigenaar files
benaderen
L.V. de Zeeuw
Computersystemen 2
37
HOGESCHOOL ROTTERDAM / CMI
1.3.2Files
(4/7)
Het filesystem bevindt zich fysiek bepaalde
randapparatuur:
• Diskettedrive
• Diskdrive
• Tapedrive
• CD/DVD/BluRay
• USB stick
Het toevoegen van deze randapparatuur aan
het filesysteem heet mounten
L.V. de Zeeuw
Computersystemen 2
38
HOGESCHOOL ROTTERDAM / CMI
1.3.2Files
L.V. de Zeeuw
(5/7)
Computersystemen 2
39
HOGESCHOOL ROTTERDAM / CMI
1.3.2Files
(6/7)
I/O apparaten gedragen
zich als files.
• Een toetsenbord is te
beschouwen als een file
die alleen maar kan
worden gelezen.
• Een beeldscherm is te
beschouwen als een file
die alleen maar kan
worden beschreven.
L.V. de Zeeuw
Computersystemen 2
40
HOGESCHOOL ROTTERDAM / CMI
1.3.2Files
(7/7)
• Een pipe is een pseudofile.
• Een pipe wordt gebruikt om twee processen aan elkaar te
koppelen.
• Als proces A gegevens wil sturen naar proces B beschrijft
proces A de pipe alsof het een uitvoer files is. Proces B leest de
pipe alsof het een invoer file is.
L.V. de Zeeuw
Computersystemen 2
41
HOGESCHOOL ROTTERDAM / CMI
1.3.3De
shell (1/2)
• De shell is de primaire interface tussen de
gebruiker en het operatingsystem.
• De shell maakt géén deel uit van het
operating system
• De shell maakt veel gebruik van systemcalls.
• Als je in tikt ‘time’ creëert de shell een
childproces. Het programma ‘time’ wordt door
het childproces uitgevoerd.
L.V. de Zeeuw
Computersystemen 2
42
HOGESCHOOL ROTTERDAM / CMI
1.3.3De
shell (2/2)
Redirection:
>
standaard uitvoer gaat naar een file
>> voegt de standaard uitvoer toe aan een (bestaande) file
<
standaard invoer komt uit een file
|
(pipe) De uitvoer van het ene programma wordt als
invoer voor het andere programma gebruikt.
Voorbeelden:
dir | sort
dir | sort > SortedDir.txt
sort < file1.txt
type file1.txt | sort
Sort < file1.txt > file2.txt
L.V. de Zeeuw
Computersystemen 2
43
HOGESCHOOL ROTTERDAM / CMI
1.4System
L.V. de Zeeuw
calls (1/3)
Computersystemen 2
44
HOGESCHOOL ROTTERDAM / CMI
1.4System
L.V. de Zeeuw
calls (2/3)
Computersystemen 2
45
HOGESCHOOL ROTTERDAM / CMI
1.4System
L.V. de Zeeuw
calls (3/3)
Computersystemen 2
46
HOGESCHOOL ROTTERDAM / CMI
1.4.1System
calls
voor procesbeheer (1/2)
L.V. de Zeeuw
Computersystemen 2
47
HOGESCHOOL ROTTERDAM / CMI
1.4.1System
calls
voor procesbeheer (2/2)
L.V. de Zeeuw
Computersystemen 2
48
HOGESCHOOL ROTTERDAM / CMI
1.4.2System
calls
voor signalen (1/2)
• Voor het netjes afhandelen van software
interrupts.
• Met de call SIGNAL kan het proces aangeven
welke signalen er worden geaccepteerd en
welke procedure dat moet doen.
• Voorbeeld:
signal(SIGINT,SIG_IGN)
voor het negeren van de DEL toetst
L.V. de Zeeuw
Computersystemen 2
49
HOGESCHOOL ROTTERDAM / CMI
1.4.2System
calls
voor signalen (2/2)
L.V. de Zeeuw
Computersystemen 2
50
HOGESCHOOL ROTTERDAM / CMI
1.4.3System
calls
voor filebeheer (1/4)
• Veel system calls hebben betrekking op files.
• Voorbeeld:
fd = creat (“abc”,0751)
heeft als effect dat de file met de naam “abc” met
octale beschermings code 0751 wordt gecreëerd.
fd is de filedesriptor
r=read, w=write,x=eXecute rechten
(eigenaar,groep, overigen)
0751 = 111 101 001
= rwx r-x --x
Octaal
L.V. de Zeeuw
Computersystemen 2
51
HOGESCHOOL ROTTERDAM / CMI
1.4.3System
calls
voor filebeheer (2/4)
L.V. de Zeeuw
Computersystemen 2
52
HOGESCHOOL ROTTERDAM / CMI
1.4.3System
calls
voor filebeheer (3/4)
L.V. de Zeeuw
Computersystemen 2
53
HOGESCHOOL ROTTERDAM / CMI
1.4.3System
calls
voor filebeheer (4/4)
L.V. de Zeeuw
Computersystemen 2
54
HOGESCHOOL ROTTERDAM / CMI
1.4.4System
calls voor beheer
van directories (1/3)
• System Calls voor directories onderscheiden
zich van system calls voor files.
• Voorbeeld:
link(“usr/jim/memo”,”usr/ast/note”);
Door link te gebruiken kan men dezelfde file
in verschillende directories met verschillende
namen aangeven.
L.V. de Zeeuw
Computersystemen 2
55
HOGESCHOOL ROTTERDAM / CMI
1.4.4System
calls voor beheer
van directories (2/3)
note
L.V. de Zeeuw
Computersystemen 2
56
HOGESCHOOL ROTTERDAM / CMI
1.4.4System
calls voor beheer
van directories (3/3)
L.V. de Zeeuw
Computersystemen 2
57
HOGESCHOOL ROTTERDAM / CMI
1.4.5System
calls voor beheer
beveiliging (1/1)
• Beveiliging calls zijn belangrijke voor de bescherming
van een computersysteem
• Voorbeeld:
chmod(“file”,0644);
Wijzigt de beschermingscode van een file. De file
wordt hier read-only gemaakt voor iedereen behalve
de gebruiker:
r=read, w=write,x=eXecute rechten
(eigenaar,groep,overigen)
0644 = 110 100 100
= rw- r-- r-L.V. de Zeeuw
Computersystemen 2
58
HOGESCHOOL ROTTERDAM / CMI
1.4.6System
calls voor tijd (1/1)
• Om de volgordelijkheid van operaties binnen
een operating systeem goed te kunnen
bijhouden zijn ‘tijd’ calls van belang.
• Voorbeeld:
Time
levert de tijd af in seconden vanaf 1 januari
1970
L.V. de Zeeuw
Computersystemen 2
59
HOGESCHOOL ROTTERDAM / CMI
1.5De
structuur van een
operating system(1/1)
Vier mogelijke interne structuren van een
operating system:
• Monolitische structuren
• Een systeem in de vorm van een
lagenstructuur
• Virtuele Machines
• Het client server model
L.V. de Zeeuw
Computersystemen 2
60
HOGESCHOOL ROTTERDAM / CMI
1.5.1Monolitische
structuren (1/2)
• Grote warboel. De enige structuur is dat er geen structuur is.
• Verzameling procedures die elkaar kunnen aanroepen.
• Iedere procedure heeft een goed gedefinieerde interface voor
aanroep en afleveren van resultaten.
• Gegevens afscherming is niet mogelijk.
• Er is wel structuur aan te brengen door system calls (kernel call
of supervisor call) te laten lopen via traps die gebruik maken van
gegevens in bepaalde registers of de stack.
• Machine gaat van Usermode  kernel mode (supervisor mode)
L.V. de Zeeuw
Computersystemen 2
61
HOGESCHOOL ROTTERDAM / CMI
1.5.1Monolitische
L.V. de Zeeuw
structuren (2/2)
Computersystemen 2
62
HOGESCHOOL ROTTERDAM / CMI
1.5.2Een
systeem in de vorm
van een lagenstructuur (1/3)
• Het operatings system kan georganiseerd
worden als hiërarchie van lagen. Ieder laag is
gebouwd op de laag eronder.
• Voorbeeld: THE-system (E.W. Dijkstra, TU
Eindhoven)
• Voorbeeld: MULTICS het lagen model is hier
verder gegeneraliseerd in de vorm van
concentrische ringen. De binnenste ringen
hadden meer privileges.
L.V. de Zeeuw
Computersystemen 2
63
HOGESCHOOL ROTTERDAM / CMI
1.5.2Een
systeem in de vorm van
een lagenstructuur (2/3)
L.V. de Zeeuw
Computersystemen 2
64
HOGESCHOOL ROTTERDAM / CMI
1.5.2Een
systeem in de vorm van
een lagenstructuur (3/3)
De structuur van het
THE operating
system.
L.V. de Zeeuw
5
De operator van de machine
4
Programm’s van de gebruiker
3
Beheer van input/outpiut
2
Communicatie tussen operator en de
processen
1
Beheer van het primaire en
trommelgeheugen
0
Toewijzing van de processor
(multiprogrammering)
Computersystemen 2
65
HOGESCHOOL ROTTERDAM / CMI
1.5.3Virtuele
•
•
•
Machines (1/2)
Een virtuele machine (virtual machine) is een operatingssystem dat in
staat is om een gebruikers programma uit te voeren dat niet speciaal
voor de computer waarop de virtuele machine draait, geschreven hoeft
te zijn.
Een virtuele machine die de hardware van een computer emuleert,
emuleert een processor (en eventueel andere hardware) voor een
programma dat voor het geëmuleerde platform is geschreven. In feite
doet de virtuele machine zich voor alsof het de andere computer is.
Virtualisatie is een veel gebruikt concept.
L.V. de Zeeuw
Computersystemen 2
66
HOGESCHOOL ROTTERDAM / CMI
1.5.3Virtuele
Machines(2/2)
CMS =
Conversational
Monitor System,
een interactief
OS voor één
gebruiker
VM =
Virtuale
Machine
Monitor
L.V. de Zeeuw
Computersystemen 2
67
HOGESCHOOL ROTTERDAM / CMI
1.5.4Het
client server model (1/3)
• Een ontwikkeling in tegenwoordige operating
systems is zoveel mogelijk code te verschuiven naar
een hogere laag.
• De minimale overgebleven code wordt kernel
genoemd.
• De meeste functies van het operatings system
worden als gebruikers processen geïmplementeerd.
• Voorbeeld: Voor het lezen van een blok van een file
zendt het proces van de gebruiker (client-proces) een
verzoek naar een proces voor de behandeling van
het verzoek (server-proces). Daarna wordt een
antwoord terug gestuurd.
L.V. de Zeeuw
Computersystemen 2
68
HOGESCHOOL ROTTERDAM / CMI
1.5.4Het
L.V. de Zeeuw
client server model (2/3)
Computersystemen 2
69
HOGESCHOOL ROTTERDAM / CMI
1.5.4Het
L.V. de Zeeuw
client server model (3/3)
Computersystemen 2
70
HOGESCHOOL ROTTERDAM / CMI
1.6Overzicht(1/1)
Operating systems bestaan uit vier
belangrijke onderdelen:
• Proces Beheer
• Beheer I/O resources
• Geheugenbeheer (TIRCMS03)
• Filebeheer (TIRCMS03)
L.V. de Zeeuw
Computersystemen 2
71
HOGESCHOOL ROTTERDAM / CMI
Dit was het …
Huiswerk:
• Lees hoofdstuk 1
• Maak de opgaven
L.V. de Zeeuw
Computersystemen 2
72
Download