in1671 - Operating System Concepten Doel van een Operating System Interrupts 3-Lagen model spooling (Simultaneous Peripheral Operation On Line)



Vergelijkbare documenten
in Operating System Concepten

IN1805 I - Operating System Concepten

Belangrijkste ideeën/concepten uit OS, incl. proces

Erik Poll Martijn Warnier.

Les 11: systeemarchitectuur virtuele machines

A2: Bedrijfssystemen. A2 en PC. Boek. Voorkennis

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??

Tim Mallezie Architectuur van besturingssystemen: Vraag A2.

slides3.pdf April 15,

Waarmaken van Leibniz s droom

IN1805 I Operating System Concepten

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?

ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen

Een.NET-besturingssysteemtoolkit. Discovering Cosmos. Sijmen J. Mulder

CPU scheduling : introductie

Machinevirtualisatie. Raphael kena Poss Universiteit van Amsterdam. Besturingsystemen

Software hoofdstuk Wat is de functie van een besturingssysteem? 2. Welke hoofdtaken heeft het besturingssysteem?

Zelftest Informatica-terminologie

Virtualisatie. en KVM. Oscar Buse 14 februari 2017 NLUG

Zelftest Java concepten

Virtueel Geheugen en demand paging (1)

Debugging in embedded en native systemen met GDB

slides7.pdf 23 nov

Computerarchitectuur en netwerken. Operating System structuur. Files

SBO Nilda Pinto BASISKENNIS BESTURINGSSYTEMEN (MBI 1) PERIODE MATERIAAL BOEK SOFTWARE VOOR ICT SUPPORT 2 EN 3 (HANS VAN RHEENEN)

slides2.pdf April 12,

Computerarchitectuur en netwerken Toets 1 4 okt

Arjen Glas Stage: Viaict. Opdracht virtualisatie I44

Het besturingssysteem of operating system, vaak afgekort tot OS is verantwoordelijk voor de communicatie van de software met de hardware.

Hoofdstuk 3. Besturingssystemen

6,7. Werkstuk door een scholier 2286 woorden 24 januari keer beoordeeld. Informatica. Algemeen

Computerarchitectuur en netwerken. Memory management Assembler programmering

Uitwerking Tentamen Operating Systems Maandag 15 juni 2015 P1 P2 P3 P4 P5 P1 P3 P5 P4 P2 P1 P3 P5 P3. Opgave 1

Het begrip 'Proces' Proces-toestand

Besturingssystemen Opdracht 1

operating system beveiliging

Geheugen en Adressering. Binding. Binding (2) Logische en Fysieke adresruimten. relocatie register. Dynamic loading

Ictivity Een vreemde eend in de bijt

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC

1=2720/2725 Operating System Concepten

High Performance Computing

Voltijdse dagopleiding netwerkbeheerder

Technische Specificaties nieuwe Unix Applikaties

High Availability & Disaster Recovery

Computerarchitectuur en netwerken. Memory management Assembler programmering

Wat is JAVA? Peter van Rijn

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Software Mobiliteit. UAMS - 6 maart Theo D'Hondt Lab voor Pogrammeerkunde Vrije Universiteit Brussel

VMware ThinApp. Application Virtualization Platform that enables complex software to be delivered as self-contained EXE files

Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen

Flex_Rooster WERKBOEK. INTRODUCTIE iseries. Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen.

High Performance Computing

Interactief, real time security management

Computerarchitectuur en Netwerken. Computerarchitectuur

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

SERVICE LEVEL AGREEMENT SERVICE LEVEL AGREEMENT ADDENDUM VIRTUALISATIE VERSIE

Hoofdstuk 2. - is verantwoordelijk voor de communicatie van de software met de hardware.

1.2 Belangrijke besturingssystemen

Van dvd naar webserver. Marcel Nijenhof 18 Juli

Cloud Computing. Bart van Dijk

DB architectuur.

Inleiding Practicum Operating Systems

Windows XP Migratie opties. Bart van Dijk

Java virtuele machine JVM

Tim Mallezie Architectuur van besturingssystemen: Vraag A4.

Hyper-V vs ESX in het datacenter

Welkom bij IT-Workz. Etten-Leur, 16 november Altijd en overal werken en leren. Applicatie en Desktop Delivery met Quest vworkspace

Praktijk opdrachten VMware

Viktor van den Berg. Xpert Training Group VMware Authorized Training Center Citrix Authorized Learning Center Microsoft CPLS Eigen datacenter

Inleiding microcontrollers. Week 1 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: , Appendix A.

Digitale en analoge technieken

Unix Console Gebruik

Virtualization. Universiteit Leiden. Bij ons leer je de wereld kennen

De Arduino-microcontroller in de motorvoertuigentechniek (4)

1 Client/Server. 2 Geschiedenis. 3 Toekomst

EmSE presentatie. Starten met de ATtiny2313: Een RGB powerled driver Kees Moerman, 13 juli 2010

TI-2720 Operating System Concepten. 6 november 2012, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen

HET BESTURINGSSYSTEEM

Hoe zet u virtualisatie slim in bij forensische onderzoeksomgevingen?

Voltijdse dagopleiding PC technicus

7,3. Samenvatting door een scholier 1961 woorden 16 januari keer beoordeeld. Informatica Informatica actief

Programmeren in C ++ met wxwidgets les 5

TI-2720 Operating System Concepten. 21 januari 2013, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen

Stoomboot & de toekomst

Inleiding Practicum Operating Systems

Windows Basics. yvan vander sanden. 22 februari 2015

Virtualization. Universiteit Leiden. Bij ons leer je de wereld kennen

De computer als processor

Ubuntu Release Party XTG 11/23/12 1

Van Small Business Server naar Cloud Small Business Services. Uw vertrouwde Small Business Server in de cloud

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4)

Virtualisatie met SAN 12/10/2010

Module I - Informatica

studievaardigheden studentassistent: Alice de Vries werkcollege / practicum

Handleiding installatie en gebruik. Ahsay OBM. Windows server Apple OS X Linux en UNIX-varianten

Beleef het nieuwe Klantverwijssysteem

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

6 Besturingssystemen. Applicatie Applicatie Applicatie. Operating System. Hardware 1 WAT IS EEN OPERATING SYSTEM?

Albert-Jan de Croes & Stefan Willemink V4C Docent: Mevrouw van Uden

Transcriptie:

in1671 - Operating System Concepten Doel van een Operating System drs J.W.J. Heijnsdijk Faculteit EWI, kamer 09.280 (Mekelweg 4) tel. 85804 email: Heijnsdijk@ewi.tudelft.nl Wat is een Operating System? Een Operating System is die software die het mogelijk maakt op een eenvoudige en efficiente manier programma s uit te voeren op een computer Twee belangrijkste Doelstellingen: Makkelijkere (mooiere) machine bieden efficient gebruik van de machine Vaak strijdig 2005 1-1 2005 1-2 3-Lagen model gebruikers Toepassingen OS opm: 1. Grens tussen toepassingen en OS niet scherp, b.v. plaats van systeemprogramma's. 2. Ontwikkelingen op gebied van en OS beïnvloeden elkaar 3. De kernel van een OS is dat deel dat permanent in het (beschermde) geheugen aanwezig is 2005 1-3 Interrupts Interrupts Onderbreken processing Gegenereerd door de Is interface van naar kernel Traps (Soft Interrupts, exceptions) Onderbreken processing Veroorzaakt door de software (b.v delen door 0, of System Call) Voor iedere interrupt of trap bestaat een afhandelingsroutine, Wordt vaak gevonden d.m.v. interrupt vector Traps: synchroon, Interrupts: asychroon 2005 1-4 Enkele termen: Batch verwerking spooling (Simultaneous Peripheral Operation On Line) Batch processing letterlijk: partij-gewijs of groepsgewijs : Gebruikers leveren programma s aan in de vorm van jobs Opdrachten, b.v. compileren en uitvoeren worden gegeven door middel van een Job-Control taal (JCL) een job wordt in zijn geheel verwerkt, geen interactie met de gebruikers. Er wordt gebruik gemaakt van spooling Jobs wachten aanvankelijk in de job pool Job scheduling bepaalt welke job in executie te nemen. 2005 1-5 job y card input van job x print output van job z job y leest zijn card input van disk en schrijft print output naar disk 2005 1-6 1

Enkele termen: Multiprogrammering en Timesharing Multiprogrammering: Het simultaan uitvoeren van verschillende programma s. Geeft betere benutting van CPU, want als een programma moet wachten op b.v I/O, kan een ander de CPU gebruiken. CPU-scheduling bepaalt welk programma de CPU krijgt Time Sharing: vorm van multiprogrammering, met speciale kenmerken: Het is interactief: gebruikers hebben tijdens executie contact met hun programma s CPU gaat beurtelings naar verschillende programma s (ook als er geen geen sprake is van een wachten op b.v I/O) Timer interrupt nodig om programma te onderbreken 2005 1-7 Dual mode operation (1) Doel: bescherming processor kent 2 soorten instructies: privileged non-privileged processor kan in 2 verschillende modes werken user mode monitor mode user programma's draaien in user mode kernel draait in monitor mode 2005 1-8 Dual mode operation (2) Componenten (1) In monitor mode privileged en non-privileged instructies uit te voeren In user mode alleen non-privileged instructies uit te voeren Bij interrupt of trap (soft interrupt, b.v. System Call): processor switcht naar monitor mode code van de afhandelingsroutine wordt uitgevoerd bij terugkeer naar geinterrumpeerd proces, gaat processor terug naar user mode. 1. Proces Management Definitie: Een proces is de uitvoering van een programma Zorgt voor creëren, verwijderen, onderbreken, hervatten van processen Problemen: synchronisatie en deadlock 2. Main memory management Zorgt voor beheer van main memory (primary storage) 2005 1-9 2005 1-10 Componenten (2) Componenten (3) 3. File-SystemManagement definitie: een file is een verzameling bij elkaar horende informatie Zorgt voor creeren en verwijderen van files Verantwoordelijk voor de directories 5. I/O management Maakt gevarieerde eenvoudig bruikbaar (verbergt details van specifieke apparatuur) Bevat o.a. caching en device drivers 4. Secondary storage management (mass storage management) Zorgt voor beheer van diskruimte snelheid bepalend voor performance van het hele systeem 2005 1-11 2005 1-12 2

Caching Device drivers Geheugen kent hierarchie, b.v. Registers Main memory Disk Tape Hoger in de hierarchie betekent: sneller, kleiner, duurder Caching houdt in: Als data normaal op niveau N1, dan een deel tijdelijk op niveau N2 te plaatsen (N2 > N1). Dit verhoogt de snelheid. Cache management bepaalt grootte en inhoud van de cache 2005 1-13 Device drivers zijn onderdeel van de kernel Device driver per device controller Kent details voor specifieke devices, B.v. printer van bepaald merk en type Stuurt controller aan, en handelt interrupt af Biedt een uniform interface naar de rest van het OS 2005 1-14 Protectie en Security Bijzondere systemen (1) 6. Protectie systeem Zorgt voor bescherming. o.a. memory, CPU, data 2005 1-15 1. Parallelle systemen (multiprocessor systemen) tightly coupled, delen (sharen) bus, klok en vaak geheugen voordelen: verhogen throughput ( niet lineair) delen van resources (b.v. behuizing, power supply) verhogen van de beschikbaarheid (gracefull degradation, fault tolerant) onderscheid: symmetrische multiprocessing asymmetrische multiprocessing 2005 1-16 Bijzondere systemen (2) Bijzondere systemen (3) 2. Gedistribueerde systemen fysiek gescheiden (delen geen klok of geheugen) communicatie door middel van netwerken distributie transparant voor de gebruiker voordelen: in principe dezelfde als bij parallelle systemen, nu ook communicatie voor gebruikers, b.v. E-mail Complex vanwege: heterogene systemen synchronisatieproblemen 2005 1-17 3. Real time systemen strenge eisen m.b.t. de responstijd te gebruiken voor besturing, b.v. van industriële processen onderscheid: hard real time systemen niet te realiseren in general purpose systeem maakt geen gebruik van de meest geavanceerde onderdelen van een OS soft real time systemen te realiseren in general purpose systeem, door real time taak prioriteit te geven. 2005 1-18 3

Bijzondere systemen (4) Trend? 4. Embedded Systemen Meestal real-time systemen met strikte eisen aan responstijd Ingebouwd in allerlei apparatuur, b.v. auto s, mobieltjes, etc. Komen in zeer grote aantallen voor Nauwelijks of geen user interface 5. Multimedia Systemen Multimedia datastromen (audio en video) moeten volgens het juiste tijdschema worden weergegeven Traditioneel: gecentraliseerd; Mainframes, eventueel te gebruiken m.b.v. telefoonlijnen en terminals Nu: overvloed aan PC s en kleinere machines, vaak gekoppeld aan snelle netwerken. Maken gebruik van services op basis van Client/server model, of Peer-to-peer model Veel principes op gebied van OS, zijn geformuleerd in de mainframe periode, maar zijn nog steeds geldig. 2005 1-19 2005 1-20 OS Services (1) OS Services (2) Direct voor de gebruiker User interface Command Line Interface (CLI) Graphical User Interface (GUI), b.v. Windows Programma uitvoering Laden, uitvoeren, beëindigen I/O operaties File systeem manipulatie Communicatie Tussen processen op dezelfde machine of op verschillende machines Foutdetectie Ten behoeve van het systeem Resource toekenning (allocation) Verschillende processen kunnen om dezelfde resources vragen, toekenning moet zodanig gebeuren dat processen niet nodeloos moeten wachten, of dat resources onbenut blijven Accounting, doorberekening van de kosten aan individuele gebruikers Protectie Beschermt resources tegen ongeauthoriseerde toegang 2005 1-21 2005 1-22 Interfaces (1) program mers interface Hardware Interface System Calls Device Control Processen Kernel respons Interrupt user interface CLI Command Line Int. De Command Interpreter is in veel systemen een proces, b.v. in UNIX: shell 2005 1-23 GUI Graphical User Int. Interfaces (2) Command Line Interface (CLI) soms onderdeel van de kernel, soms (systeem) proces voorbeeld: unix shell, MSDOS shell functie: leest commando regel, b.v. cd../programs1 herkent commandonaam voert commando zelf uit, of zoekt programma (met die naam) en start proces, geeft parameters door aan het proces voordeel: eenvoudig nieuwe commando s toe te voegen 2005 1-24 4

Interfaces (3) Interfaces (4) Graphical User Interface (GUI) Gebruikt monitor, toetsenbord, muis Maakt gebruik van windows, menus, iconen Voorbeelden: MSWindows UNIX met X11 Linux met KDE 2005 1-25 System Call Is interface tussen proces en kernel vaak assembly language instructie onzichtbaar voor meeste programmeurs (wordt vaak aangeroepen d.m.v een libraryfunctie) verschillende mogelijkheden voor doorgeven van parameters aan OS: via registers via data block en een register dat wijst naar het data block via stack, door middel van push en pop 2005 1-26 Interfaces(5) Interfaces (6) Een Application Programmers Interface (API) is de verzameling functies die een programmeur kan gebruiken om de diensten van een OS aan te roepen. Functies hebben vaak één op één relatie met System Calls, maar zijn eenvoudiger in het gebruik System calls in 5 groepen 1. Proces beheer 2. File manipulatie 3. Device manipulatie 4. Systeem-informatie uitwisseling 5. Communicatie 2 en 3 vaak gecombineerd (uniforme benadering van files en devices) 2005 1-27 2005 1-28 Interfaces (7) Gelaagde Opbouw Systeemprogramma's (en system utilities) Leveren de omgeving waarin makkelijk programma s te ontwikkelen en uit te voeren. voorbeelden: file management programma s assemblers, compilers Command Line Interpreter Beeld wat een gebruiker heeft van een systeem wordt voor een belangrijk deel bepaald door het User Interface en de systeem programma s. 2005 1-29 OS en kernel worden vaak opgebouwd uit lagen Iedere laag gebruikt alleen functies uit de direct onderliggende laag voordelen: eenvoudiger debugging verificatie problemen: keuze en volgorde van de lagen overhead Veel systemen echter historisch bepaald 2005 1-30 5

Virtuele Machines(1) Lagenstructuur maakt Virtuele Machines mogelijk Virtuele Machine = machine gerealiseerd door software Verschillende niveaus: Programma ziet System calls en Programma System Calls Machine Instructies Kernel Machine Instructies Hardware Kernel ziet alleen machine instructies 2005 1-31 Virtuele Machines (2) Klassieke Virtuele Machine (IBM: VM, VM/370) gebruikt virtualiserende Kernel. Virtualiserende kernel (VK) biedt aan ieder proces het interface van een kale machine (de kale ). processor en geheugen worden gedeeld kaartlezers en printers via spooling minidisks i.p.v. echte disks Ieder proces op de VK een OS Binnen ieder OS weer processen te starten Deze Virtuele Machine nuttig voor: testenvan OS'en draaien van verschillende OS'en binnen 1 machine 2005 1-32 Virtuele Machines (2A) Klassieke Virtuele machine biedt naar boven en interface dat eruit ziet als de oorspronkelijke P1 P2 Pn P1 P3 Q1 Q2 Q3 R1 tijd Virtual User en Monitor mode in een VM Proces 1 OS1 VM1 Virt. Kernel CPU System call priv1 Kernel normale kernel OS1 OS2 OS3 VM1 VM2 VM3 VirtualiserendeKernel Virtualiserende kernel 2005 1-33 priv2 To_user_mode priv3 ERROR (virtual) monitor mode aangegeven door 2005 VM1 is normaal in virtual usermode. VM1 komt in virtual monitor mode 1-34 als een System Call wordt gegeven; echte CPU blijft in user mode. Virtuele Machines (3) Virtuele Machines (3A) Java Virtual Machine Andere vormen van virtuele machines op een hoger niveau Java Virtuele Machine (JVM) biedt machine die Java bytecode verwerkt. JVM vaak op het niveau van een toepassingsprogramma, b.v. Netscape) Software die OS en machine-instructies van andere processortypen ondersteunen. Voorbeeld: MS-DOS programma s op Sun/Solaris (wabi) Java is een object-oriented programmeertaal wordt gecompileerd naar bytecode bytecode wordt geïnterpreteerd door Java Virtual Machine (JVM) JVM vaak geïmplementeerd als programma zelfstandig,, of onderdeel van browser, b.v. Netscape of Microsoft Explorer Java op ieder platform te draaien waarvoor een JVM bestaat. 2005 1-35 2005 1-36 6

Java source Virtuele Machines (3B) Java Virtual Machine Java Compiler Java Bytecode Netwerk Bytecode Loader Bytecode Verifier Interpreter Ontwerp en Implementatie (1) Scheiding van Policy en Mechanisme Policy heeft betrekking op Wie of Wat Mechanisme zegt Hoe voorbeeld: microkernel systeem Programmeertaal oude systemen vaak in assembler tegenwoordig: hogere talen, vaak: C voordelen: sneller te schrijven, beter te begrijpen, beter te porten nadeel: performance verlies?? 2005 1-37 2005 1-38 Ontwerp en Implementatie (2) Systeem generatie (Sysgen) Het aanpassen van het OS aan een specifieke machine, Verschillende werkwijzen voor verschillende systemen: volledige compilatie selectie uit geprecompileerde libraries alleen aanpassen van tabellen, dynamische configuratie Bootstrap OS wordt geladen door een bootstrap programma 2005 1-39 7