Besturingssystemen SAMENVATTING 2016 Besturingssystemen 2016 Inhoud 1 2 3 4 5 6 7 Inleiding ................................................................................................................................................ 2 1.1 Wat is een OS? .............................................................................................................................. 2 1.2 Geschiedenis ................................................................................................................................ 2 Computersysteem en OS ..................................................................................................................... 2 2.1 Computersysteem........................................................................................................................ 2 2.2 Definitie van een OS..................................................................................................................... 3 2.3 Belangrijkste onderdelen van computer .................................................................................... 3 2.4 Waarom OS als API nodig ............................................................................................................ 4 2.5 OS: types en evolutie ................................................................................................................... 5 CPU en processen ................................................................................................................................ 6 3.1 Programma executie ................................................................................................................... 6 3.2 Eenvoudig programma in uitvoering ........................................................................................ 10 3.3 Basic programma in uitvoering ................................................................................................. 10 3.4 Interrupts .................................................................................................................................... 11 RAM, swapping & process scheduling tasks ..................................................................................... 12 4.1 Random-Access Memory ............................................................................................................ 12 4.2 Simple memorymanagement ..................................................................................................... 12 4.3 Processen ................................................................................................................................... 16 I/O apparaten, bussen en I/O communicatie .................................................................................... 19 5.1 Bus architectuur ......................................................................................................................... 19 5.2 I/O interfaces .............................................................................................................................. 20 Harddrives & disk scheduling ............................................................................................................ 22 6.1 Klassieke harddisks .................................................................................................................... 22 6.2 Traditionele diskscheduling ....................................................................................................... 22 6.3 RAID ............................................................................................................................................ 24 6.4 Virtueel geheugen: continued ................................................................................................... 26 Harddisk indeling & file management .............................................................................................. 26 7.1 8 9 File systems ................................................................................................................................ 26 Deadlocks, procestoestanden en scheduling................................................................................... 30 8.1 Gelijktijdigheid ............................................................................................................................ 30 8.2 Concurrency en scheduling ........................................................................................................ 31 Gebruikte afkortingen ....................................................................................................................... 35 1 Besturingssystemen 2016 1 Inleiding 1.1 Wat is een OS? 1.1.1 - 2 soorten OS met GUI/Desktop OS zonder GUI, besturing via System calls, afkomstig van een API (library) 1.2 Geschiedenis 1.2.1 - - 1.2.2 John von Neumann Eerste stored program computer: EDVAC Computersysteem bestaande uit 4 subsystemen: o Geheugen o ALU o Control unit o I/O-system Basis voor elk moden computersysteem Wet van Moore Het aantal transistoren in een geïntegreerde schakeling verdubbelt elke 2 jaar. 2 Computersysteem en OS 2.1 Computersysteem - 2.1.1 Combinatie van hard- en software Laptop, desktop, smartphone, smartdevices, … Waarom nood aan een OS? Om resources van een computersysteem zo efficiënt mogelijk te gebruiken: - Processormanagement: meerdere apps runnen binnen zelfde tijd Memory management: meerdere apps gelijktijdig in geheugen krijgen Resource management: meerdere resources van computersysteem van verschillende gebruikers eerlijk verdelen over alle ‘actieve’ programma’s Dus nood aan automatisatie 2 Besturingssystemen 2016 2.2 Definitie van een OS Een besturingssysteem (operating system) is de software die een computersysteem aanstuurt. Het dient als een medium tussen de hardware en gebruikers en zorgt ervoor dat gebruikers programma's op een gemakkelijke en efficiënte manier kunnen uitvoeren 2.2.1 - - Basisdoelstellingen van een OS Hardware beheren API voorzien voor apps en programmers o Zo kan er hardware-onafhankelijk gewerkt worden: Abstractie van onderliggende hardware-details Hieruit komen high-level programmeertalen Kernel: deel van OS dat altijd in RAM blijft Nadelen abstractie o Verlies van expressiviteit en efficiëntie o Standaard bezwaren tegen elke vorm van abstractie o Voordelen zijn echter veel groter dan nadelen 2.3 Belangrijkste onderdelen van computer - - Voeding Moederbord CPU Geheugen o RAM Koeling o Koelvinnen o Ventilatoren o Vloeistofkoeling HDD/SSD CMOS/BIOS o BIOS Basic I/O-system Zit in ROM Bibliotheek met basisinstructies voor eerste communicatie tussen OS en hardware Bootproces: 1. POST (Power-On Self-Test) + configuratie hardware a. CPU b. CMOS c. Video d. Memory 3 Besturingssystemen 2016 2. Bootloader (meestal eerste sector op HDD, starten van code in Master Boot Record) o - CMOS Klein RAM-geheugen Bewaart instellingen van BIOS Werkt op batterij (welke ook stroom levert voor RealTimeClock) Uitbreidingssleuven 2.4 Waarom OS als API nodig Zo kan men op een hoger, abstracter niveau en dus hardware-onafhankelijk met de computer communiceren, interageren, programmeren. 2.4.1 - Resources beheerd door OS Processoren Geheugen Timers Disks Tape drives Network interfaces Printers … 2.4.2 Kerntaken van een OS 1. Processormanagement a. Tijd en resources verdelen over apps 2. Memory management a. Beheren van geheugen b. Geheugen over alle apps verdelen + data opslaan c. Verschillende geheugenresources eerlijk en efficiënt verdelen RAM, cache, registers… 3. Device management a. Apps spreken met randapparatuur via OS, OS doet dit via device-drivers 4. Storage/file management a. Filesysteem: verzameling directories, subdirectory’s en files, logisch gestructureerd b. File manager onderhoudt indexen, filenames en locaties van files c. File manager zorgt dat apps en users eenvoudig en snel data kunnen verwerken 4 Besturingssystemen 2016 5. Application interface a. Programmers gebruiken hogere programmeertaal om hardware aan te sturen, zodat ze geen rekening moeten houden met de specifieke eigenschappen van de hardware en unieke werking ervan b. Services verzorgd door OS i. Programma executie ii. Toegang tot I/O devices iii. Gecontroleerde toegang tot files iv. Gecontroleerde toegang tot systeem v. Error detectie en response vi. Accounting 6. Userinterface a. Users communiceren met computer via consistente interface, voorzien door OS i. Command-line: commando’s ii. Grafische UI: vensters, iconen, menu’s, pointing device 2.4.3 - Kernel Hart van het OS Altijd in het geheugen aanwezig Verantwoordelijk voor essentiële taken: o Procesmanagement o Memorymanagement o Alle low level hardware-interfaces 2.5 OS: types en evolutie 1. Single user, single task a. 1 gebruiker kan 1 taak uitvoeren 2. Single user, multitasking a. 1 gebruiker, meerdere taken tegelijk b. Meest gebruikte type 3. Multi user a. Meerdere gebruiker kunnen meerdere taken tegelijk uitvoeren 4. Realtime OS (RTOS) a. Gebruikt in embedded systems, machines, robots, … b. Meestal weinig tot geen user-interactie of end-user-utilities c. Snelheid, betrouwbaarheid en veiligheid zijn belangrijkste eigenschappen 5 Besturingssystemen 2016 3 CPU en processen 3.1 Programma executie 3.1.1 1. 2. 3. 4. 5. 3.1.2 Benodigdheden Geheugen (RAM) a. Bevat data b. Bevat machine instructies Instructieset a. Verzameling van machine instructies, gekend door CPU CPU met ALU en control unit Bus om data te transfereren tussen CPU en RAM I/O-systeem Huidige computer-architectuur (single-core) Geheugenhierachie Duur, lage capaciteit, lage toegangstijd Goedkoper, hogere capaciteit, hogere toegangstijd 3.1.3 - Instructieset Machine-instructie: commando in een bit-patroon, welke herkend wordt door CPU o Types: Data transfer: data van locatie naar locatie kopiëren LOAD, STORE… Arithmetic/logic: gebruik bestaande bit-patronen om andere te berekenen AND, OR, SHIFT… Control: bestuur de uitvoering van het programma JUMP, BRANCH… 6 Besturingssystemen 2016 o - 3.1.4 - Onderdelen: OP-code (Operation Code): geeft aan welke elementaire bewerking moet worden uitgevoerd Operand: geeft meer details over de bewerking die moet worden uitgevoerd Dus afhankelijk van OP-code Machine-instructieset/-taal: set van alle machine-instructies, herkent door CPU o ISA genoemd (Instruction Set Architecture) o RISC (Reduced Instruction Set Computing) Zo klein mogelijk Snel en efficiënt o CISC (Complex Instruction Set Computing) Groot aantal, complexe instructies Makkelijker te programmeren CPU met ALU en Control Unit Processor/CPU: o Rekencentrum van computer o Onderdelen: ALU, rekenkundige eenheid: voert bewerkingen uit met gegevens Logical unit: bepaalt of iets WAAR of ONWAAR is Control-unit: logische schakelingen die gebruik maken van speciale registers (geheugenplaatsen): instructieteller, instructieregister en bepaald welke instructies worden uitgevoerd o Clock: bepaalt klokfrequentie/-snelheid in MHz o Cache: geheugen, sneller dan RAM dat zich tussen CPU-registers en RAM bevindt Werkt aan processorsnelheid Leest/schrijft in blokken Onzichtbaar voor OS Klein en simpel o Snelheid: Afhankelijk van klok, architectuur, bus snelheid, bus breedte, grootte caches, OS… 7 Besturingssystemen 2016 3.1.5 - - Uitvoering van een proces Gebruikt 2 special-purpose registers (+ andere) o Program Counter (PC) Bevat adres van volgende uit te voeren instructie o Instruction Register (IR) Bevat de huidige instructie CU voert een proces uit in een loop van 3 stappen o Fetch o Decode o Execute 8 Besturingssystemen 2016 3.1.5.1 Grafische voorstelling 9 Besturingssystemen 2016 3.2 Eenvoudig programma in uitvoering 3.2.1 Computersysteem : adres volgende op te vragen instructie : huidige instructie : geheugenadres volgende bewerking : gegevens naar/van geheugen :verwijzing nr IO device :gegevens vr uitwisseling tss processor en IO device in I/O AR 3.2.2 - Registers MAR: Memory Address Register o Bevat adres voor volgende read/write MBR: Memory Buffer Register o Bevat data die naar/uit geheugen wordt geschreven/gelezen I/OAR: I/O address o specifieert een I/O device I/OBR: I/O buffer o Bevat data die met een I/O device wordt uitgewisseld I/O modules en de processors 3.3 Basic programma in uitvoering - Voorbeeld: zie BS3.ppt, slide 45 > 55 10 Besturingssystemen 2016 3.4 Interrupts Een signaal dat naar de CPU gestuurd wordt en ervoor zorgt dat het huidige proces wordt onderbroken en de CPU overgaat naar een interrupt-handling routine. - - - - Meestal gebruikt als noodsignaal Types: o Intern Oorzaak: foutief gebruik van een instructie of data o Extern Oorzaak: I/O devices, timing device, … o Software Oorzaak: uitvoeren van een instructie o Hardware Hardware gegenereerd Interrupt controller o Speciale hardware die CPU inlicht wanneer een interrupt optreedt o Geeft betreffende device mee o I/O devices hebben Interrupt Request Lines (IRQs) o IRQs worden omgezet in interrupt vectors door speciale hardware en dan doorgegeven aan CPU, deze hardware is de PIC (Programmable Interrupt Controller) o Handelt ook prioriteiten van interrupts af (volgorde) Interrupt handlers o Routines, opgeroept wanneer een interrupt voorkomt o Meestal korte routines die zorgen dat onmiddellijke problemen of eisen worden opgelost en controle teruggeven aan OS of proces dat aan het lopen was o Tijdens het runnen hiervan, wordt proces onderbroken o Interrupt vectoren worden in de Interrupt Description Table gekoppeld aan een interrupt handler Stappen bij afhandelen van interrupt 1. Disable verdere interrupts 2. Sla toestand huidige proces op 3. Interrupt handling routine 4. Restore huidige proces 5. Enable interrupts 6. Ga verder met uitvoering proces 11 Besturingssystemen 2016 4 RAM, swapping & process scheduling tasks 4.1 Random-Access Memory - 4.1.1 - - - - Iedere geheugenplaats is even snel toegankelijk Data kan in willekeurige volgorde geschreven of gelezen worden Types sRAM: Static RAM o Zeer snelle flipflop o Duur o Groot (fysiek) o Vaak gebruikt in processor caches (L1, L2, L3) o Static want moet niet gerefreshed worden, behoudt zijn waarden dRAM: Dynamic RAM o Trager dan sRAM o Dynamic, want moet steeds herschreven worden sdRAM: Synchronous RAM o Gesynchroniseerd met systeemklok Verversing en datasnelheid afhankelijk van kloksnelheid DDR: Double Data Rate sdRAM o Dubbel zo snel als sdRAM DDR2: Double Data Rate 2 sdRAM o Dubbel zo snel als DDR DDR3: Double Data Rate 3 sdRAM o Dubbel zo snel als DDR2 DDR4 DDR5/GDDR o Momenteel enkel op chipsets gebruikt 4.2 Simple memorymanagement - 4.2.1 Memorymanagement is cruciaal voor systemen met multiprogramming MM verdeelt RAM voor alle actieve processen OS gebruikt een klein stuk geheugen (Kernel), de rest is voor gewone processen + data Memory Management Unit (MMU) 4.2.1.1 5 vereisten 1. Relocatie a. Programma’s bij het laden aanpassen aan variabel beginadres b. OS moet adressen vertalen i.s.m. met processor 2. Bescherming a. Elk proces moet beschermd worden tegen ongewenste verstoring door andere processen 12 Besturingssystemen 2016 b. Niet toestaan dat andere processen zomaar gegevens/uitvoering van een proces kunnen aanpassen c. Controle kan niet gebeuren tijdens bv. compile-time (door OS) => Verantwoordelijkheid van processor at runtime (dus door hardware) 3. Sharing a. Samenwerkende processen kunnen gemeenschappelijke gegevens hebben b. Beschermingsmodule moet voldoende flexibel zijn om dit toe te staan 4. Logische indeling a. Adres die de programmeur/applicatie kent b. Moet gescheiden zijn van fysieke indeling c. Niveau waar programmeur op werkt > geen onderscheid afhankelijk van hardware 5. Fysieke indeling a. Fysiek adres op de geheugenchip Er moet dus een vertaling zijn tussen logische en fysieke geheugen, dit is het werk van de Memory Management Unit (MMU) 4.2.1.2 Technieken voor geheugenbeheer - Belangrijkste taak: programma’s in hoofdgeheugen inladen voor uitvoer door processor - Partitionering o Verouderd, maar principe blijft basis voor moderne technieken o Statisch: RAM verdeeld in vaste blokken Elk proces wordt in één blok geplaatst Logisch adres: adres binnen blok Fysiek adres: beginadres van blok + logisch adres Vaste blokken even groot Gevolg: interne fragmentatie (geheugenblokken niet volledig gevuld) o Dynamisch: OS maakt blok aan als proces start of swapt naar geheugen Bij einde of stopzetting van een proces ontstaat leegte Gevolg: externe fragmentatie 13 Besturingssystemen 2016 - Welke lege ruimte gebruiken voor nieuw proces? First: proces wordt geplaatst in eerste lege ruimte die groot genoeg is Next: eerstvolgende lege ruimte die groot genoeg is (begin zoeken bij laatst gebruikte geheugenadres) Best fit: gebruik kleinste leegte die groot genoeg is o Nadelig: meestal klein gaatje dat overblijft en helemaal nergens meer voor gebruikt kan worden Genereert vaak veel (kleine) externe fragmentatie Oplossing? Volgende technieken… Pagineren (paging) o Geheugen verdelen in veel kleinere blokken van vaste grootte Frame: fysiek geheugenblok Pagina: logisch geheugenblok (past in 1 frame) o Proces wordt verdeeld over 1 (of meerdere) pagina’s die dan in de fysieke frames worden gestoken o Berekening van fysieke adres op basis van logische adres en page-table Hogere bits: bepalen paginanummer Lagere bits: offset geheugenadres binnen pagina Berekening van fysieke adres op basis van logische adres en page-table 14 Besturingssystemen 2016 - Segmentatie o Proces wordt verdeeld in segmenten o Lijkt op dynamisch partitioneren, maar proces kan hier uit meerdere segmenten bestaan die niet aaneengesloten moeten zijn o Segmentatietabel = paginatabel + grootte van segment o Voordelen: Programmeur kan segmenten “zien” Betere bescherming Read-only segmenten Execute-only segmenten Strengere controle op verkeerd adres Geen interne fragmentatie Wel externe fragmentatie o Berekening van fysiek adres Hogere bits van logisch adres: segmentnummer Lagere bits: offset binnen het segment - Virtueel geheugen o Techniek die het mogelijk maakt dat processen worden uitgevoerd die niet geheel in het geheugen zijn Gedeelte bevindt zich in het swap-geheugen op de HDD o Voordelen Gebruikersprogramma’s kunnen groter zijn dan het fysieke geheugen Bestanden en geheugen delen tussen twee of meer processen 4.2.1.3 Pagina’s en segmenten - Een proces kan opgedeeld worden in o Logische pagina’s Blokjes van vaste grootte, dezelfde grootte wordt gebruikt door de fysische frames in het geheugen o Logische segmenten Blokken van variabele grootte 15 Besturingssystemen 2016 4.2.1.4 Swappen Strikt gesproken is 'swappen' het overbrengen van een volledig proces naar de harde schijf (virtueel geheugen). Dit gebeurde zo in de traditionele OS’en - Zeer nuttig want RAM meestal te klein voor alle processen en data In moderne OS’en kunnen die pagina's worden 'geswapt' naar de schijf, en dus niet meer noodzakelijk het volledige proces Paging in de context van virtueel geheugen is dus ‘swappen’ van pagina’s (onderdelen proces die in 1 geheugenframe passen). o Page in: Pagina vanuit HD naar RAM o Page out: Pagina vanuit RAM naar HD 4.3 Processen Een programma dat wordt uitgevoerd onder beheer van het besturingssysteem. - - - - Samenstel van o Instructies die in een bepaalde volgorde worden uitgevoerd o Status van die activiteiten o Toegekende bronnen (geheugen, randapparatuur…) Toestandenmodel voor processen OS houdt informatie bij over het proces in het Process Control Block (PCB) o Identiteit Process-nummer, parent-nummer, userID o Besturing proces Toestand van proces Prioriteit, schedulingsinfo IPC berichten, signalen, flags Bronnen toegekend aan proces o Status processor Registers Stack pointers PCB bevat alle info nodig om een proces te onderbreken en later terug op te starten alsof deze onderbreking nooit heeft plaatsgevonden 16 Besturingssystemen 2016 4.3.1 - - 4.3.2 Taken van het OS voor processen Creatie van processen door gebruikers ondersteunen De uitvoering van meerdere processen verweven (interleaving of process scheduling). o Doel: Maximum CPU-gebruik Aanvaardbare respons tijd Bronnen toewijzen aan processen Deadlocks vermijden Interprocess communicatie (IPC) ondersteunen Scheduler, dispatcher Een OS-programma dat de processor laat afwisselen tussen processen (deel v kernel) - 4.3.3 Verhindert dat één enkel proces de processortijd monopoliseert Bepaalt welke het volgende proces is, afhankelijk van een shedulingsalgoritme. De CPU zal altijd de instructies van de scheduler uitvoeren, terwijl hij omschakelt tussen proces A, B, C, ... Maakt gebruik van de PCB’s Trace (spoor) Multitasking Processen combineren met behulp van de scheduler 17 Besturingssystemen 2016 4.3.4 Toestandenmodel met swapping - 4.3.5 - Nieuw o Een nieuw proces wordt opgestart, alle nodige bronnen worden verzameld in RAM Gereed o Alle bronnen zijn klaar in RAM Actief o Mag draaien op de Processor Geblokkeerd o Proces wacht op I/O (bv. bestand van harddisk) Gereed Onderbroken/ Geblokkeerd Onderbroken o Zelfde toestanden als hiervoor, proces is naar HDD geswapt om plaats uit te sparen in de RAM Uitvoeringsmodi Om gegevens van het OS te beschermen gebruiken meeste processoren 2 uitvoeringsmodi: o Privileged modus (of systeemmodus, kernel modus, supervisor modus…) Manipuleren stuurregisters, I/O instructies, geheugenbeheer... o Gebruikersmodus Extra: zie proglit 3 & 9 18 Besturingssystemen 2016 5 I/O apparaten, bussen en I/O communicatie 5.1 Bus architectuur - 5.1.1 - 5.1.2 - - 5.1.3 - 5.1.4 - 5.1.5 - Doel: gegevens transporteren van ene naar andere component Verbinding tussen meerdere onderdelen moet mogelijk zijn, dus geen vaste verbindingen Om te zorgen dat gegevens bij juiste bestemming aankomen, gebruikt men adressering Elke component heeft dus zijn eigen unieke adressen o Zowel geheugen- als I/O-adressen Adressering Elke component ziet alle gegevens passeren, maar neemt enkel gegevens op die naar één van zijn adressen wordt verstuurd Controlesignalen Kloksignaal o Synchroniseert alle transacties op een bus o Blokgolf o Aantal transacties per seconde Signalen die type van transactie aangeven o Lees- en schrijfsignalen (dubbel indien er een ‘aparte I/O ruimte’ is) o ‘Breedte’ van de transactie: 8, 16, 32, 64 of 128 bits o IRQ (belangrijk), hiermee kan een onderdeel (vb. netwerkkaart) de onmiddellijke aandacht van de processor vragen (= interrupt) Breedte en snelheid van een bus Breedte van bus: hoeveelheid data die samen kan worden verstuurd (= bandbreedte) Kloksnelheid van bus: hoeveelheid keer die data per seconde wordt doorgestuurd Datasnelheid: De maximale snelheid waarmee gegevens over een bus getransporteerd kunnen worden Databreedte x cycli/sec (klokfrequentie) Uitbreidingsbussen Door een apparaat in te pluggen op een uitbreidingsslot, wordt deze op een bus aangesloten Niet uitbreidbare bussen: o Front side bus, tussen CPU, RAM & bruggen naar PCI o Sneller dan uitbreidingsbussen Afkortingen ISA: Industry Standard Architecture PCI: Peripheral Component Interconnect AGP: Accelerated Graphics Port PCIe: PCI Express AMR: Audio/Modem Riser 19 Besturingssystemen 2016 - CNR: Communications & Networking Riser PCMCIA: Personal Computer Memory Card International Association 5.2 I/O interfaces - - 5.2.1 Audio Video o VGA: Video Graphics Array o DVI: Digital Video Interface o HDMI: High Definition Multimedia Interface USB: Universal Serial Bus Serial Parallel FireWire NIC: Network Interface Card Organisatie van I/O functie 5.2.1.1 Evolutie 1. Processor directe controle over device 2. Toevoegen van I/O module (voorzien van interfaces) 2.1. Geprogrammeerde I/O (CPU is busy waiting tijdens uitvoer) 2.2. Interrupt-gestuurde I/O (CPU werkt verder tot interrupt van I/O) 2.3. Directe geheugentoegang (DMA): I/O module schrijft in RAM 3. Toevoegen van processor aan I/O module (met I/O specifieke instructieset): CPU geeft I/O opdracht door en werkt verder 4. Toevoegen van eigen geheugen aan I/O module Gevolg: loskoppeling van I/O functies zorgt voor betere CPU-prestaties 5.2.1.2 Moderne werking 20 Besturingssystemen 2016 5.2.1.3 Aandachtspunten voor ontwerp van OS - Efficiëntie: o I/O apparaten traag in vergelijking met RAM en processor > vormen knelpunt o OS moet dit verschil opvangen - Generaliteit: o Verbergen van bijzonderheden I/O apparaten in low level routines (hiërarchische structuur van OS, vgl. OSI) o Op een uniforme manier communiceren met elk I/O device op hoger niveau Vb: read, write, open, close, … 5.2.1.4 Aparte I/O ruimte vs memory mapped I/O - In- en uitvoer die zich voordoet als geheugen o Bv. een beeldschermadapter: het scherm doet zich voor als geheugen Wat je in het geheugen schrijft, krijg je te zien op het scherm - Aparte adres ruimte voor I/O o Bv. het adres 3F8 kan zowel een geheugenadres zijn als een I/O-adres Men moet dus opgeven welk van de twee men bedoelt o Andere processorinstructies dan bij geheugenadressen o IN en OUT instructie. - In een PC heeft men zowel memory mapped I/O als ‘aparte I/O’ - Deze keuze wordt door de fabrikant van de hardware gemaakt 5.2.2 - 5.2.3 - 5.2.4 - Display devices CRT: Cathode Ray Tube LCD: Liquid Crystal Display Input devices Toetsenbord Muis Barcodescanner Digitale camera (foto/video) Webcam Microfoon MIDI Biometrisch Touchscreen KVM: Keyboard Video Mouse Printers Laserprinter Inkjet printer Dot-matrix printer Thermische printer 21 Besturingssystemen 2016 6 Harddrives & disk scheduling 6.1 Klassieke harddisks - PATA: Parallel Advanced Technology Attachment IDE: Integrated Drive Electronic SATA: Serial Advanced Technology Attachment ATAPI: AT Attachment with Packet Interface SCSI: Small Computer System Interface 6.2 Traditionele diskscheduling - Parameters voor schrijfprestaties HDD draait aan constante snelheid Totale data transfer time = opstarttijd + toegangstijd + overdracht 22 Spooraanvragen: Besturingssystemen 2016 6.2.1 - 55 58 39 Strategieën FIFO: First In First Out 18 90 160 150 - o Voordeel: eerlijk o Nadeel: slecht gedrag bij groot aantal processen met niet-samenhangende aanvragen LIFO: Last In First Out o Voordeel: snelle verplaatsingen van sequentiële bestanden o Nadeel: starvation mogelijk Priority based o Voordeel: snelle antwoordtijden voor kleine processen o Nadelen zijn te omzeilen door langere processen op te delen in kleinere jobs of door prioriteit te verhogen Shortest service time first - o Strategie: kies spoor met kleinste verplaatsing o Voordeel: zeer efficiënt o Nadeel: deadlock/starvation mogelijk SCAN: liftalgoritme - - o o o o Strategie: doorloop requests in één richting en keer om bij laatste request in die richting (L > R > L > R) Voordeel: redelijk efficiënt Nadeel: geeft voordeel aan recent doorkruist gebied C-SCAN Strategie: doorloop requests n één richting, keer daarna terug naar eerste request van die richting (L > R, R > L, L > R, R > L) Voordeel: eerlijker Nadeel: bijna altijd minder efficiënt 23 38 184 … Besturingssystemen 2016 o - N-step SCAN Creëren van meerdere wachtrijen In elke wachtrij slechts N-elementen Verwerk elke deelrij met SCAN-algoritme o F-SCAN Creëren van 2 wachtrijen Bij begin van elke scan is één wachtrij leeg Vanaf dan binnenkomende requests in nieuwe wachtrij Problemen bij SSTF, LIFO & C-SCAN: o Arm kan blijven “plakken” bij gebieden o bv. 2 processen met data op zelfde spoor o Mogelijke oplossingen zijn N-step- en F-SCAN 6.3 RAID 6.3.1 - - 6.3.2 - - Waarom? Doelstellingen o Verschillende schijf I/O aanvragen parallelliseren > efficiëntie o Mogelijke fouten/dataloss verminderen > reliability Eigenschappen o Set van fysieke schijfstations die door OS worden behandeld als 1 logisch station o Gegevens verdeeld over fysieke schijven redundante capaciteit gebruikt voor opslaan pariteitsgegevens (voor foutcorrectie) RAID-systemen Hardware o Schijfcontroller combineert meerdere schijven tot 1 logische schijf o Redelijk duur, vooral toegepast in server systemen o Efficiëntste Software o Vanaf Windows NT: software disk driver combineert meerdere schijven tot 1 logische 24 Besturingssystemen 2016 - - - - - - - RAID 0: geen redundantie, wel verdeling over verschillende schijven o Voordelen Gelijktijdig afhandelen van I/O requests indien op verschillende schijven Waarschijnlijkheid dat opeenvolgende strips worden geladen groot o Vereisten Grote overdrachtscapaciteit (door controller bussen, I/O bussen, adapters…) Aanvragen typisch groter dan lengte van 1 strip RAID 1: gespiegeld o Voordelen: Read-request kan afgehandeld worden door 2 schijven Gegevens kunnen parallel bijgewerkt worden bij write-request Recovery gemakkelijk door duplicatie o Nadelen: Kosten > dubbele schijfruimte Slechtere performantie bij meer schijfbewerkingen RAID 2: redundantie met Hamming code o Aanpak: Zeer kleine strips Hamming code: correctie van 1-bit fouten, detectie 2-bit fouten mogelijk o Nadelen: Nog steeds veel redundantie RAID 3: pariteit via verweven bits o RAID 2 met slechts 1 redundante schijf o Voordelen Herstel na crash van 1 schijf mogelijk Zeer kleine strips > parallelle overdracht van gegevens o Nadelen Pariteitsschijf bij elke schrijfbewerking schrijven RAID 4: pariteit op blokniveau o Voordelen: Relatief grote blokken > parallelle afhandeling I/O requests o Nadelen: Pariteitsschijf betrokken bij elke schrijfopdracht (Ook bij wijziging 1 bit in block van 1 schijf => pariteitsblock herschrijven) RAID 5: gedistribueerde pariteit op blokniveau o Voordelen: Geen bottleneck door pariteitsschijf Dus betere verdeling belasting van de schijven RAID 6: tweevoudige redundantie o Voordelen Hoge reliability (2 schijven mogen tegelijk kapotgaan) o Nadelen Lagere performantie bij schrijfopdrachten 25 Besturingssystemen 2016 6.4 Virtueel geheugen: continued - 6.4.1 - - - Segmentatie/pagineren o Proces opgedeeld in stukken Localiteitsprincipe: proces gebruikt niet alle pagina’s/segmenten tegelijk > ongebruikte delen (pagina’s/segmenten) hoeven niet constant in hoofdgeheugen te staan Uitwerking Stukjes van proces: o Sommige in hoofdgeheugen andere op harde schijf < > processor ziet enkel logische adressen Als proces stukje buiten RAM wil gebruiken: o MMU genereert interrupt o OS reserveert frame/segment in hoofdgeheugen o OS laadt stukje daarheen Extra informatie in pagina- of segmenttabel vereist (wat zit in RAM en wat niet) 6.4.2 Voordelen - Nog meer processen tegelijk uitvoeren Grotere processen (zelfs groter dan geheugen) => einde van beperking op grootte van apps Snellere start van processen o Processen hoeven niet volledig ingeladen te zijn voor ze kunnen starten Efficiënt! (Zolang de processor niet meer swapping dan processing uitvoert = trashing) 7 Harddisk indeling & file management 7.1 File systems Een file-system is de logische view van informatieopslag. - File: benoemde collectie van gerelateerde informatie File attributen o Naam/pathname Symbolisch o Type o Locatie o Grootte o Beveiliging o Tijd/datum van creatie, aanpassing of laatste gebruik 26 Besturingssystemen 2016 7.1.1 - - - Bestandsbeheer Create o Alloceer ruimte o Maak een entry voor file in de file table o WRITE file table Write Read o Zoek file in FT* o READ from current position (Pointer) o MODIFY current position Reposition Delete Truncate o Bij overschrijven met kortere data; file inkorten of leegmaken Append Copy Read/write attributes 7.1.1.1 Directory structuur Gebeurt op 2 niveaus - - Partities: logische schijven o Logische opdeling schijf o Meerdere schijven combineren tot één logische schijf o Heeft altijd eigen Table Of Contents Directories: een verzameling files o Kan meer informatie bevatten (toegangsrechten…) o Doelstellingen: Efficiëntie: snel een file vinden Naamgeving: zelfde file kan verschillende namen hebben (shortcuts) Groepering: logische groepering van files op basis van eigenschappen o Operaties: Zoek naar file Create/delete file Weergeven van directory (list) Directory bijwerken o Werkt volgens ‘boomstructuur’ o Pathnaam Absoluut: vanaf root (uniek) Relatief: vanaf werkdirectory 7.1.1.2 File sharing - Problemen: o Toegangsrechten o Gelijktijdige toegang *File table (FT) is de file tabel, waarin referenties naar alle files van een partitie staan 27 Besturingssystemen 2016 7.1.2 - - Interne file-structuur Disk: fixed block size o Block: één of meer fysieke HD sectoren = cluster File: sequentie van records o Kan variabele lengte zijn o Meestal <> block-size o Record = verzameling bij elkaar horende “velden” Interne fragmentatie o Gemiddeld ½ block per file 7.1.2.1 Bestandstoewijzing Het toewijzen van blocks aan files 1. Contiguous: aaneengesloten toewijzing a. Hoeveel ruimte nodig? i. Grootte op voorhand bekend ii. Kan bestand van grootte veranderen b. Voordelen: i. Direct acces: blocks op zelfde cilinder c. Nadelen: i. Vinden van ruimte: first-fit, next-fit, best-fit ii. Langzaam bij groeiende files iii. Externe fragmentatie mogelijk 2. Linked: ketting toewijzing a. FAT: File Allocation Table i. Verzamel alle pointers in één tabel b. Voordelen: i. Geen externe fragmentatie mogelijk ii. Geen pre-allocatie nodig iii. File kan zonder problemen groeien c. Nadelen: i. Alleen sequentiële toegang mogelijk ii. Ruimte nodig om pointer naar volgend blok op te slaan iii. File = gefragmenteerd (Performantieverlies) iv. Betrouwbaarheid(?) (Damaged Block) 3. Indexed: index toewijzing a. Voordelen: i. Geen externe fragmentatie ii. Sequentiële- & direct access mogelijk 1. Index block in RAM iii. File kan eenvoudig groeien 28 Besturingssystemen 2016 b. Nadelen: i. Meer ruimteverlies (index block) ii. Grootte van het index block 1. Klein: enkel kleine files mogelijk 2. Groot: meer verloren ruimte bij kleine files iii. Structuur van het Index Block 1. Linked 2. Multi-level 3. Combinatie 7.1.3 - - 7.1.4 - Beheer van vrije ruimte Bit vector o 1 bit per block (1 = free, 0 = allocated) Vb.: 00111000011111000011111111111011000 => makkelijke vrije blokken vinden o Zo klein mogelijke oplossing Gelinkte lijst van lege blokken o n blocks nodig => n read-operaties! Groepering+ tellen van vrije blokken o Eerste blok + aantal blokken vrij bijhouden NTFS New Technology File System Beveiliging Recoverability o Logfile om veranderingen bij te houden Grote schijven en files Meerdere datastream binnen één file General indexing facility 29 Besturingssystemen 2016 8 Deadlocks, procestoestanden en scheduling 8.1 Gelijktijdigheid - - 8.1.1 - Multiprogramming o Management van meerdere gelijktijdige processen in een uniprocessorsysteem Multiprocessing: o Management van meerdere gelijktijdige processen in een multiprocessor systeem Distributed processing: o Management van meerdere gelijktijdige processen in meerdere verspreidde computersystemen Gelijktijdigheid = concurrency o Meerdere processen worden (bijna) gelijktijdig uitgevoerd Interleaving & interferentie o Sommige proces-delen zijn “kritiek” Meerdere processen tegelijk in kritieke secties > interferentie is mogelijk Interferentie = ongewenst gedrag als gevolg van (een bepaalde) interleaving o Oplossing: Mutual exclusion Een bepaalde bron kan niet door iedereen tegelijk gebruikt worden Dus: iemand moet zorgen voor beperkingen > OS Risico’s: o Deadlock: 2 of meer processen kunnen niet verder omdat ze op bronnen wachten die ze zelf blokkeren o Starvation: een uitvoerbaar proces wordt eindeloos genegeerd door de scheduler of OS dat het een resource moet toekennen Deadlocks Voorwaarden voor een deadlock 1. Wederzijdse uitsluiting (mutual exclusion) a. Slechts 1 proces tegelijk mag een bron gebruiken 2. Vasthouden en wachten (hold-and-wait) a. Een proces mag toegewezen bronnen vasthouden terwijl het wacht op de toewijzing van andere bronnen 3. Geen preëmptieve verwerking aanwezig a. Een bron mag niet gedwongen verwijderd worden uit een proces dat haar vasthoudt vb. kruispunt met auto’s 30 Besturingssystemen 2016 4. Cirkelvormig wachten a. Er bestaat een gesloten keten van processen waarbij minstens 1 proces een bron vasthoudt, die het volgende proces in de keten nodig heeft - - Oplossingen voor deadlocks o Deadlocks voorkomen (prevention) Verbieden dat 1 van de noodzakelijke voorwaarden van deadlocks voorkomt o Deadlocks vermijden (avoidance) Geen bron toewijzen aan proces als deze tot deadlock kan leiden: preventief o Deadlocks detecteren (detection) en oplossen Zo mogelijk elk bronverzoek toestaan Af en toe nakijken of er geen deadlock is en dan de deadlock “oplossen” Concurrency realisatie technieken o Pipes o Berichten o Gedeeld geheugen o Semaforen Een semafoor ‘S’ is integer variabele die, buiten de initialisatie, door 2 atomaire, wederzijds uitgesloten operaties kan bewerkt worden: wait(S) verlaagt de semafoorwaarde signal(S) verhoogt de semafoorwaarde Gecombineerd met wachtrij: bevat alle processen die op semafoor wachten Atomair: moet in 1 blok worden uitgevoerd Elke bron heeft zijn eigen semafoor o Signalen 8.2 Concurrency en scheduling 8.2.1 - 8.2.2 Scheduler Beslist over de volgorde waarin de (delen van) processen door de processor(en) zullen worden uitgevoerd Scheduling o o De beslissingsmethode die scheduler gebruikt om volgorde van processen te bepalen Soorten: Lange-termijn scheduling Proces toevoegen aan verzameling van uitgevoerde processen (nieuwe processen opstarten) 31 Besturingssystemen 2016 o 8.2.3 1. Medium-termijn scheduling Proces toevoegen aan processen die zich deels of volledig in hoofdgeheugen bevinden (processen naar onderbroken swappen) Korte-termijn scheduling Welk beschikbaar proces wordt uitgevoerd door de processor (Van ready naar running) Belangrijke criteria o Goede omlooptijd (turnaround time) Tijd tussen invoer van proces en aflopen ervan o Snelle antwoordtijd (response time) Tijd tussen invoer van proces en eerste respons o Grote doorvoer (throughput) # processen die afgehandeld zijn in bepaalde tijdspanne o Maximaal processorgebruik o Eerlijkheid: processen gelijk behandelen o Prioriteiten handhaven Als er prioriteiten zijn, processen met prioriteit voorrang o Balans bij toekenning van systeembronnen Gebruik van prioriteiten Zijn sommige processen belangrijker dan andere? Kiest scheduler een proces met hoge prioriteit altijd boven één met een lagere? Alternatief meerdere wachtrijen: Per priority, level met verschillende quantumtijd Risico: Starvation mogelijk voor processen met lage prioriteit Mogelijke oplossing: Proces toelaten om prioriteit te laten stijgen op basis van leeftijd/uitvoerhistory Basic scheduling algoritmen FCFS: First Come First Serve a. Elk proces dat klaar is, wordt achteraan de wachtrij geplaatst b. Wanneer het huidige proces ophoudt met uitvoeren wordt het proces vooraan de wachtrij, (dus hetgeen het vroegst is toegevoegd) geselecteerd om verder te gaan c. Niet-preëmptief d. Gebruikt FIFO datastructuur e. Nadeel: i. Werkt niet zo goed voor korte processen: moeten vaak lang wachten door lange processen die voor hun gestart zijn 32 Besturingssystemen 2016 f. 2. 3. 4. 5. Voordeel: i. Werkt goed voor CPU-gebonden processen 1. Geven de processor niet vrij => alle I/O gebonden processen moeten wachten om even de processor te mogen gebruiken (achter in de rij) g. Zeker niet aantrekkelijk voor single-processorsystemen Round-Robin a. FCFS met preëmptiviteit op basis van de klok (quantum time = tijd dat proces krijgt) b. Er wordt een maximum (quantum) tijd vastgelegd dat een proces de processor mag gebruiken c. Na die tijd (of eerder als het proces op een interrupt wacht) => volgende proces wordt running, en huidige terug in wachtrij, ongeacht of het proces klaar is of niet d. Nadeel: i. Ongelijke behandeling van processor vs. I/O gebonden processen ii. Efficiënte quantum time zeer moeilijk goed te bepalen > processor gebonden nog steeds te veel voorrang I/O gebonden proces: gebruikt processor heel even, als moet wachten op interrupt > pas na interrupt terug in wachtrij ready Shortest Process Next a. Niet preëmptief b. Proces met de kortst voorspelde processing time komt eerst aan de beurt c. Nadeel: i. Voorspellingen van bedieningstijden moeten gemaakt worden (niet eenvoudig en processorintensief) ii. Korte processen springen voor langere processen > Risico op starvation Shortest remaining time a. Shortest Process Next met preëmptiviteit b. Nadeel: i. Moet nog steeds bedieningstijden voorspellen ii. Starvation toch nog mogelijk c. Voordeel: i. Kan wel processen onderbreken Highest reponse ratio next a. Kies het volgende proces met de hoogste ratio b. Voordelen: i. Houdt rekening met leeftijd van processen c. Nadeel: i. Bedieningstijden moeten worden berekend d. Kortere processen wel licht bevoordeeld 33 Besturingssystemen 2016 6. Feedback a. Als we geen idee hebben over de bedieningstijd: SPN, SRT en HRRN niet gebruiken b. Alternatief voor voorrang aan korte processen is het straffen van lange processen c. Gebruikt preëmptiviteit d. Proces start in high priority wachtrij e. Na bepaalde tijd (quantum time) ander proces, als huidig proces niet afgelopen => naar lagere priority wachtrij … f. Round robin scheduling in elke queue: quantum time is groter bij hoge priority levels g. Opletten voor starvation in laagste priority wachtrij Als ze te lang moeten wachten evt. terug naar hogere prioriteit wachtrij - Preemptivenesss, preëmptiviteit: zal een proces onderbroken kunnen worden door de scheduler (OS) als het nog aan het runnen is? - Ja: scheduling is preëmptief Nee: scheduling is niet preëmptief 8.2.3.1 Fair share scheduling - Gebruikersapplicaties werken meestal als groep van processen - Gebruiker wil performantie op applicatieniveau (Ligt niet zozeer wakker van processen) - Scheduler moet dus beslissingen nemen gebaseerd op groepen van processen 34 Besturingssystemen 2016 9 Gebruikte afkortingen In volgorde van voorkomen in dit document: - OS: Operating System GUI: Graphical User Interface ALU: Arithmetic & Logic Unit I/O: Input/Output MBR: Master Boot Record RAM: Random Acces Memory CPU: Central Processing Unit BIOS: Basic Input & Output System ROM: Read-Only Memory CMOS: Complementary Metal Oxide Semiconducter HDD: Hard Drive Disk SSD: Solid State Disk RTC: Real Time Clock API: Application Programming Interface RTOS: Real-Time Operating System OP-code: OPeration code ISA: Instruction Set Architecture / Industry Standard Architecture RISC: Reduced Instruction Set Computing CISC: Complex Instruction Set Computing PC: Program Counter / Personal Computer IR: Instruction Register CU: Control Unit MAR: Memory Address Register MBR: Memory Buffer Register I/OAR: I/O address I/OBR: I/O buffer IRQ: Interrupt Request Line PIC: Programmable Interrupt Controller sRAM: Static RAM dRAM: Dynamic RAM sdRAM: Synchronous RAM DDR: Double Data Rate (- sdRAM) GDDR: Graphics Double Data Rate (- sdRAM) L1, L2…: Level 1, Level 2 (- cache) MMU: Memory Management Unit PCB: Process Control Block IPC: Inter-Process Communication PCI: Peripheral Component Interconnect AGP: Accelerated Graphics Port PCIe: PCI Express AMR: Audio/Modem Riser 35 Besturingssystemen 2016 - CNR: Communications & Networking Riser PCMCIA: Personal Computer Memory Card International Association VGA: Video Graphics Array DVI: Digital Video Interface HDMI: High Definition Multimedia Interface USB: Universal Serial Bus NIC: Network Interface Card DMA: Direct Memory Access CRT: Cathode Ray Tube LCD: Liquid Crystal Display KVM: Keyboard Video Mouse MIDI: Musical Instrument Digital Interface PATA: Parallel Advanced Technology Attachment IDE: Integrated Drive Electronic SATA: Serial Advanced Technology Attachment ATAPI: AT Attachment with Packet Interface SCSI: Small Computer System Interface FIFO: First In First Out LIFO: Last In First Out RAID: Redundant Array of Independent Disks FT: File Table FAT: File Allocation Table NTFS: New Technology File System FCFS: First Come First Serve 36