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