Besturingssystemen – belangrijkste functies.
p. 1
Besturingssystemen – beschrijving van de belangrijkste functies. De twee belangrijkste functies van een besturingssysteem zijn : 1) het beheren van de resources (bronnen) 2) het voorzien van een stabiele omgeving voor de software Bovenstaande functies kunnen we opsplitsen in een 6-tal grote taken die door een besturingssysteem uitgevoerd moeten worden. Het gaat hier om een minimale lijst (er kunnen eventueel nog andere taken zijn). 1) 2) 3) 4) 5) 6)
beheren van de processor beheer van het geheugen apparaatbeheer beheer van opslagmedia verzorgen van een API (application programmer interface) communiceren met de gebruiker
Besturingssysteem - functies
1
Besturingssystemen – belangrijkste functies.
p. 2
1) beheren van de processor Met het beheer van de processor doelen we op 2 zaken : - zorgen dat elk proces voldoende processortijd krijgt toegewezen om optimaal te werken - zorgen dat de processor zo weinig mogelijk tijd verspilt door te staan niksen Bij een proces (ook wel thread genoemd) denken velen meteen aan een applicatie. Hoewel iedere applicatie wel een proces is, of bestaat uit een heleboel opeenvolgende processen, is niet elk proces een applicatie. Er zijn een heleboel processen die lopen zonder dat je daar als gebruiker rechtstreeks iets van merkt. Je kan dit steeds nakijken, want in elk besturingssysteem zit er wel een hulpmiddel (tooltje) om te visualiseren welke processen er op een gegeven ogenblik aan het lopen zijn. Het zijn deze processen die door het besturingssysteem allemaal beheerd worden. Het besturingssysteem is bijzonder efficiënt in het beheren van verschillende processen zodat het voor de gebruiker lijkt of de computer verschillende taken tegelijkertijd kan uitvoeren. Een processor kan maar één ding tegelijk, maar door de snelheid waarmee het allemaal plaatsvindt, lijkt het een simultaan gebeuren. D.w.z. dat het besturingssysteem verschillende duizenden malen per seconde zijn aandacht aan een ander proces moet wijden. Het volgende gebeurt binnenin de computer : - een proces beslaat een bepaald gebied in de RAM. Het maakt ook gebruik van registers, de stack en van de wachtrijen voor de processor en geheugen - wanneer 2 processen schijnbaar tegelijkertijd moeten uitgevoerd worden, dan wijst het besturingssysteem aan elk van deze processen een zekere processortijd toe. Is de processortijd van het ene proces opgebruikt, dan maakt het besturingssysteem kopies van alle registers, de stack en de wachtrijen en geeft het andere proces wat CPU tijd. Is die tijd opgebruikt, dan worden weer de registers, de stack e.d. bijgehouden en krijgt het eerste proces de CPU-tijd weer enz. Een proces kan zich dus in verschillende toestanden bevinden. Onderstaand schema geeft de verschillende toestanden en de mogelijke overgangen weer :
Besturingssysteem - functies
2
Besturingssystemen – belangrijkste functies.
p. 3
NIEUW | | v KLAAR | | v
KLAAR ------------Æ LOPEND ---ÆBEEINDIGD ^ | | | | | | | ÅÆ WACHTEND Å----------|
ÅÆ
WACHTEND \ \ \-------> SWAP RUIMTE
Dit wil zeggen dat het besturingssysteem allerlei informatie moet bijhouden van de verschillende processen tijdens het over en weer switchen daartussen. Zonder deze informatie zou het besturingssysteem een proces niet correct kunnen herkennen, opvolgen en beheren. Al deze informatie wordt bijgehouden in een zogenaamd Process Control Block. Typische gegevens die we hierin kunnen terugvinden, zijn : -
uniek identificatienummer van dat processor pointers naar de plaats waar het proces zich bevindt inhoud van de registers de status van de controlevlaggen
multiprocessorsystemen : symmetrische / assymetrische 2) beheer van het geheugen Twee belangrijke taken bij geheugenbeheer : - elk proces voldoende geheugen + niet overlappen met geheugen toegewezen aan andere processen - de verschillende types geheugen in het computersysteem zodanig toewijzen en gebruiken dat de processen optimaal afgehandeld worden D.w.z. : geheugengrenzen opleggen.
Besturingssysteem - functies
3
Besturingssystemen – belangrijkste functies.
p. 4
Uitgewerkt voorbeeld : Stel : computer met 1 MB (= 1024 Kilobyte) RAM geheugen. Bij het booten zal het besturingssysteem aan het begin van het RAM gaan staan en er eerst plaats voor zichzelf reserveren. Stel : 300 KB nodig om zelf te kunnen functioneren. 1) Dus : eerste 300 KB kan niet meer gebruikt worden voor andere processen. Enkel het OS opereert in dit gebied. 2) Vervolgens gaat besturingssysteem achteraan in het RAM geheugen staan om er de nodige device drivers in te laden om de hardware te laten functioneren. Stel : 200 KB benomen. Dus :
0 KB
OS software
---------------------------
300 KB
---------------------------
800 KB
Device drivers 1024 KB Er blijft dus nog 500 KB RAM over om toe te wijzen aan allerhande processen die door de gebruiker zelf opgestart worden. Wanneer deze beginnen te lopen, krijgen ze geheugen door het OS toegewezen. Geheugen wordt toegewezen in blokken. Grootte van zo’n blok wordt bepaald door het besturingssysteem. Wanneer het OS bvb een block size van 2 KB hanteert, dan zal geheugen in veelvouden van 2 KB toegewezen worden. De blokken beginnen op de grenzen van 4 of 8 bytes. Een ander woord voor blok is ook een « page » (geheugen-pagina).
CPU
>=
basisAdres
<
geheugen
basisadres + limietadres
Interrupt
Logische vraag : wat als die 500 KB nu ook vol geraakt en er nog processen overschieten zonder voldoende geheugen ?
Besturingssysteem - functies
4
Besturingssystemen – belangrijkste functies.
p. 5
Antwoord : 1) mogelijkheid om RAM uit te breiden 2) veel economischer : aangezien toch maar een deel van het geheugen echt intensief gebruikt wordt, kunnen stukken vrijgegeven worden om andere processen (tijdelijk) een geheugenblok toe te wijzen. De niet-gebruikte gegevens verplaatst het besturingssysteem dan tijdelijk naar een gereserveerd deel van de harde schijf. In dat geval wordt er van virtueel geheugen gesproken. Niet enkel het beheer van RAM en virtueel geheugen valt onder de taken van het besturingssysteem, maar ook het toewijzen van cache geheugen valt daaronder. Het OS moet dus de toestand van die diverse soorten geheugens in het oog houden. Wanneer stukken data verplaatst worden tussen de verschillende soorten geheugen, dan gebeurt dit altijd in een geheel aantal ‘pages’.
3) apparaatbeheer Communicatie tussen processor en alle apparaten die zich niet vast op het moederbord bevinden, moet via een zgn driver. De driver is als het ware de tolk, die electrische signalen vertaalt vanuit de hardware naar bits en bytes waarmee applicaties en de processor werken. Ook de drivers worden beheerd door het OS. Drivers = even fundamenteel voor goede werking computersysteem als OS zelf. Waarom niet in OS opgenomen ? Om onderhoudbaarheid te vergemakkelijken wordt OS losgekoppeld van deze drivers. Het regelen van input van en output naar verschillende apparaten komt voor het OS hoofdzakelijk neer op het beheren van wachtrijen (queues en buffers). Reden : wanneer randapparaat even moet wachten op een ander proces dat even voorrang krijgt om CPU-tijd te gebruiken, moet data die binnenstroomt of naar buiten moet, opgevangen worden. Dit moet transparant voor de gebruiker, vandaar wachtrijen, die volgens FIFO princiepe werken (tegengesteld aan LIFO = last in, first out zoals stack).
Besturingssysteem - functies
5
Besturingssystemen – belangrijkste functies.
p. 6
4) beheer van opslagmedia (file systemen) 4.1 Inleiding Superarchiefkast : om te weten waar alles zich bevindt en informatie over de bestanden bijhoudt (naam, extensie, grootte, …). Een document dat op schijf bewaard wordt, zal niet noodzakelijk één aaneengesloten blok vormen. De vrije geheugenruimte wordt toegewezen in functie van de beschikbare ruimte op een schijf. Hierdoor ontstaat vaak een versnippering van data, waardoor : - stukjes ruimte niet benut worden - het lees- en schrijfproces niet meer optimaal verloopt kwa snelheid Dit verschijnsel wordt fragmentatie genoemd. De remedie is het uitvoeren van een de-fragmentatie tooltje. Let hierbij op : - PC niet gebruiken onder het defragmenteren, zoniet herbegint het proces telkens opnieuw - Virusscanner en screensaver uitschakelen om dezelfde reden - Dik boek in bibliotheek halen om te lezen terwijl je wacht, want dit proces kan lang duren (data moet fysiek verplaatst worden) - Defragmenteer regelmatig om de HD in goede conditie te houden Het bestandssysteem verdeelt de harde schijf in clusters (vgl met groot gebouw met duizenden lokaaltjes). In feite wordt een schijf, die per definitie een circelvorm heeft, in concentrische cirkels verdeeld : dwz in cirkels die parallel met mekaar telkens een kleinere straal hebben tov het middelpunt van die schijf. 4.2. Een aantal bestandssystemen onder de loupe. We beschouwen nu een aantal bestandssystemen die bij MSDOS en Windows en Linux gebruikt werden/worden. 4.2.1) FAT Een besturingssysteem moet vele bestanden manipuleren. Om dit te kunnen doen, moet het weten waar deze terug te vinden zijn (op een (massa)-opslagmedium : harde schijf, USB-stick, diskette, …). Daarvor heeft het besturingssysteem een bestandssysteem (= file system) nodig. Dit file systeem is een soort
Besturingssysteem - functies
6
Besturingssystemen – belangrijkste functies.
p. 7
archiefkast die het mogelijk maakt te weten waar bepaalde files zich op schijf bevinden en hoe ze eruit zien (naam, extentie, grootte, …). Een bestand is niet noodzakelijk een sequentiële opvolging van bits en bytes. Op een schijf zal elke mogelijke ruimte benut worden en daarbij gebeurt het (vaak) dat een bestand in meerdere stukken gehakt dient te worden. Er is dus niet noodzakelijk een één op één verhouding tussen een bestand als logische entiteit en de fysieke voorstelling ervan. Dit verschijnsel van versnippering van bestanden, noemt men fragmentatie. Dit fenomeen zorgt ervoor dat de performantie van de computer erop achteruit gaat. Om daaraan te verhelpen, kan een zgn defragmentatie-hulpmiddel (tooltje) gebruikt worden. FAT staat voor File Allocation Table. Het is het oudste en meest gebruikte file systeem. Er zijn ondertussen wel al verschillende versies van, nl. : FAT 16 en FAT32. 4.2.1.1) FAT 16 Het systeem is ontwikkeld in 1977, toen alleen diskettes nog maar ondersteund werden. Sindsdien is FAT steeds verder verbeterd. Bij MS-DOS 2.0 werd voor het eerst een bestandssysteem geleverd dat ook harde schijven aankon. Een hele doorbraak. De naam van dat systeem was FAT16. Het getal 16 in de naam van FAT16 slaat op het aantal bits waarin een clusternummer kan worden opgeslagen. Hieruit volgt dat er in totaal 216 –2 = 65536 clusters (2-65536) op de schijf aanwezig kunnen zijn, aangezien hogere clusternummers niet meer opgeslagen zouden kunnen worden. Als er op elke harde schijf maar 65536 clusters aanwezig kunnen zijn, is het natuurlijk logisch dat de clusters bij een grote schijf groter moeten zijn dan bij een kleine schijf, anders zou niet alle ruimte benut worden. Het is makkelijk uit te rekenen hoe groot de clusters worden : Schijfgrootte in KB / clustergrootte = 65535 Æ Schijfgrootte in KB / 65535 = clustergrootte
Schijfgrootte 0 MB 128 MB – 255 MB 256 MB – 511 MB 512 MB – 1023 MB 1024 MB – 2047 MB
Besturingssysteem - functies
Clustergrootte 2 KB 4 KB 8 KB 16 KB 32 KB
7
Besturingssystemen – belangrijkste functies.
p. 8
Hierbij wordt de clustergrootte omhoog afgerond naar een macht van twee, dus 2, 4, 8, 16 of 32 (het maximum). De grootste schijf die ondersteund wordt, is dus 65535 * 32 /1024 ^2 = 2GB. Grotere clusters zorgen ervoor dat er veel ruimte verloren gaat. Dit wordt veroorzaakt door het feit dat twee bestanden niet samen één cluster kunnen delen. Is een bestand bijvoorbeeld 3 Kilobyte en de clustergrootte 32 Kilobyte, dan gaat er dus 29 KB verloren. Dit wordt in computertaal « slack » genoemd. Mochten deze clusters kleiner zijn, dan zou er minder ruimte verloren gaan. Bij een clustergrootte van 4 KB zou er immers maar 1 KB slack ontstaan, dit is 29 keer minder. Natuurlijk is dit een extreem voorbeeld, maar het maakt wel een punt zeer duidelijk. Nadeeltje van kleine clusters is dat de performantie van de schijf iets naar beneden gaat, maar de meeste gebruikers zullen hier weinig tot niets van merken. Zeker bij sneller schijven kan je dus in de meeste gevallen beter kleine clusters hebben. 4.2.1.2) FAT 32 Met de komst van Windows 95 OSR2 (OS release 2) kwam de clustergoortte wat meer op de achtergrond. Dit besturingssysteem kon nl ook werken met de opvolger van FAT16 : FAT 32. Het princiepe van dat systeem is grotendeels gelijk aan de voorganger, maar toch zijn er een aantal verschillen : -
-
kleinere clustergroottes o meer bits beschikbaar voor clusternummer o dus meer clusters beschikbaar o hierdoor kunnen ze kleiner zijn o files op FAT32 nemen 20 à 30% minder schijfruimte ondersteuning van harde schijven tot 2 TB (= 2048 GB)
Schijfgrootte 256 MB – 8 GB 8 GB – 16 GB 16 GB – 32 GB 32 GB – 2 TB
Clustergrootte 4 KB 8 KB 16 KB 32 KB
Ook is de tabel uitgebreid, waardoor er nu een backup van bepaalde belangrijke onderdelen beschikbaar is. FAT32 is dus behalve ruimtebesparend ook nog eens foutbestendiger dan z’n voorganger.
Besturingssysteem - functies
8
Besturingssystemen – belangrijkste functies.
p. 9
4.2.2) NTFS Na FAT is NTFS (New Technology File System) waarschijnlijk het meest gebruikte bestandssysteem. Het werd ontwikkeld voor Windows NT en wordt vooral door bedrijven gebruikt. Met de komst van het wat gebruiksvriendelijkere Windows 2000 wordt NTFS nu ook wat meer door particulieren gebruikt. Het systeem neemt meer ruimte in dan FAT, aangezien het meerdere kopies van de MF, de Master File Table bijhoudt om de kans op verlies van gegevens tot een minimum te beperken. De MFT is de tabel waarin alle gegevens zoals plaats, type en grootte van de bestanden op de harde schijf bijgehouden worden. Andere eigenscappen die eigen zijn aan NTFS zijn ot Fixing (automatisch slechte sectoren detecteren en markeren) en een goede performantie bij grote harde schijven. Als laatste heeft NTFS ook nog eens goede security opties. Zo kunnen bestanden of directories versleuteld worden. Het is mogelijk om een FAT systeem te converteren naar een NTFS systeem. Hiervoor zijn er conversietools die bijgeleverd worden bij de NTFS ondersteunende OS zoals Win NT en Win 2000. Hoewel beiden ook kunnen functioneren op een FAT partitie, geeft dit beperkingen : de security opties zullen dan bvb niet benut worden. Vaak wordt een FAT-partitie gebruikt om het OS op te zetten (om in geval van nood toch nog te kunnen opstarten met een ander (ouder, vb DOS) besturingssysteem) en enkel andere partities (met data bvb) van NTFS voorzien. Eens je een FAT-partitie omgezet hebt naar NTFS, kan je niet meer terug. Een OS zoals Win 98 ondersteunt geen NTFS, daar is FAT dus een noodzaak. 4.2.3) Ext2/3 Dit bestandssysteem wordt ook populairder, gezien het bij Linux hoort, dat een relatief groot succes kent. Dit bestandssysteem werd afgeleid van UNIX en is betrouwbaar en snel. Harde schijven tot 2 TB (terrabyte) worden ondersteund. Wanneer je partities beheert in (MS)DOS via de standaardtool FDISK, dan zijn de EXT2 partities onzichtbaar. Je kan ze daar dus ook niet aanmaken of verwijderen. Met meer gevorderde tools, zoals partition magic, lukt dat wel. 4.3. Partitioneren De term partitie is al een paar keren gevallen. Wat houdt dit nu juist in ?
Besturingssysteem - functies
9
Besturingssystemen – belangrijkste functies.
p. 10
Bij elke harde schijf moet je de schijf eerst in partities verdelen. Zelfs indien het bestandssysteem toelaat om de schijf in één geheel aan te spreken, is er minstens één partie. Deze moet alsdusdanig gedefinieerd worden en vervolgens klaargemaakt voor gebruik van dataopslag : door ze te formatteren. Voor andere bestandssystemen kan het zijn dat je noodgedwongen de schijf in meerdere logische delen (met elk hun logische drive-letter) moet verdelen, gewoon omdat het systeem niet in staat is het totale volume data aan te spreken. Er wordt ook een onderscheid gemaakt tussen : - een systeempartitie (van deze partitie kan opgestart (geboot) worden – dus deze bevat het OS (of het belangrijkste stuk) en - een secundaire partitie (voor dataopslag). Redenen om dus te partitioneren : 1. Indien je een schijf die groter is dan 2 GB met FAT16 wil gebruiken, om alle ruimte aan te spreken. Het 16-bits systeem kan immers geen schijven aan boven de 2 GB. Door meerdere partities te maken, kan dit probleem omzeild worden. Ook het bestandssysteem ziet een partitie namelijk als een aparte schijf, zodat je een schijf die groter is dan 2 GB gewoon kan opsplitsen en dan toch alle ruimte kan benutten. Met de opkomst van FAT32 is deze reden verdwenen, aangezien dit nieuwere filesysteem partities tot 2 TB aankan. Dit is voldoende voor de eerste tijd. 2. Ook de 2de reden heeft met het bestandssysteem te maken. Zoals eerder toegelicht, groeit de clustergrootte bij een grotere partitie. Vooral bij FAT16 is hierdoor een hoop ruimte te besparen (door partitionering). Beschouw even volgende situatie : Totale ruimte : 2GB a) 1 partitie i. Clustergrootte = 32 KB ii. Slack is ongeveer 150 MB b) 4 partities i. Clustergrootte = 8 KB ii. Slack is ongeveer 50 MB Door te partitioneren is in het bovenstaande voorbeeld gratis 100MB herwonnen. En dan is de hoeveelheid slack in dit voorbeeld zelfs nog maar een grove schatting. Afhankelijk van het schijfgebruik kan dit verschil zelfs oplopen tot 500 MB (zeer veel kleine bestanden) of juist tot bijna O MB (erg grote bestanden).
Besturingssysteem - functies
10
Besturingssystemen – belangrijkste functies.
p. 11
Ook deze reden is door FAT32 bijna verdrukt, aangezien bij partities tot 8 GB de clustergrootte constant is. Bij schijven boven de 8 GB (steeds actueler) is het toch wel aan te raden om te partitioneren om de grootte van de clusters op 4 KB te houden in plaats van 8 KB. Nadeel is dat de hard disk dan weer een tikje trager wordt door de kleine clusters. 3. De laatste reden is niet zozeer een technische reden, dan wel een logische. 5) verzorgen van een API Device drivers zorgen voor interface met hardware (afschermen van de details). Zo zorgt de API ervoor dat programmeurs de functie van de computer en het OS kunnen gebruiken zonder van A tot Z te weten hoe alles in elkaar zit. Voorbeelden : - functies om bestanden aan te maken en te manipuleren - functies om grafische vensters op te roepen en aan te passen Elk van die functies die door een programmeur wordt aangeroepen, wordt door het OS via die functie-bibliotheek (die de API is) vertaald naar een verzameling van meerdere instructies nodig om de gevraagde taak tot een goed einde te brengen. Zonder API zou de programmeer al die gedetailleerde stappen telkens zelf moeten zetten. Hierdoor zou zijn werk minder efficiënt verlopen (snelheid + groter foutenrisico). 6) communiceren met de gebruiker Er kunnen 2 grote soorten besturingssystemen teruggevonden worden : 6.1) de grafische user interface (GUI) Windows – visuele voorstelling van abstracties van de realiteit : icoontjes voor printers, documenten, … 6.2) de command line interface (shells) DOS, unix (linux) Opdrachten moeten als korte begrippen ingevoerd worden en na bevestiging vanwege de gebruiker (druk op enter of return meestal) geïnterpreteerd worden door het OS.
Besturingssysteem - functies
11