Besturingssystemen

advertisement
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
Download