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ën/concepten uit OS, incl. proces
End User Programmer Application Programs Utilities Operating- System 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ënt 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ëntie 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ëntie 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ëteit 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ënt 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: OS) subroutine bibliotheek van device drivers (1e primitieve
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
Time (a) Uniprogramming Program A Program B Combined A B Time A B (b) Multiiprogramming with two programs Program A Program B Program C Combined A B Time C A B C (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