Hoofdstuk 1: Computers
Werking van een computer
Wat is een computer
Een precieze definitie van computers opstellen is een hele uitdaging. Door de snelle evolutie is het begrip computers heel moeilijk te omschrijving. Een computer op zich is een eenvoudig apparaat. Het voert instructies uit, die wij hem leveren. We moeten als gebruiker de computer zeggen wat hij moet doen. We moeten dus opdrachten of instructies geven. Bovendien kunnen we niet zomaar opdrachten geven, we moeten opdrachten geven in een taal dat de computer kan begrijpen.
Een computer is een elektronisch apparaat dat gegevens verwerkt, opslaat en verwerkt.
De computer is, wat we noemen, programmeerbaar. Het stelt de gebruiker in staat om allerlei soorten informatie of gegevens op te slaan deze te verwerken.
Een computer is dus een apparaat dat via instructies bewerking op informatie kan uitvoeren. Deze informatie is ingevoerd via invoerapparaten en wordt opgeslagen of uitgevoerd naar uitvoerapparaten.
Instructies en algoritmes
Je zie dat een instructie geen rekening houdt met de moeilijkheidsgraad. Intuitief kan je denken dat het berekenen van een integraal moeilijker zal zijn dan een optelling. Dat is ook zo. Een computer zal een langer tijd nodig hebben om een integraal te berekenen dan een "simpele" optelling
Bovendien zijn instructies heel ruim. Je kan de computer de opdracht geven om een integraal van te berekenen op voorwaarde dat de computer weet hoe hij een integraal van het type kan berekenen. Je moet dergelijke instructies nog verder onderverdelen in kleinere gemakkelijkere instructies. Het berekenen van een complexe functie zal bestaan uit een set van eenvoudige instructies. Soms kan dit heel kort zijn, maar meestal zijn dergelijke instructies heel lang.
Algoritme een opeenvolging van instructies om een bepaalde bewerking uit te voeren
De set van instructies om een bepaalde bewerking uit te voeren noemen we een {\bf algoritme}. We kunnen aan de computers verschillende algoritmes aanleren zodat de computer het algoritme kan uitvoeren. Het is aan de gebruiker (wij dus) om die algoritmes goed te ontwerpen zodat de bewerkingen goed worden uitgevoerd door de computer. Dit noemen we het {\bf programmeren} van een computer.
Voorstelling van informatie
Een computer bevat niet de nodige capaciteit om complexe informatie zoals wij die kennen te kunnen opslaan. We moeten de elementen van de informatie weergeven door geen code. Die wordt gevormd door symbolen. Bijvoorbeeld:
- Het Westers alfabet bestaat uit 26 afgesproken tekens, van A naar Z
- Het Japans en Chinees bestaat uit meer dan duizend tekens
- Voor het weergeven van numerieke waarden, gebruiken we reeksen getallen, samengesteld uit cijfers van 0 tot 9
Het decimaal getallenstelsel
In dat laatste geval, gebruiken we het tiendelig of decimaal talstelsel. We noemen dit dus zo, omdat het stelsel 10 verschillende symbolen telt. Dat aantal verschillende symbolen, noemen we het grondtal (of radix) van het talstelsel. Voor het decimaal talstelsel is dat grondtal dus 10. Dat betekent dat de plaats voor ŽŽn symbool 10 verschillende waarden bevatten.
De waarde van een cijfer in een getal, wordt niet enkel bepaald door zijn eigen waarde, maar ook door de plaats van dat cijfer in het getal. De plaatswaarden in het decimaal talstelsel worden eenheden, tientallen, honderdtallen, duizendtallen, enz. genoemd. Niet toevallig worden die waarden gevormd door een machtsverheffing van het grondtal van het tiendelig stelsel (10), waarbij de exponent de plaatswaarde + 1 in het getal voorstelt :
Bijvoorbeeld het getal 3041 kunnen we als volgt voorstellen:
Dit lijkt allemaal heel erg logisch voor een decimaal talstelsel, omdat we als kind al in dit stelsel hebben leren tellen. We kunnen hetzelfde principe ook toepassen in andere talstelsels, en dan wordt het heel wat makkelijker om ook daarmee te werken.
Nood voor andere getallensystemen
Mensen zijn gewend aan het decimaal getallensysteem, het is het systeem waarmee we als kind hebben leren werken. Echter in computers worden getallen opgeslaan met behulp van 2 cijfers (in plaats van 10). Elk getal in een computer kan maar gebruik maken van 2 symbolen, die we aanduiden als 0
of 1
.
Vroeger waren getallen in computers te overzichtelijk. Veel computers werkten met 8 opeenvolgende cijfers van 0
of 1
. Maar tegenwoordig zijn er computers die werken met 128 cijfers en dat maakt het onoverzichtelijk. Daarom wordt veel het hexadecimaal getallenstelsel gebruikt. Dit zie veel in IP addressen. Geen enkele computer zal informatie opslaan in het hexadecimaal getallenstelsel. Dit is enkel maar voor het gemak.
Het binair getallenstelsel
Vanuit de geschiedenis bestaat een computer uit vele kleine schakelaars, kabels die met elkaar interageren. Schakelaars kunnen slechts 2 standen aannemen: aan of uit. Daarom gaan we wat dieper in op het binair getallensysteem.
In het binair of tweedelig talstelsel is het grondtal 2. Het vormt de basis voor de werking van computers, waar de kleinste eenheid van informatie een bit is. Een bit kan slechts 2 waarden te bewaren : 1 of 0.
Het optellen in het binair getallensysteem is dan anders, maar . Dit gelijkaardig aan het optellen in het tiendelig getallenstelsel waarbij .
De getallen in het tiendelig getallenstelsel kunnen dus voorgesteld worden in het binair getallenstelsel, door gewoon telkens 1 optellen ook wel incrementeren genoemd
Wat meteen opvalt is dat even getallen bij de binaire voorstelling altijd een 0 hebben als laatste getal, en oneven altijd een 1. Bovendien zien we als we de reeks bekijken zien we dat dit overeen komt met . Bij een verdubbeling () schuift de reeks 0'en en 1'en één plaats naar links op en wordt een nul geplaatst als laatste getal. Controleer dit met en .
Het laatste bit aan de linkerkant stelt de grootste macht van 2 voor en noemen we het meest significante bit. Het laatste bit aan de rechterkant, stelt de kleinste macht van 2 (nl. ) voor en noemen we het minst significante bit.
Een binair geschreven waarde is moeilijk om te lezen. Meestal moeten we deze omzetten naar een decimaal geschreven waarde, omdat we nu eenmaal meer gewoon zijn om in het decimaal getallenstelsel te werken.
Algoritme voor de conversie van een binair getal naar decimaal getal
1. Nummer de cijfers van het binair getal van rechts naar links startend vanaf 0 en in stijgende volgorde
2. Initialiseer een variabele som op 0
3. Ga van rechts naar links
1. neem het cijfer (0 of 1) en vermenigvuldig dit met {% math %}2^nummering{% endmath %}
2. tel het resultaat op bij som
4. Het decimaal getal is gelijk aan de uiteindelijke waarde van som
Bijvoorbeeld de duid aan dat het getal in het binair getallenstelsel wordt voor gesteld, de het decimaal:
Algoritme voor de conversie van een decimaal getal naar binair getal
1. Deel de waarde door twee en schrijf de rest op
2. Als het resultaat verschillend is van nul, herhaal stap 1, anders ga naar stap 3
3. De binaire representatie is de opeenvolging van de opgeschreven rest in omgekeerde volgorde
Binaire optelling. Het principe van optellen en aftrekken in het binair talstelsel is precies hetzelfde als in het decimaal talstelsel, alleen is het aantal symbolen beperkt tot 1 en 0.
Wanneer je de laagste plaatswaarden wil optellen, tel je 1 + 1 op. Aangezien 1 de hoogste waarde is in het binair talstelsel, wordt het resultaat van die optelling 10. Je noteert de 0, en je onthoudt de 1 op de volgende plaatswaarde.
Het hexadecimaal getallenstelsel
In het hexadecimaal getallensysteem worden 16 symbolen gebruikt om getallen weer te geven. Traditioneel kennen we maar 10 "cijfers" dus moeten we er nog 6 bijnemen. Deze zes worden aangeduid door letters a
,b
,c
,d
,e
,f
.
Het hexadecimaal systeem is een basis-16 getallensysteem. Dat betekent dat er 16 mogelijk cijfers zijn om getallen voor te stellen.
Decimaal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Hexadecimaal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Voorbeelden van hexadecimale getallen zijn:
Het belangrijkste voordeel van het hexadecimaal getallenstelsel is de relatie van de getallen 2 en 16. 16 is gelijk aan . Dankzij deze relatie kunnen 4 cijfers in het binaire getallensysteem voorgesteld worden als één hexadecimaal getallen systeem. Dit maakt de conversie tussen binair en hexadecimale getallen gemakkelijk. Het hexadecimaal getallenstelsen wordt gebruikt om binaire getallen te schrijven.
Conversie van een binair nummer naar een hexadecimaal nummer.
1. Verdeel in groepjes van 4 cijfers (startend van rechts)
2. Converteer elke groepje naar een hexadecimaal getal volgens bovenstaande tabel
Voorbeeld: converteer het getal 10110101
- Verdeel:
1011 0101
- Converteer:
B 5
- Resultaat:
Voorbeeld: Converteer 11001110000110
- Verdeel:
(00)11 0011 1000 0110
- Converteer:
6 B 8 C
- Resultaat
Converteer een hexadecimaal getal naar binair
Voorbeeld: Converteer het hexadecimaal getal naar binair
Resultaat:
Onderdelen van een computer
Een computer bestaat uit de volgende belangrijkste hardware componenten:
- Een centrale verwerkingseenheid (Eng. Central Processing Unit of CPU)
- Geheugen
- Opslagapparaten (zoals een harde schijf, USB-stick of DVD)
- Invoerapparaten (zoals een muis of een toetsenbord)
- Uitvoerapparaten (zoals een scherm of een printer)
- Communicatieapparaten (zoals een modem, netwerkkaart)
De componenten van een computer zijn verbonden met een onderdeel die we een bus noemen. Je kan de bus zien als een soort van verbindingen waar de gegevens rond gestuurd worden tussen de verschillende apparaten. In PC's en laptops is deze bus ingebouwd in het moederbord van de computer.
De centrale verwerkingseenheid (CPU)
De centrale verwerkingseenheid (CPU) kunnen beschouwd worden als de hersenen van de computer. Het ontvangt instructies vanuit het geheugen en voert ze uit. De CPU heeft 2 componenten: een controle eenheid en een aritmetische-logische eenheid. De controle eenheid controleert en coördineert de taken van een CPU. De aritmetische-logische eenheid (ALU - Arithmetic/logic unit) voert de numerieke bewerkingen uit (optelling, aftrekking, vermenigvuldiging en deling) en logische bewerkingen (vergelijkingen, "kleiner dan",...).
Tegenwoordig worden CPU's gebouwd op silicium halfgeleiderchips die uit miljoenen kleine elektronische schakelingen bestaan, ook wel transistoren genoemd. Elke computer heeft een interne klok dat elektronische pulsen uitstuurt volgens een constant ritme. Deze pulsen worden gebruikt om de instructies te controleren en de operaties van de CPU te synchroniseren. Een hogere kloksnelheid laat toe om sneller instructies te verwerken. De eenheid van kloksnelheid is uitgedrukt in hertz (Hz), met 1 pulsje per seconde. In de jaren 1990 was de kloksnelheid in de orde van megahertz (MHz), maar de kloksnelheid is verbeterd door de jaren heen. De kloksnelheid van een huidige computer wordt nu meestel uitgedrukt in gigahertz (GHz). De nieuwste processoren van Intel draaien op 3 GHz.
Oorspronkelijk bestonden CPU uit één kern. De kern (Eng. core) is een deel van een processor dat de instructies leest, decodeert en uitvoert. Om de snelheid van de verwerking te vergroten hebben fabricanten van CPUs meerdere kernen in een CPU gestoken. Een dergelijk multicore CPU is een component dat bestaat uit meerdere kernen. Huidige CPUs hebben typisch twee, drie of zelfs vier kernen. In de nabije toekomst zullen CPUs met 12 of zelfs honderen kernen betaalbaar zijn.
Bits en Bytes
Een computer is niets meer dan een gigantische hoeveelheid schakelaars. Elke schakelaar kan in 2 toestanden zijn: aan of uit. Het opslaan van informatie komt erop neer dat deze schakelaartjes aan of uit gezet worden. Als de schakelaar uit is, dan refereren we dit als een 0 en als de schakelaar aan staat dan refereren we dit als een 1. Deze 0'en en 1'en worden beschouwd als de cijfers in het binair getallensysteem en worden ook bits genoemd (van "binary digits"). De minimale eenheid van opslag is de byte en is een binair getal van 8 bits. Een klein getal zoals de waarde 3 kan opgeslaan worden in een enkele byte. Voor een grotere waarden en voor complexere gegevens zijn meerdere bytes nodig.
Gegevens komen in elke vorm voor: getallen, tekens,... Deze worden geëncodeerd in een reeks bytes. Als programmeur hoeven we ons geen zorgen te maeken over de encodering en de decodering, dit doet een computer automatisch. Dit gaat volgens een encoderingsschema en dit is een set van regels die een computer vertelt hoe tekens, getallen, en symbolen opgeslaan worden als bytes. Een populair encoderingsschema is de ASCII encodering, hier wordt het teken "c" voorgesteld door de byte "01000011".
De opslagcapaciteit van een computer wordt gemeten in bytes en veelvouden van bytes als volgt:
- Een kilobyte (KB) is 1024 bytes (=$2^10$)
- Een megabyte (MB) is 1048000 bytes (=$2^10*2^10=2^20$)
- Een gigabyte (GB) is ongeveer 1 miljard bytes ($=2^30$)
- Een terabyte (TB) is ongeveer 1 biljard bytes ($=2^40$)
Een typisch word document van één pagina is 20 KB. Een 2-uur durende hoge resolutie file kan tot 8 GB plaats innemen.
Geheugen
Het geheugen van een computer bestaat uit een geordende sequentie van bytes waar zowel progamma's als gegevens in opgeslaan worden. Het geheugen is de werkruimte van de computer. Een programma en zijn gegevens moeten in het geheugen zitten vooralleer het programma kan uitgevoerd worden. Naar analogie kan je het geheugen van een computer voorstellen als het kladblad wanneer de computer berekeningen moet uitvoeren. Wij nemen soms ook een kladblad om tussenresultaten/berekeningen op te schrijven. Als de computer uitgezet wordt, dan wordt het geheugen gewist en zijn we die tussenresultaten kwijt.
Werking van geheugen
Elke byte in een geheugen heeft een uniek adres. Het adres wordt gebruikt de geheugenplaats de localiseren zodat we op die plaats gegevens kunnen opslaan of ophalen.
Vroeger was het zo dat de gegevens (getallen, tekst,...) en de instructies (optellen,...) door elkaar stond. Dit was enorm complex en voor elke nieuwe instructieset (nieuwere CPU) moest de infrastructuur verandert worden. Reeds heel vroeg in de ontwikkeling van de computer, heeft men de instructies en de gegevens gescheiden gehouden. Dit heeft een typische naam, de Harvardarchitectuur.
Intern geheugen
Intern geheugen is snel geheugen dat direct aanspreekbaar is door de CPU. De CPU kan het gegevens uit het geheugen halen in een willekeurige volgorde en hoeft niet sequentieel te beginnen van het begin (zoals vroeger het geval was, e.g. een platenspeler). Het nadeel van dergelijk geheugen is dat bij de meeste geheugens de gegevens verloren gaan als ze computer uitstaat en de geheugens niet meer gevoed worden door een spanning. De uitzondering hierop is ROM-geheugen, maar dit is duur.
Er zijn verschillende soorten geheugen die intern in de computer zitten:
- Registers. In de CPU zelf zitten ook wat geheugen, die men registers noemt. Dit zijn zeer snelle geheugens die heel dicht bij de ALU zitten. Deze registers kunnen direct aangesproken worden door de ALU. De grootte van de registers geeft een indicatie van de hoeveelheid gegevens die verwerkt kan worden op een gegeven tijdstip. 32-bit processors bevatten registers die 32-bit (of 4 bytes) groot zijn. 64-bit computers hebben registers die 64-bit groot zijn. Tegenwoordig zijn alle CPUs 64-bit, en verwerken ze de gegevens 2 keer zo snel als 32-bit processors.
- ROM. Bij geheugen chips die de gegevens permanent bewaren, zijn de gegevens in de chip ``gebrand''. Gegevens kunnen dus enkel uit de chip gelezen worden. We noemen deze dan ook Read-Only Memory (ROM). Sommige chips kunnen (weliswaar beperkt) geprogrammeerd worden: Programmable ROM of PROM.
- RAM . Tijdens het opstarten wordt software geladen die de gebruiker in staat stelt om het toetsenbord en de muis te gebruiken. Daarnaast kan de gebruiker zien wat hij doet via een beeldscherm. Dit alles wordt beschreven in een verzameling van programma's die we het besturingssysteem noemen. Besturingssytemen zijn zowel nodig voor PC als voor draagbare smartphones. Voorbeelden van besturingssystemen zijn Windows, Mac OS X, iOS, Android,... Deze programma's worden in een geheugen geladen die we RAM geheugen noemen. RAM staat voor Random Access Memory en duidt op het feit dat de CPU om het even welk moment een bepaald deel van dat geheugen kan opvragen. Want je gebruikt niet altijd het geluid, maar het moet er wel zijn als je het gebruikt. Op dat moment worden de instructies voor het afspelen van geluid uit het geheugen gehaald en uitgevoerd door de CPU. Bij het opstarten van een programma wordt een set van instructies in het geheugen geladen zodat de gebruiker dat programma kan gebruiken. Hiervoor hoeft hij niet de volledige functionaliteit van het programma gebruiken, maar het is wel ingeladen mocht hij het nodig hebben.
- Cachegeheugen. Gegevens verplaatsen de CPU naar het niet-permanent geheugen en omgekeerd is een van de meest tijdrovende bewerkingen. Dit komt omdat het RAM geheugen veel trager is dan de CPU. Een oplossing hiervoor is om een cachegeheugen te gebruiken. Dit is een tijdelijk geheugen dat sneller is dan het RAM geheugen en dat vaak opgevraagde gegevens gedurende een beperkte tijd ergens worden bewaard, met de bedoeling ze voor een volgende keer sneller toegankelijk te maken. Zo kan je internetbrowser de laatst bezochte webpagina\D5s in een tijdelijke map op je harde schijf opslaan. Bij een volgend bezoek aan zo\D5n pagina wordt deze uit die map van je harde schijf gehaald, wat heel wat sneller gaat dan ze opnieuw op het internet te gaan zoeken. Dit principe noemt men caching. Het cachegeheugen zelf is een soort van RAM (Statische RAM).
Extern Geheugen - Opslag
Extern geheugen heeft als doel gegevens te bewaren zelfs als de computer uitgeschakeld is. De fysische materialen waarop de gegevens worden opgestaan noemen we het opslagmedium. De hardwarecomponenten om de opslagmedia te gebruiken noemen opslagapparaten.
Er zijn drie categorieën van opslagmedia: magnetische opslag, optische opslag en solid-state opslag (halfgeleideropslag).
Magnetische opslag. De meeste computers zijn nog altijd uitgerust met een harde schijf. Harde schijven zijn schijfjes die bekleed zijn met een zeer dunne plastic film met daarin zeer kleine metaaldeeltjes met magnetische eigenschappen. Wanneer een sterke magneet over het oppervlakte bewogen wordt, krijgt de zone onder de magneet een plus- en minpool. Magneetschijven hebben de eigenschap deze magnetische oriëntatie te behouden, ook als de magneet wordt weggenomen. Op deze manier kan je bit (0 of 1) op een schijf bewaren.
Een harde schijf bestaat uit een stapeltje van 6 tot 8 lichtmetalen (aluminium) schijven - ook platters genoemd - met een diameter van ongeveer 9 cm en bekleed met een zeer dunne magnetische film (TFM ofwel Thin Film Media). Ze zijn in tegenstelling met diskettes niet soepel maar hard (vandaar de naam). De sporen die loodrecht boven elkaar liggen op de verschillende platters, worden samen cilinders genoemd. Er zijn dus evenveel cilinders in een harde schijf als er sporen zijn op een schijfoppervlak. Harde schijven voor laptops zijn kleiner van omvang - een diameter van slechts een goeie 6 cm - en beschikken over slechts 2 of 3 platters.
Optische opslag. Deze manier maakt gebruik van de reflectie van optische signalen. De meest gebruikte vorm van opslag is de CD en de DVD:
- CD: Compact Disk
- DVD: Digital Versatile Disk
Een CD of DVD is een kunststof schijfje (polycarbonaat) met een diameter van ongeveer 12 cm en een dikte van 1,2 mm, waarop een dunne registratielaag, vervaardigd uit een metaallegering, werd aangebracht. Daar overheen wordt een beschermend plastic filmpje aangebracht. Bij DVD's worden twee lagen over elkaar aangelegd, waardoor er veel meer gegevens op een DVD-schijfje kunnen dan op een CD. Bovendien kunnen DVD's aan beide zijden gegevens bevatten, terwijl dat bij CD's maar op één zijde kan. Per laag en per zijde kan 4,7 GB aan gegegens bewaard worden.
Solid-state opslag. De mechanische beweging maken magnetische en optisch opslag heel breekbaar voor schokken. Een nieuwe soort opslag komt vanuit solid-state geheugen. Flash geheugen is een vorm van elektromagnetische gegevensopslag, en is tegenwoordig erg populair. Ze kent zowel toepassingen in het systeemgeheugen van moderne computers (denk maar aan Flash ROM) als in de permanente en uitwisselbare gegevensopslag. In dit hoofdstuk interesseert ons uiteraard vooral dat laatste. We vinden Flash geheugen : In de geheugenkaartjes van digitale fototoestellen In kleine, draagbare memory sticks, die meestal met een USB-aansluiting met eender welke computer kunnen worden verbonden. Als uitbreidingen van harde schijven voor laptops en PDA's. Als gegevensdrager in draagbare apparaten, zoals MP3-spelers.
Vooral de memory-sticks worden hoe langer hoe meer populair. Ontwerpers kijken daarbij niet alleen naar de technische capaciteiten, maar ook naar de vorm : sommige USB-sticks zijn pareltjes van design, en voor sommigen is dat een argument voor de aankoop. Andere worden dan weer ge\"integreerd in alledaagse gebruiksvoorwerpen, zoals sleutelhangers en zelfs horloges.
Solid-state harde schijven of SSDs kennen de laatste jaren een enorme opmars. Een van de voordelen is dat wanneer je computer in stand-by modus wordt gezet (bij laptops gebeurt dat automatisch na enkele minuten inactiviteit), de actieve instellingen, gegevens en programma's naar het solid state geheugen worden weggeschreven. Wanneer je de computer weer activeert, zijn die gegevens onmiddellijk beschikbaar. Een computer die in stand-by staat weer activeren duurt bij hybride drives (of bij echte SDD's) slechts fracties van seconden, daar waar dat bij klassieke schijven nog enkele tientallen seconden kan duren. SSD-schijven beloven veel voor de toekomst, en zouden de klassieke harde schijven wel eens kunnen vervangen. Maar het zal nog jaren duren vooraleer men erin slaagt om flash-schijven met even grote capaciteiten (1 TB en meer) te produceren aan een aanvaardbare prijs. Tot zolang vinden we SSD-schijven voorlopig enkel terug in de (dure) topmodellen van zakelijke laptops en mini-notebooks. De hegemonie van de klassieke, magnetische harde schijf is voorlopig dus nog ontaantastbaar.
De wet van Moore
De computerindustrie ontwikkelt zich sneller dan elke andere industrie. De voornaamste kracht hierachter is dat chipfabrikanten elke jaar meer transistoren op een chip weten te zetten. Meer transitoren - kleine elektronische schakelaars - betekent grotere geheugens, snellere verwerking. Gordon Moore, medeoprichter en voormalig CEO van Intel, merkte op dat elke nieuwe generatie geheugenchips drie jaar na de vorige werd gelanceerd. Omdat elke generatie 4 keer zoveel geheugen had dan de voorgaande, kwam hij tot de conclusie dat het aantal transistoren met een constante snelheid toenam en hij voorspelde dat deze groei in de komende decennia zou doorgaan. Deze regel staat bekend als de wet van Moore.
De wet van Moore is een empirische observatie van de snelheid waarmee natuurkundigen en ingenieurs vooruit komen. Veel analisten verwachten immers dat deze wet nog een tiental-jaar blijft gelden. De wet van Moore heeft geleid tot wat economen wel een virtueuze cirkel (tegengestelde van een vicieuze cirkel die naar ongewenste situaties convergeert) noemen. De vooruitgang in de technologie leidt tot betere producten en lagere prijzen. Lagere prijzen leiden tot nieuwe toepassingen (toen een computer 10 miljoen dollar kostte, ontwierp niemand computerspelletjes). Nieuwe toepassingen leiden tot nieuwe markten en tot nieuwe bedrijven. Het bestaan van deze bedrijven leidt tot concurrentie, die weer leidt tot een economische vraag naar betere technologie\"en om de anderen voor te blijven. Daarmee is de cirkel rond.
Een gelijkaardige wet die eveneens gebaseerd is op observaties is de wet van Kryder, die eveneens zegt dat voor een gelijke kost (prijs) men een hard disk kan kopen die om de twee jaar verdubbeld. De IBM PC/XT bevatte in 1982 een harde schijf van 10 MByte. Twintig jaar later waren harde schijfven in PCs van 100 GByte heel gewoon.
In het begin van PCs gebruikte men tekstverwerkingsprogramma's (troff) die enkele kilobytes groot waren. Nu nemen dergelijke programma's enkele honderden megabytes in beslag. Software die steeds meer functies krijgt cre\"eert een voortdurende vraag naar snellere processors, groter geheugen en meer Invoer/Uitvoer capaciteit.
Invoer- en Uitvoerapparaten
Achteraan op een computer kun je heel wat verschillende aansluitingen vinden. We bespreken er de voornaamste van. Deze aansluitingen vormen de verbinding van de computer met tal van randapparaten, en worden ook poorten genoemd. De verbinding tussen de poort en de processor van de computer, gebeurt door middel van een zgn. controller. Dat is een chip op het moederbord, die de signalen van en naar het randapparaat omzet naar zinvolle signalen voor de processor. De fysieke connector van een poort is altijd ofwel mannelijk ofwel vrouwelijk. Een mannelijke connector is die met de pinnetjes (bijvoorbeeld de seriële poort), de vrouwelijke is die met de gaatjes (bijvoorbeeld de USB poort).
Het toetsenbord
In sommige gevallen zal het programma vragen naar invoer van de gebruiker. Het toetsenbord is een apparaat die aan een computer wordt aangesloten (of reeds is aangesloten) om tekens in te voeren. Deze tekstuele invoer kan dan gebruikt worden verder in het programma. Op deze manier kunnen we een heel interactief programma maken voor mensen die niet geschoold zijn als programmeur of laat het gemakkelijke gebruikersinteractie toe.
Een toetsenbord was één van de eerste manieren om tekst in te voeren. Vóór de komst van het toetsen bord werden de 1'tjes en 0'tjes die in de tekens voorstellen, handmatig ingevoerd via schakelaars. Dat was een omslachtige manier dat heel onderhevig was aan fouten. Bij een toetsaanslag worden een hele reeks 0'en en 1'en doorgestuurd, zodat de computer direct weet welke letter hij krijgt.
Een toetsenbord is normaal ontworpen dat veel voorkkomende letters dicht bij elkaar staan en afwisselend genoeg zodat elke vinger bij de letter kan. Sommige toetsenborden zijn ontworpen om heel snelle toetsaanslagen te kunnen doen en snel ook te kunnen typen. Natuurlijk is deze manier heel afhankelijk van de taal. Vandaar dat de layout van een toetsenbord anders is bij een andere taal.
De muis
Een ander soort invoerapparaat is een muis. In deze vorm wordt een aanwijzer getoond op het scherm en kan deze aanwijzer verplaatsen via een beweging van de muis. Vroeger bestond een muis uit een balletje met rotatiesensoren, maar nu wordt gebruik gemaakt van laser en optische camera's om de beweging te registreren.
De aanwijzer geeft typisch een coördinaat op het scherm. Deze coördinaat geeft dus aan waar de muisaanwijzer is. Door op de muis te klikken kan je een opdracht geven aan de computer die overeenkomt met een locatie van de muisaanwijzer (bv. gebeurtenis als er op de OK-knop wordt geklikt).
Andere dergelijke soort invoerapparaten zijn er ook, zoals touchscreens, schrijftablets,... Ze werken op hetzelfde principe van een coördinaat en het uitvoeren van een stukje code als er op die lokatie op een knop geklikt wordt.
De monitor
Een ander type apparaat is het uitvoerapparaat. Op deze manier kan de gebruiker op een visuele manier een aanduiding krijgen van wat er in de computer gebeurt. Enerzijds kan je resultaten van een algoritme tonen. Op deze manier kan je weten indien de berekening wel correct gebeurt. Deze vorm van het tonen van tussenresultaten is een manier om de code te controleren. In programmeertermen wordt dit ook wel debuggen genoemd.
Anderzijds kan je aan de gebruiker feedback geven indien de invoer wel correct gebeurt is. Als je via een toetsenbord iets hebt ingetypt, dan kan je dit op het scherm tonen. Op deze manier weet de gebruiker dat hetgeen hij heeft ingetypt overeenkomt met wat hij wilde intypen.
Andere uitvoerapparaten die op een gelijkaardig principe werken zijn printers of projectoren.
Communicatieapparaten
De laatste tien jaar heeft een ander soort van randapparaten sterk aan belang gewonnen. Communicatie tussen computers zonder directe interactie van de gebruiker is vandaag de dag niet meer weg te denken. De uitwisseling van informatie tussen computers gebeurt via computernetwerken. Het bekenste netwerk dat er bestaat is het internet. Een computer of laptop heeft tegenwoordig verschillende manieren om verbonden te zijn met het internet of met andere apparaten. Via een ethernetkabel in de ethernetpoort is het mogelijk om via een kabel verbonden te zijn met het internet. Een WiFi netwerkkaart in je computer of laptop maakt het mogelijk om draadloos via het internet verbonden te zijn. Veel computers hebben ook een Bluetooth module waardoor je draadloos met randapparaten of andere computers kan verbinden.
Oefeningen
Converteer volgende binaire getallen naar het decimaal getallenstelsel
Converteer de volgende decimale getallen naar binaire schrijfwijze
Converteer de volgende decimale getallen naar hexadecimaal
Wanneer je een onopgemaakte tekst bewaart, zal voor elk teken precies ŽŽn byte worden gebruikt. Probeer het volgende maar eens uit :
- Open een leeg document in Kladblok.
- Typ je naam in. Tel alle tekens (een spatie isook een teken!)
- Bewaar het document met als naam "MijnNaam.txt0".
- Klik met de rechtermuisknop op het bestand, en kies "Eigenschappen" uit hetmenu. Je zal merken dat het bestand net evenveel bytes telt als het aantal tekens dat het bevat