Beginselen van Computerarchitectuur - UGent

advertisement
Les 1: Inleiding
"Adding manpower to a late software project makes it later.”
Brooks' law – Fred Brooks – The Mythical Man-Month
best1-1
Overzicht
•
•
•
•
•
•
Wat is een besturingssysteem
Een korte geschiedenis
Soorten besturingssystemen
Architectuur van besturingssystemen
Bestaande besturingssystemen
Concepten in besturingssystemen
best1-2
Wat is een besturingssysteem?
Toepassingen/systeemprogramma’s
Interface naar toepassingen
Besturingssysteem
Interface naar de hardware
Hardware
Bemiddelaar tussen toepassing en hardware
best1-3
Besturingssysteemdiensten
•
•
•
•
•
•
•
•
•
User interface: GUI – CLI – Batch
Uitvoering van programma’s
Input-output
Bestandsmanipulatie
Communicatie
Foutdetectie
Systeemmiddelenbeheer
Boekhouding
Protectie en beveiliging
best1-4
Wat is een besturingssysteem?
minimalistische visie
Enkel de software die in geprivilegieerde
mode uitgevoerd wordt – de kern
toepassingen
Kern
HW
best1-5
Wat is een besturingssysteem?
maximalistische visie
Alles wat je meekrijgt als je een besturingssysteem koopt
Windows Mediaplayer?
Internet explorer?
Spelletjes?
best1-6
Gebruikersprogramma’s vs.
Systeemprogramma’s
• Gebruikersprogramma’s
–
–
–
–
Tekstverwerker
Databank
Mail-programma
…
• Systeemprogramma’s
–
–
–
–
–
Configuratiebeheer
Backup/restore
Virusscanner
Commandoshell
…
Onderscheid niet steeds duidelijk of relevant
best1-7
Ontwerpsdoelstellingen
BS ontwerper
BS gebruiker
best1-8
Systeemgeneratie (SYSGEN)
OS-CD
best1-9
Protectiedomeinen
applicatieprogramma
Gewone instructies
Gewone instructies
gebruikersmode
kernmode
Gewone instructies
+ gepriviligieerde instructies
[kernmode <> root/administrator mode]
best1-10
write(“hello”);
write:
mov eax,10
mov ebx,arg
int 128 (syscall)
ret
Systeemoproep
switch (eax) {
case 10:
…doe I/O
iret
}
user mode
kernmode
best1-11
Soorten systeemoproepen
•
•
•
•
•
Procesbeheer
Bestandsbeheer
Apparaatbeheer
Informatiebeheer
Communicatiebeheer
best1-12
Overzicht
•
•
•
•
•
•
Wat is een besturingssysteem
Een korte geschiedenis
Soorten besturingssystemen
Architectuur van besturingssystemen
Bestaande besturingssystemen
Concepten in besturingssystemen
best1-13
Korte geschiedenis
• Eerste generatie 1945 - 1955
vacuümbuizen, prikborden
paar computers ter wereld
• Tweede generatie 1955 - 1965
transistors, batchsystemen, mainframes
één computer per bedrijf
• Derde generatie 1965 – 1980
IC’s en multiprogrammering, minicomputers
één computer per afdeling
• Vierde generatie 1980 – 1995
microprocessors, PC’s,
één computer per persoon
• Vijfde generatie 1995 – heden
ingebedde systemen, PDA’s, GSM’s
verschillende computers per persoon
best1-14
Eerste generatie 1945-1955
Data
Programma
Compiler
• Geen besturingssysteem
• Programmeren door
bedrading via prikborden
(plugboards)
• Later ponskaarten
I/O-bibliotheek
tbest1-15
Tweede generatie 1955-1965
• Opkomst van de mainframes
• Off-line verwerking met tapes
Nadeel: doorvoertijd wordt groter
best1-16
Tweede generatie 1955-1965
Compiler
I/O-bibliotheek
Vb.: FMS: Fortran Monitor System: residente monitor
best1-17
Derde generatie 1965–1980
• Opkomst van de computerarchitectuur
(IBM 360, 370, 4300, 3080, 3090)
• Opkomst van de minicomputers (PDP1, 1961)
• Eerste echte BS: OS/360:
verschrikkelijk complex, talloze bugs…
• Introductie van multiprogrammering
• Introductie van spooling
• Introductie van time sharing
best1-18
Multiprogrammering
Niet belangrijk voor wetenschappelijk
rekenen (2e generatie) [fortran]
Zeer belangrijk voor commerciële
toepassingen (3e generatie) [cobol]
Hardwareprotectie vereist voor het geheugen,
voor de randapparaten en voor de CVE
BS
2e gen
Wachten op IO
3e gen
best1-19
Spooling
Simultaneous Peripheral Operation On-Line
– disk i.p.v. tape
– niet langer sequentieel
– minder wachttijden (terugspoelen, nieuwe tapes
opleggen,…)
best1-20
Time sharing
• CTSS: Compatible Time Sharing System, MIT
1962, eerste interactieve vorm van
multiprogrammering
• Opvolger MULTICS: MULTiplexed Information
and Computing Server (MIT, Bell Labs,
General Electric), later gecommercialiseerd
door Honeywell
• Ken Thompson (Bell Labs) porteerde Multics
voor de PDP-7, hetgeen later resulteerde in
Unix en zijn varianten
best1-21
Vierde generatie 1980–1995
• Microcomputers of PC’s
• Gary Kildall, Digital Research: 1974 CP/M
(Control Program for Microcomputers)
• IBM PC (1980): MS-DOS, Xenix
• Apple (1983): introductie van de GUI
• Vanaf 1995: Windows NT, 2000, XP, Vista,
7, 8; convergentie met Windows 95, 98, Me
• Daarnaast ook Unix/Linux
• Tegenwoordig allemaal
netwerkbesturingssystemen
best1-22
Vijfde generatie: 1995–heden
• Ingebedde processors en
besturingssystemen in GSM’s, PDA’s,
GPS’en, MP3-spelers, enz.
• Communicatie en verwerking van media
belangrijk, quality of service (QoS),
beveiliging, …
• Windows Mobile, Symbian, Android,
Palm OS, iOS, …
best1-23
Migratie van functionaliteit
best1-24
Overzicht
•
•
•
•
•
•
Wat is een besturingssysteem
Een korte geschiedenis
Soorten besturingssystemen
Architectuur van besturingssystemen
Bestaande besturingssystemen
Concepten in besturingssystemen
best1-25
Soorten besturingssystemen
•
•
•
•
•
•
•
•
Mainframes
Desktopsystemen
Multiprocessorsystemen
Gedistribueerde systemen
Geclusterde systemen
Ware-tijdsystemen
Zaksystemen
Chipkaartsystemen/Sensor netwerken
best1-26
Mainframes
• Sterk in IO (TB opslagcapaciteit)
• Gemultiprogrammeerd
• Toepassingen
– Batch
– Transacties (databanken)
• Vb. OS/390, BS/2000, z/OS
• z/Architecture is nog steeds compatibel
met IBM 360
best1-27
Desktopsystemen
• Personal computer – in de regel slechts 1
gebruiker
• Talrijke randapparaten
• Gebruiksgemak en snelheid primeren
• Neemt gaandeweg meer eigenschappen van
grotere systemen over
• Niet gebonden aan 1 besturingssysteem
(Windows *, MacOS, UNIX, Linux)
best1-28
Multiprocessorsystemen
• Systemen met meer dan 1 microprocessor,
maar met gemeenschappelijk geheugen
• Voordelen van een multiprocessor:
– Hogere doorvoer, meer rekenkracht
– Efficiënter hardwaregebruik
– Grotere betrouwbaarheid
• graceful degradation
• fail-soft systems
• Vaak gebruikt als server: file server, mail
server, web server
• Unix/Linux, Windows * server
best1-29
Multiprocessorarchitecturen
• Asymmetrische multiprocessing
• Symmetrische multiprocessing (SMP)
best1-30
Gedistribueerde systemen
best1-31
Client-server vs. peer-to-peer
C
CS
C
C
CS
CS
S
CS
C
C
CS
CS
C
Client-server
CS
Peer-to-peer
best1-32
Geclusterde Systemen
• Bij clustering delen de verschillende
computersystemen schijfruimte
• Goed voor hoge beschikbaarheid
best1-33
De Cloud
• Serverinfrastructuur die tegen betaling
beschikbaar is. Drie varianten:
– Software as a service (SaaS)
– Platform as a service (PaaS)
– Infrastructure as a service (IaaS)
best1-34
Ware-tijdsbesturingssystemen
•
•
•
•
Ware tijd ≠ snel ! Ware tijd = op tijd.
Interactie met de omgeving
Harde ware tijd
Zachte ware tijd
best1-35
Zaksystemen
• Digitale agenda’s (PDA), Zaktelefoons,...
• Problemen:
– Beperkt geheugen
– Beperkte rekenkracht
– Klein scherm
• Voorbeelden: PalmOS, Windows Phone,
Symbian, Android, iOS, Tizen, …
best1-36
Chipkaart/sensor netwerken
besturingssystemen
• Extreme randvoorwaarden qua verbruik,
snelheid, enz.
• Minimale kern
• Soms een Java Virtuele Machine
• TinyOS
best1-37
Overzicht
•
•
•
•
•
•
Wat is een besturingssysteem
Een korte geschiedenis
Soorten besturingssystemen
Architectuur van besturingssystemen
Bestaande besturingssystemen
Concepten in besturingssystemen
best1-38
Architectuur van
besturingssystemen
•
•
•
•
•
Monolitisch
Gelaagd
Kernmodules
Microkern
Virtuele machines
best1-39
Monolithisch
Toepassingen
Interface naar toepassingen
Interface naar de hardware
Hardware
best1-40
Gelaagd
Toepassingen
Interface naar toepassingen
Interface naar de hardware
Hardware
Vb Unix, OS/2, VMS
best1-41
Kernmodules
Toepassingen
Interface naar toepassingen
Interface naar de hardware
Hardware
[Modules kunnen soms dynamisch ingeladen worden]
best1-42
Microkern
Toepassingen
Interface naar toepassingen
Gebruikersmode
microkern
Kernmode
Interface naar de hardware
Hardware
Alle communicatie tussen clients gaat via de microkern
Vb. Mach, eerste versies van Windows NT, Minix, Singularity
best1-43
Windows NT Client-Server
Structure
best1-44
Virtuele hardware
best1-45
Systeem Virtuele Machine
VMWare
Xen
Microsoft (Hyper-V)
Toepassing
Interface
Windows/Linux
Interface
Toepassingen SystemVM
Interface naar toepassingen
Windows/Linux
Interface naar de hardware
Hardware
best1-46
Overzicht
•
•
•
•
•
•
Wat is een besturingssysteem
Een korte geschiedenis
Soorten besturingssystemen
Architectuur van besturingssystemen
Bestaande besturingssystemen
Concepten in besturingssystemen
best1-47
Bestaande
besturingssystemen
•
•
•
•
•
•
•
•
Unix en zijn varianten
MS-DOS/MS-Windows
Windows 95/98/NT/2000/ME/XP/Vista/7/8
OS/2
Mach
Mac OS
VMS
GSM-OS
best1-48
Unix
• 1972
• Bell Telephone (Dennis Ritchie & Ken
Thompson)
• Via universiteiten: BSD (Berkeley
Software Distribution)
• AT&T: System V
• Solaris, HPUx, Irix, AIX, Sinix, Linux
• Standaard: POSIX
best1-49
Ms-DOS
• 1981 Microsoft
• Sindsdien 6 versies
• Nauwelijks besturingssysteem te
noemen
• Beperking 640 kiB
• Grafische omgeving Windows 3.x
best1-50
Windows
95/98/NT/2000/ME/XP/Vista/7/8/10
• NT: 1993
• Eerste echte OS van Microsoft
• Via HAL (Hardware Abstraction Layer)
aanpasbaar aan andere platformen –
binnenkort ook ARM.
• 23 miljoen lijnen code (Windows 2000)
en 63000 fouten bij de introductie
• Client versie + Server versie
best1-51
OS/2
• 1987
• Antwoord van IBM op MS-DOS/Windows
• 32-bit OS
best1-52
Mach
•
•
•
•
‘80 Carnegie-Mellon
Gebaseerd op microkern
Emuleert Unix
Geëvolueerd in OSF/1 (Open Software
Foundation)
• Oorsprong van heel wat moderne
concepten
best1-53
Mac OS
• Open source kernel gebaseerd op
FreeBSD and Mach 3.0
• POSIX-compatibel
• Enkel voor Macintosh
• Sterke grafische mogelijkheden
• Nu Mac OS X
best1-54
VMS
• OS voor de VAX (Digital, later Compaq,
nu HP)
• Zeer invloedrijk in de ‘80
• Zeer veel nieuwe ideeën: interactief
werken, bestanden met versies,
netwerk (DECNET)
• Makers van VMS hebben eerste versie
van Windows NT ontwikkeld
best1-55
GSM-OS’en
• Besturingsystemen voor
zaktelefoons/pda’s – voor een ARM
processor
– Windows Phone = mini-Windowsversie
– Android = Linux + Java door Google
– iOS: voor de iPhone en iPad
– Symbian – gepromoot door Nokia
– Palm OS
– Tizen
best1-56
Overzicht
•
•
•
•
•
•
Wat is een besturingssysteem
Een korte geschiedenis
Soorten besturingssystemen
Architectuur van besturingssystemen
Bestaande besturingssystemen
Concepten in besturingssystemen
best1-57
Concepten in
besturingssystemen
• Abstrahering
• Virtualisering
• Onderscheid tussen Mechanisme &
Beleid
• Onderscheid tussen Interface en
Implementatie
best1-58
Abstrahering
• Hardware-elementen worden geabstraheerd
door software-elementen:
– Sectoren op schijf worden bestanden
– Input/output apparaat wordt software device (met
bestandsinterface)
– Systeemparameters worden bestanden (/proc
bestandensysteem)
best1-59
Virtualisering
• Het geheugen wordt opgedeeld in verschillende
gescheiden (virtuele) adresruimten, gebruikt
door processen
• De rekentijd wordt verdeeld tussen de
verschillende draden die kunnen beschouwd
worden als virtuele cpu’s
• Randapparaten worden gevirtualiseerd (o.a.
door spooling)
best1-60
Mechanisme & Beleid
• Mechanisme definieert de manier waarop iets
gebeurt
• Het beleid bepaalt hoe er gebruik gemaakt
wordt van het mechanisme
• Bv. Protectiemechanisme en het gebruik
ervan, planningsmechanisme en de
parameters om het af te stellen
• Mechanisme is vast, beleid kan aangepast
worden
best1-61
Interface en Implementatie
• Bestandsinterface gekoppeld aan diverse
onderliggende bestandensystemen
• Win32 interface, bovenop diverse
implementaties ervan
best1-62
best1-63
Download