720 likes | 851 Views
Computersystemen 2 (TIRCCMS02 - Operating systems) L.V.de.Zeeuw@HRO.NL. 1 Inleiding. Voorwoord (1/3). Een Operating System heeft vier belangrijke onderdelen: Beheer van processen Invoer/uitvoer Geheugenbeheer (TIRCMS03) Filebeheer (TIRCMS03). Voorwoord (1/2).
E N D
Computersystemen 2(TIRCCMS02 - Operating systems)L.V.de.Zeeuw@HRO.NL
Voorwoord (1/3) Een Operating System heeft vier belangrijke onderdelen: • Beheer van processen • Invoer/uitvoer • Geheugenbeheer (TIRCMS03) • Filebeheer (TIRCMS03) Computersystemen 2
Voorwoord (1/2) Lijst met Operating Systems Zie: http://en.wikipedia.org/wiki/List_of_operating_systems Computersystemen 2
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. Computersystemen 2
1Inleiding (1/1) Computersystemen 2
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) Computersystemen 2
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/floppy.htm Computersystemen 2
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 Computersystemen 2
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. Computersystemen 2
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 Computersystemen 2
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. Computersystemen 2
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 Computersystemen 2
1.2Geschiedenis van operating systems (2/2) • Ada Lovelace (1815-1852) 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. Computersystemen 2
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. Computersystemen 2
Enkele relays Vroege vacuüm buis ENIAC Plugboard 1.2.11e generatie (1945-1955): vacuumbuizen en schakelpanelen (2/2) Computersystemen 2
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 Computersystemen 2
Transistor Radio Transistors Ponskaart 1.2.22e generatie (1955-1965): transistoren en batchsystemen de (2/4) Ponskaart en Tape Computersystemen 2
1.2.22e generatie (1955-1965): transistoren en batchsystemen de (3/4) Computersystemen 2
1.2.22e generatie (1955-1965): transistoren en batchsystemen de (4/4) FMS: Fortran Monitor System Computersystemen 2
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) Computersystemen 2
1.2.33e generatie (1965-1980): IC’s en multiprogrammering (2/6) IBM 1401 IBM 7094 Computersystemen 2
1.2.33e generatie (1965-1980): IC’s en multiprogrammering (3/6) IBM OS/360 Computersystemen 2
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. Computersystemen 2
1.2.33e generatie (1965-1980): IC’s en multiprogrammering (5/6) PDP/7 PDP/11 Computersystemen 2
1.2.33e generatie (1965-1980): IC’s en multiprogrammering (6/6) Computersystemen 2
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 Computersystemen 2
1.2.44e generatie (1980-heden): Personal Computers (2/2) IBM-PC - 1981 Computersystemen 2
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 Computersystemen 2
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 Computersystemen 2
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. Computersystemen 2
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. Computersystemen 2
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. Computersystemen 2
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 Computersystemen 2
1.3.2Files (1/7) Systemcalls zorgen voor het • creëren • openen • schrijven • lezen • sluiten van files. Computersystemen 2
1.3.2Files (2/7) Begrippen • Directory • Root directory • Padnaam • Actuele (werk) directory Computersystemen 2
1.3.2Files (3/7) Computersystemen 2
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 Computersystemen 2
1.3.2Files (5/7) Computersystemen 2
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. Computersystemen 2
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. Computersystemen 2
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. Computersystemen 2
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 Computersystemen 2
1.4System calls (1/3) Computersystemen 2
1.4System calls (2/3) Computersystemen 2
1.4System calls (3/3) Computersystemen 2
1.4.1System calls voor procesbeheer (1/2) Computersystemen 2
1.4.1System calls voor procesbeheer (2/2) Computersystemen 2
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 Computersystemen 2
1.4.2System calls voor signalen (2/2) Computersystemen 2