1CSNW1 – week 7 Inleiding Operating Systems Waarom een OS? Op een ‘kale’ computer + kan je alles zelf doen - moet je alles zelf doen Bijvoorbeeld: aansturing van specifieke hardware beheer (disk, geheugen cpu) (grafische) user inteface Historie Nul generatie: Eerste generatie: Tweede generatie: Derde generatie: Vierde generatie: - hand codering (Operator) - Jobs - Batch processing systems - Multiprocessing - Device independence - Timesharing (interactive) - Real-time - General-purpose systems - Multimode systems - Networking / Distributed processing - Menu/graphic driven - Virtual machines (1940) (1950) (1960) (1965-1975) (1975- …..) Soorten OS (naar eigenschappen) Single user / single tasking Single user / multi tasking Multi user / multi tasking Real-time (multi tasking) (CP/M, DOS) (Windows) (UNIX) (RTOS) Soorten OS (naar gebruik) Desk top (tekstverwerking, spreadsheet, database) Workstation (ontwerpsysteem) Server (bestanden, webpagina’s, database) Proces besturing (fabrieken) Embedded (elektronische apparaten) Taken van het OS Systeem initialisatie (Boot, SysInit, etc.) Bestandsbeheer (file management) Geheugenbeheer (memory management) CPU-beheer (process management) Communicatie en synchronisatie Nomenclatuur Multitasking : meerdere processen actief op één processor (pseudo parallel). Process : programma in uitvoering Thread : parallel uit te voeren code van een process Kernel : de kern van het OS. Device driver : besturingssoftware voor de I/O. Scheduler : verzorgt de volgorde waarin de processes/threads processortijd krijgen. Dispatcher : geeft de CPU aan het process Context : alles wat tot het process behoort. Mogelijke opbouw process process process User mode System call Kernel mode KERNEL Hardware Abstraction Layer (HAL) hardware I/O manager Device drivers Kernel met device drivers Application Programmers Interface (API) Application Binary Interface (ABI) Applicatie API ABI Besturingssysteem POSIX / Win32 System call (interface) Bevoorrechte instructies De CPU kent t.b.v. OS meestal minimaal twee toestanden Gebruikers mode Supervisor mode Een aantal (bevoorrechte) instructies zijn alleen in supervisor mode te gebruiken Met de system call roep je het OS aan en wordt naar supervisor mode geschakeld. Opbouw van het O.S. Monolithisch Gelaagd Modulair (spaghetti) (lasagne) (ravioli) Monolithic Application Application User mode Kernel mode System services (API) Hardware Layered Application Application User mode Kernel mode System services (API) File system Memory and I/O device management Processor scheduling Hardware Client/server (Modulair) Client application User mode Memory server Process server Network server Fileserver Kernel mode Microkernel HAL & device drivers Hardware Display server Proces Een proces is een unieke uitvoering van een programma (incarnatie). Een proces heeft zijn eigen context: Registers; Memory; Proces administratie t.b.v. OS. Geheugenmodel van een process Thread Thread = Lightweight Process Het deelt geheugenruimte met andere threads van het process Het is parallel (simultaan) uitgevoerde code van een programma. Procestoestanden Running (current) het proces heeft de processor Ready to Run (active) het proces wacht op de processor Waiting (suspended) het proces wordt opgehouden (door I/O) Toestandsdiagram Run context switch Suspended Ready scheduler Wie krijgt de CPU? Co-operative scheduling Process loopt door totdat het klaar is Gevaar van een eindeloze lus => systeem hangt Bijvoorbeeld :Windows 98 Pre-emptive scheduling Onderbreekbaar doormiddel van prioriteiten Tijdverdeling (time-slicing). Voordeel : een fout proces kan niet het hele systeem “ophangen” Bijvoorbeeld : Windows NT Hoe verdeel je de processortijd? Real-time Klok Vooraf ingestelde teller die het systeem interrumpeert (bijv. elke 10 msec) Bijhouden van de tijd, datum etc. Communicatie en synchronisatie Aanroepen van de scheduler Administratieve taken Opdrachten Bestudeer hfdst. 13.1 t/m 13.7.1 Maak opgaven 13.1, 13.2, 13.7 Maak proeftentamen