Operating System Overview (Hfst 2) • Wat is een OS? • Wat was een OS? Evolutie van OS.
• OS als virtuele machine • OS als beheerder van hulpbronnen (resources)
• Belangrijkste idee¨ en/concepten uit OS, incl. proces
End User Programmer
Application Programs
Utilities
OperatingSystem Designer
Operating System
Computer Hardware
Figure 2.1 Layers and Views of a Computer System
Wat is/doet een OS ? Twee gezichtspunten:
• Een gebruiker ziet OS via een GUI/Desktop, voor beheren files, opstarten applicaties – meerdere tegelijk – , aansturen randapparatuur en, in UNIX/Linux world, via een shell.
• Een programmeur ziet OS als een library (API) van systems calls, voor beheren files, opstarten processen, aansturen randapparatuur.
Wat is een Operating System ? Andere gezichtpunten: 1. Virtuele machine (Abstractie!) een user/computer interface (van system calls) maakt computer makkelijker te gebruiken: • abstractie van low-level details • standaard interface - portability 2. Resource beheerder gecontroleerd en effici¨ ent beheer van gedeelde resources 3. een programma dat zelf resources verbruikt
OS als Interface OS biedt een API van system calls, dwz interface dat abstraheert van onderliggende details
Bijv. POSIX, Win32API
Programma’s gebouwd mbv programmeertaal + deze API
Maar: de resources die deze interface verbergt worden gedeeld
Nadelen van Abstracties Verlies van
• expressiviteit
• effici¨ entie
NB: de standaard bezwaren tegen elke vorm van abstractie Maar: voordelen van abstractie winnen uiteindelijk!
OS versus Applicaties/Utilities Over grens van OS valt te twisten. Bijvoorbeeld
• UNIX beschouwt X-Windows GUI als aparte utility, Windows Win32API omvat de GUI
• webbrowser ?
Doel van OS
1. handigheid in gebruik
2. effici¨ entie
3. mogelijkheid tot evolutie, in reactie op • nieuwe hardware • nieuwe services • repareren van fouten
(oftewel: goede abstracties)
Services Verzorgd door OS (Calls) • programma executie • toegang tot I/O devices • gecontroleerde toegang tot files • gecontroleerde toegang tot het systeem • error detection en response • accounting
Resources Beheerd door OS • processoren • geheugen • timers • disks • terminals • tape drives • network interfaces • printers, bandbreedte, enz
Wat Maakt OS Ingewikkeld? • OS is groot programma Windows XP: 40M LOC, Windows 50M , OS X 80M , FEDORA 200 M (kernel 12 M) Contrast: kernel Minix3 6K! • concurrency & asynchrony Bijv. I/O apparaten parallel met CPU en onderbreken CPU • Resources gedeeld door verschillende partijen • ...
Wat maakt OS’s Interessant? • Zien hoe goede concepten oplossing bieden voor theoretische en/of practische problemen Bijv. proces, file systeem, . . . • Vari¨ eteit aan uitdagende problemen die opgelost moeten worden • Voortdurende snelle veranderingen, • Actualiteit (bijv Android, iPhoneOS, Windows8) • Heetgebakerde discussies tussen Linux/Apple/Windows gebruikers
• ...
Belangrijkste Resultaten • Processen Proces = programma in executie en bijbehorende concepten (bijv. mutual exclusion) • Memory management (virtual memory) • Information protection and security • Scheduling and resource management • Systeem structuur om complexiteit te beheersen
Waarom is Studie OS Nuttig/Belangrijk? • algemene “opvoeding” van informaticus • fundament van elk programma • belangrijke concepten in informatica ontstonden in OS’s bijv. proces, mutual exclusion, deadlock
• je leert werken met (redeneren over) deze belangrijke concepten • case study in opbouw van extreem ingewikkeld stuk software
Evolutie van Operating Systems Gestuurd door: • Relatieve kosten : – Vroeger: hardware duur, menskracht goedkoop – Nu: hardware goedkoop, menskracht duur • Altijd: Verschillen in snelheid tussen CPU en I/O • Mogelijkheden hardware • Wensen van gebruikers Mogelijkheden en kosten van networking steeds belangrijker Altijd: effici¨ ent gebruik van schaarse middelen
Evolutie van OS’s - jaren 40/50
Geen OS Enkele gebruiker, interactief Interface is de kale hardware
Probleem: code om I/O devices aan te sturen Oplossing: subroutine bibliotheek van device drivers (1e primitieve OS)
Evolutie van OS’s - jaren 60 Probleem: dure machine idle tijdens setup Oplossing:
Batch monitor
Monitor programma haalt jobs van disk Niet meer interactief, debugging off-line • memory protection (voor resident monitor) • privileged instructions (voor monitor) • timer • interrupts
Evolutie van OS’s - jaren 60 Probleem: CPU sneller dan I/O dure CPU idle tijdens I/O
Multi-programming (oftewel Multi-tasking) Draai meerdere jobs, van meerdere users, tegelijk ! • protection ! Memory protection in hardware. • memory mananagement • OS zelf begint flink wat resources te gebruiken
Run
Wait
Run
Wait
Time (a) Uniprogramming
Program A
Run
Wait
Run
Wait
Program B
Wait Run
Wait
Run
Wait
Combined
Run Run A B
Wait
Run Run A B
Wait
Time (b) Multiiprogramming with two programs
Program A
Run
Program B
Wait Run
Program C
Wait
Combined
Wait
Run
Wait
Run
Run Run Run A B C
Wait
Run
Wait
Wait
Wait
Run
Wait
Run Run Run A B C
Wait
Time (c) Multiiprogramming with three programs
Figure 2.5
Multiprogramming Example
Evolutie van OS’s - jaren 70 Computers worden goedkoper, duur personeel moet wachten op uitvoer batch jobs
Timesharing • pre-emptive scheduling • file systems • OS wordt erg ingewikkeld programma
Bijv. CTSS, MULTICS, THE, UNIX
Some OS Heroes from the Old Days: Corbato, Dijkstra, Thompson, Ritchie
Evolutie van OS’s - jaren 70 Timeshared systeem met beperkte resources, altijd schaarste. OS moet alles eerlijk verdelen: • prioritized scheduling, • disk quota, • CPU quota, • ...
Evolutie van OS’s - jaren 80 Computers worden goedkoop: Ipv multi-user mainframe, PC’s voor individuele gebruiker maar met minimale hardware. OS terug naar een subroutine library voorbeeld OS: MS-DOS
Evolutie van OS’s - jaren 90 • Goedkope computers worden krachtiger - graphics mogelijk • Netwerken! OS wordt weer ingewikkeld: Herintroductie van • multi-tasking • memory management • controlled access to files • ... Bijv: OS/2, Windows NT, Unix/Linux
Toekomst van OS’s • Multicore • “The Internet of Things”
• Virtualisatie • Energie • Security • Cloud computing • . . . ???
Deze Week • LEES – hoofdstuk 1 (muv. appendix 1A) – hoofdstuk 2 Stel eventuele vragen hierover op volgende college! • 19 april: Nog geen werkcollege!
Komende Weken • 22 mei: Processen & Threads; 26 mei: Eerste werkcollege • 29 april & 3 mei: Geen college/werkcollege