Computerarchitectuur en netwerken 3 Operating System structuur Files Lennart Herlaar 13 september 2017
Inhoud 1 Operating Systems structuur system calls kernel / processen 2 Files storage en directory service links garbage collection disk cache file API gebufferde I/O netwerk filesystemen Lennart Herlaar Computerarchitectuur en netwerken 3 1
Wat is een Operating System? Standaard verzameling software voor een computer Besturing/beheer van de computer Apparatuurbesturing Samenwerking tussen programma s Lennart Herlaar Computerarchitectuur en netwerken 3 2
Wat is een Operating System? Standaard verzameling software voor een computer Besturing/beheer van de computer Apparatuurbesturing Samenwerking tussen programma s Onderdelen o.a: Memory management Scheduling en bescherming File management Netwerkfuncties Allerlei nuttige en handige programma s Operating Systems zijn groot: regels source code (in miljoenen): Windowx XP: 45; Mac OS X 10.4: 86; GNU/Linux: 50-320. Lennart Herlaar Computerarchitectuur en netwerken 3 2
O.S. Interfaces Hoe worden de functies van het O.S. gebruikt? 1 Allerlei functies uit het O.S. kunnen vanuit programma s aangeroepen worden met system calls (= methoden van het O.S.) lezen en schrijven van files timers starten en stoppen van programma s netwerkdiensten Lennart Herlaar Computerarchitectuur en netwerken 3 3
O.S. Interfaces Hoe worden de functies van het O.S. gebruikt? 1 Allerlei functies uit het O.S. kunnen vanuit programma s aangeroepen worden met system calls (= methoden van het O.S.) lezen en schrijven van files timers starten en stoppen van programma s netwerkdiensten 2 Gebruikersinteractie (shell) grafische shell (desktop/iconen) tekstgeorienteerde shell (command line) Shells zijn meestal gewone gebruikersprogramma s Lennart Herlaar Computerarchitectuur en netwerken 3 3
O.S. Interfaces Hoe worden de functies van het O.S. gebruikt? 1 Allerlei functies uit het O.S. kunnen vanuit programma s aangeroepen worden met system calls (= methoden van het O.S.) lezen en schrijven van files timers starten en stoppen van programma s netwerkdiensten 2 Gebruikersinteractie (shell) grafische shell (desktop/iconen) tekstgeorienteerde shell (command line) Shells zijn meestal gewone gebruikersprogramma s 3 Diverse andere programma s Editors, tekenprogramma s, compilers, spelletjes, browser, email... Lennart Herlaar Computerarchitectuur en netwerken 3 3
Abstractie Het O.S. geeft een abstract beeld van: De computer De apparatuur De software componenten Lennart Herlaar Computerarchitectuur en netwerken 3 4
Abstractie Het O.S. geeft een abstract beeld van: De computer De apparatuur De software componenten voorbeelden: abstracte randapparaten (bv printer) virtueel geheugen file systeem samen = virtuele machine Lennart Herlaar Computerarchitectuur en netwerken 3 4
Abstractie Het O.S. geeft een abstract beeld van: De computer De apparatuur De software componenten voorbeelden: abstracte randapparaten (bv printer) virtueel geheugen file systeem samen = virtuele machine Voordelen: Abstracte machines zijn simpeler dan de echte Nieuwe ontwikkelingen makkelijk inpassen Virtualisatie: doe net alsof iets bestaat Uitwisselbaarheid Lennart Herlaar Computerarchitectuur en netwerken 3 4
Besturing randapparatuur device driver = de software voor het besturen van een apparaat. Meestal in system mode Vanuit het O.S. ontvangt de driver opdrachten (read, write, besturing) De driver bestuurt de interface met INP, OUT, memory-mapped I/O of DMA Interrupt routines signaleren dat een operatie klaar is, of een volgend deel gestart kan worden. Gevolg: asynchrone verwerking in O.S. Lennart Herlaar Computerarchitectuur en netwerken 3 5
Asynchrone verwerking 2 opdracht 1 3 wacht 4 driver aanvrager A stack wacht 8 6 5 interrupt stack programma B 7 ga door programma driver programma A B wacht terwijl stack A gebruikt wordt interrupt terwijl stack B gebruikt wordt het is nodig om te switchen tussen stack A en stack B. het is beter om per driver/programma een aparte stack te hebben O.S. heeft redelijk ingewikkelde administratie nodig Lennart Herlaar Computerarchitectuur en netwerken 3 6
Concurrency Concurrency = het (min of meer) gelijktijdig uitvoeren van verschillende activiteiten op de computer Bij een multiprocessor/multicore systeem: echte concurrency Anders: virtuele concurrency Lennart Herlaar Computerarchitectuur en netwerken 3 7
Concurrency Concurrency = het (min of meer) gelijktijdig uitvoeren van verschillende activiteiten op de computer Bij een multiprocessor/multicore systeem: echte concurrency Anders: virtuele concurrency In O.S. virtuele concurrency door interrupts O.S. levert op gebruikersniveau concurrency door processen Proces = onafhankelijke executie (draaien) van een programma Lennart Herlaar Computerarchitectuur en netwerken 3 7
Kenmerken van een proces eigen stuk (virtueel) geheugen eigen resources (bv netwerkverbinding) eigen machineregisters CPU toewijzing protectie tegen andere = eigen virtuele machine registers CPU geheugen files VM Lennart Herlaar Computerarchitectuur en netwerken 3 8
Inhoud 1 Operating Systems structuur system calls = kernel / processen 2 Files storage en directory service links garbage collection disk cache file API gebufferde I/O netwerk filesystemen Lennart Herlaar Computerarchitectuur en netwerken 3 9
Aanroepen van O.S. diensten Procedure/functie (methode)-aanroep in het O.S. Net als iedere ander methode gebeurt in user mode Nadeel: geen speciale privileges of bescherming Voordeel: snel, simpel Lennart Herlaar Computerarchitectuur en netwerken 3 10
Aanroepen van O.S. diensten Procedure/functie (methode)-aanroep in het O.S. Net als iedere ander methode gebeurt in user mode Nadeel: geen speciale privileges of bescherming Voordeel: snel, simpel Speciale system call instructie push param1 push param2... move operatiecode, R1 TRAP system mode operatie code = nummer van de gewenste opdracht bescherming tegen programmafouten ook langzamer Lennart Herlaar Computerarchitectuur en netwerken 3 10
TRAP interrupt routine switch (R1): { case 1: /* code voor syscall 1 */ case 2: /* code voor syscall 2 */ etc... default: /* error: verkeerde code */ } keer terug naar het proces (RTI) Iedere syscall controleert de parameters Controle op bevoegdheden Optimale bescherming mogelijk Lennart Herlaar Computerarchitectuur en netwerken 3 11
O.S. kernel Het centrale deel van het O.S. dat in system mode draait wordt vaak kernel genoemd system call interface device drivers process management files etc... Sommige O.S. hebben het hele O.S. in één kernel (Unix) = Macrokernel O.S. Nadeel: moeilijk aan te passen (bijv. nieuwe device driver) Moeilijk te debuggen Door grotere gecompliceerdheid vaak fouten erin. Lennart Herlaar Computerarchitectuur en netwerken 3 12
Microkernel O.S. Bij een microkernel O.S. De kernel bevat alleen de minimaal benodigde onderdelen Alle andere functies worden in aparte processen uitgevoerd Bijv. filemanagement, netwerk functies Sommige functies kunnen in bibliotheekprocedures opgenomen worden (in de user processen). Microkernel O.S. is flexibeler, maar soms iets langzamer. Voorbeeld: Mach (was de basis van de kernel van Mac OS X) Windows en Linux hebben ook microkernel-achtige eigenschappen Lennart Herlaar Computerarchitectuur en netwerken 3 13
Kernel en processen proces proces user mode module module module user/ system mode kernel hardware system mode Lennart Herlaar Computerarchitectuur en netwerken 3 14
Lagenmodel O.S. user program bibliotheek gebruikers programma s/processen DLL system call interface O.S. file system service process management netwerk services I/O management memory management disk driver terminal driver netwerk driver hardware interfaces Lennart Herlaar Computerarchitectuur en netwerken 3 15
Samenvatting Operating Systems O.S. hebben een gelaagde structuur System calls zijn de toegang tot de diensten van de kernel Een O.S. heeft veel concurrency: interrupts en processen zijn de mechanismen hiervoor Macrokernel en microkernel zijn twee manieren om een O.S. te structureren Lennart Herlaar Computerarchitectuur en netwerken 3 16
File Management Lennart Herlaar Computerarchitectuur en netwerken 3 17
Inhoud 1 Operating Systems structuur system calls kernel / processen 2 Files storage en directory service = links garbage collection disk cache file API gebufferde I/O netwerk filesystemen Lennart Herlaar Computerarchitectuur en netwerken 3 18
File Management 1 File management beheert de data op de schijven: Waar staat de data op de schijf Welke naam behoort bij welke data Organisatie van filenamen in directories (folders, mappen) Permissies voor lezen, schrijven e.d. van de files Gelijktijdige toegang tot files vanuit verschillende processen Bescherming van data tegen ongeoorloofd gebruik Lennart Herlaar Computerarchitectuur en netwerken 3 19
File Management 2 file naam blok 1 blok 2 directory waar? permissies nicolaas: lezen samira: schrijven schijf Lennart Herlaar Computerarchitectuur en netwerken 3 20
File Management 2 file naam blok 1 blok 2 directory waar? permissies nicolaas: lezen samira: schrijven schijf Lennart Herlaar Computerarchitectuur en netwerken 3 20
File Management 3 Storage Service: Beheert de indeling van de schijf Houdt bij welke ruimte in gebruik is en welke vrij Houdt bij waar elke file op de schijf staat Lennart Herlaar Computerarchitectuur en netwerken 3 21
File Management 3 Storage Service: Beheert de indeling van de schijf Houdt bij welke ruimte in gebruik is en welke vrij Houdt bij waar elke file op de schijf staat Directory Service: Houdt namen van files bij in directories Beeldt namen in directories af op Storage service dingen NB. Een directory is ook een (speciaal soort) file (met andere methodes) Lennart Herlaar Computerarchitectuur en netwerken 3 21
File Management 3 Storage Service: Beheert de indeling van de schijf Houdt bij welke ruimte in gebruik is en welke vrij Houdt bij waar elke file op de schijf staat Directory Service: Houdt namen van files bij in directories Beeldt namen in directories af op Storage service dingen NB. Een directory is ook een (speciaal soort) file (met andere methodes) Toegangscontrole: Wie heeft toegang tot een file en wat mag hij/zij er mee doen Vaak min of meer met elkaar verweven. Lennart Herlaar Computerarchitectuur en netwerken 3 21
File Management 4 Vragen: Waar zit de bescherming tegen ongeoorloofd gebruik? Kun je een file benaderen zonder de naam te hebben? Kan een file meer dan één naam hebben? Lennart Herlaar Computerarchitectuur en netwerken 3 22
Geïntegreerd systeem Gesplitst systeem naam attrib block nr 1 block nr 2 schijf naam attrib block nr 1 block nr 2 schijf entry schijf schijf directory directory inodes Lennart Herlaar Computerarchitectuur en netwerken 3 23
Hiërarchisch filesysteem root / # # * A b C # * aa D # * bb cc * * * * dd ee ff * file # directory Lennart Herlaar Computerarchitectuur en netwerken 3 24
Filesysteem met links root / # # * A b C # xx * aa D # * bb cc * yy * * * dd ee ff * file # directory link Lennart Herlaar Computerarchitectuur en netwerken 3 25
Implementatie van links A Directory structuur en Storage structuur gescheiden File wordt geïdentificeerd door de storage structuur in Unix een grote tabel op schijf elke entry in deze tabel staat voor een file bevat (o.a.) de locatie van de file en protecties index in deze tabel is inode Directory entries bevatten de naam en de inode Harde link: dezelfde inode staat in verschillende directory entries Symbolische link: directory entry verwijst naar een andere filenaam naam H/S inode orig H 735 andere H 987 B naam H/S inode andere H 735 sym-link S /A/orig Lennart Herlaar Computerarchitectuur en netwerken 3 26
Inhoud 1 Operating Systems structuur system calls kernel / processen 2 Files storage en directory service links garbage collection = disk cache file API gebufferde I/O netwerk filesystemen Lennart Herlaar Computerarchitectuur en netwerken 3 27
Garbage collection Wanneer kan het O.S. een file weggooien? Als er geen extra links zijn kan de file weggegooid worden wanneer een remove (delete) commando gegeven wordt. Als er extra links zijn dan moet bijgehouden worden hoeveel verwijzingen er zijn (reference count). Bij een delete opdracht wordt de directory verwijzing weggehaald en de reference count afgelaagd Als de reference count 0 is wordt de file echt weggegooid. Maar wat gebeurt er als een ander programma met deze file bezig is? Als er cyclische structuren ontstaan wordt de reference count nooit 0 Lennart Herlaar Computerarchitectuur en netwerken 3 28
Cyclische structuur Reference count telt aantal binnenkomende pijltjes a 1 b 2 1 c 1 d Lennart Herlaar Computerarchitectuur en netwerken 3 29
Weghalen referentie Reference count telt aantal binnenkomende pijltjes b a 1 1 1 c Cycle is onbereikbaar maar wordt niet opgeruimd Dergelijke cycles worden met links niet toegestaan 1 d Lennart Herlaar Computerarchitectuur en netwerken 3 30
Disk cache Disk cache = deel van het fysieke geheugen dat in het O.S. gebruikt wordt om gelezen/te schrijven blokken van de schijf op te slaan. (Let op: tegenwoordig hebben de schijven zelf vaak ook een cache!) Wanneer het nog een keer nodig is dan is het snel beschikbaar Vergelijkbaar met geheugen-cache maar op ander niveau (software) Delayed-write cache makkelijker te implementeren (software) Bij een crash kunnen data verloren gaan! Sommige files liever direct doorschrijven Volgorde kan belangrijk zijn database systemen metadata (bijvoorbeeld: storage structuur) Lennart Herlaar Computerarchitectuur en netwerken 3 31
Disk cache file disk cache lezen schrijven schijf proces O.S In moderne operating systems is het disk cache geïntegreerd met het pagineringssysteem. Lennart Herlaar Computerarchitectuur en netwerken 3 32
Programma interface (API) Unix interface: fileid = open ( filenaam, opties ); opties = manier van openen: lezen, schrijven, nieuwe file aanmaken, e.d. fileid = (klein) nummer. Verschillende andere operaties (lezen, schrijven) gebruiken niet meer de filenaam maar de fileid: result = read (fileid, buffer, aantal_bytes); result = write (fileid, buffer, aantal_bytes); close (fileid); Het O.S. heeft een object over deze open file. De fileid is de index in een array van deze objecten Lennart Herlaar Computerarchitectuur en netwerken 3 33
API 2 0 1 proces A 0 1 proces B open files file positie file positie open files file 1 file 2 Garbage collection gevolgen: Files die geopend zijn door processen moeten nog een extra interne reference count krijgen. Bij een close opdracht in een proces wordt deze reference count afgelaagd Lennart Herlaar Computerarchitectuur en netwerken 3 34
API 3 In Windows soortgelijke operaties: Meer parameters filehandle = willekeurige waarde Handle = CreateFile(FileName, Access, ShareMode, Security, Disposition, Flags, Template) Wordt ook gebruikt om bestaande files te openen. Lennart Herlaar Computerarchitectuur en netwerken 3 35
Inhoud 1 Operating Systems structuur system calls kernel / processen 2 Files storage en directory service links garbage collection disk cache file API gebufferde I/O = netwerk filesystemen Lennart Herlaar Computerarchitectuur en netwerken 3 36
Hogere File I/O lagen Files lezen met de primitieve API is vaak niet handig: Bijvoorbeeld regels lezen: Hoe vind je het Newline teken? Per character lezen is inefficiënt Liever grotere hoeveelheden in één keer Lennart Herlaar Computerarchitectuur en netwerken 3 37
Hogere File I/O lagen Files lezen met de primitieve API is vaak niet handig: Bijvoorbeeld regels lezen: Hoe vind je het Newline teken? Per character lezen is inefficiënt Liever grotere hoeveelheden in één keer Gebufferde I/O: Lees met de system call blokken in Haal daar uit wat je nodig hebt Bepaalde operaties (bijv. file kopiëren) kunnen efficiënt met de system call API. Lennart Herlaar Computerarchitectuur en netwerken 3 37
Gebufferde I/O pointer schijf/ cache block (vb 4kB) proces leest 10 bytes buffer in proces geheugen Lennart Herlaar Computerarchitectuur en netwerken 3 38
Verschil disk cache en gebufferde I/O disk cache gebufferde I/O doel minder toegang schijf minder system calls waar operating system individueel proces mode system mode user mode profijt alle processen + OS één proces sharing geshared: niet geshared: gelijktijdige toegang door problemen bij schrijven naar verschillende processen OK dezelfde file door verschillende processen Lennart Herlaar Computerarchitectuur en netwerken 3 39
Lagenmodel Files Buffered I/O Directory Service Storage Service Disk Cache Drivers Hardware Interface user mode system mode Lennart Herlaar Computerarchitectuur en netwerken 3 40
Netwerk Filesystemen Netwerk Filesysteem: de files staan op een andere computer dan waar ze gebruikt worden (Fileserver) Ze kunnen op dezelfde manier gebruikt worden als lokale files Alle file operaties worden opgevangen en doorgestuurd naar de fileserver NFS (Network File System): populair op Unix systemen SMB/CIFS (Server Message Block/Common Internet File System) op Microsoft systemen Eerst moet een remote filesysteem gemount worden Op Unix geïntegreerd in de directory structuur Op Windows aparte drive letter (X:) of \\servernaam\filenaam Stateless server: De server houdt niet bij waar de clients zijn in de file (dat moeten ze zelf doen). = bescherming tegen crashes van de server Lennart Herlaar Computerarchitectuur en netwerken 3 41
File Server read open file data Netwerk file server schijf PC Lennart Herlaar Computerarchitectuur en netwerken 3 42
Samenvatting Files We onderscheiden storage service en directory service Als dit echt gescheiden is dan zijn links mogelijk Maar dit geeft weer uitdagingen bij garbage collection Disk cache en gebufferde I/O zijn twee manieren om file I/O efficiënter te maken maar ze zijn wel heel verschillend Netwerk filesystemen worden tegenwoordig veel gebruikt Lennart Herlaar Computerarchitectuur en netwerken 3 43