HOOFDSTUK 1. Computersystemen, algoritmes en software (p. 23)
1. Inleiding
• Computers en de software die ze uitvoeren vormen de motor van de digitale revolutie/transformatie die
momenteel in onze samenleving aan de gang is en die impact heeft op al wat we doen
2. Computersystemen
De digitale transformatie
• Vooruitgang in ICT veroorzaakt digitale transformatie in onze samenleving
• Impact op onze manier van leven, wonen en werken
o Digitaal verwerken van data en documenten
o Digitaliseren van de processen in bedrijven en organisaties
o Digitalisering van de samenleving zelf
▪ Die volledig gedigitaliseerde vorm van samenleving werd door Nicolas Negroponte (MIT)
de “digitaliteit” genoemd
• Impact is
o Sociaal-economisch
o Mentaal-cultureel
➢ deze digitale transformatie impliceert dat veel processen die vroeger fysiek werden
uitgevoerd, nu digitaal worden uitgevoerd; dat heeft niet alleen sociaaleconomisch een
grote impact, maar het kan de bestaande markt grondig omgooien (bv. resulteren in
enkele andere economische spelers die voortaan de markt gaan domineren) en vergt
ook mentaal-cultureel een grote omslag van mensen
➢ MAAR voordelen (economisch efficiënter, data en informatie overal en altijd bereikbaar
en makkelijk deelbaar met meerdere personen, geen paper en stockage noch bijhorend
transport, …) wegen op tegen nadelen, en zeker jongeren leven volop in deze digitaliteit
➢ digitale transformatie wordt mogelijk gemaakt door enorme vooruitgang in de
informatie- en communicatietechnologie (ICT), zowel inzake ICT-hardware (computers
en netwerken) als ICT-software
Computers
• Digitale transformatie wordt gedragen door computers (hardware én software) die via netwerken
(wereldwijd) verbonden zijn
o Is de computer de belangrijkste uitvinding van de 20ste eeuw, zoniet de belangrijkste uitvinding
uit de hele geschiedenis van de mensheid (tot op heden)?
• Computer is fundamenteel verschillend van andere apparaten, machines, of technische hulpmiddelen,
omdat computers programmeerbare machines zijn om berekeningen te maken (!)
➢ Computers is via software programmeerbaar voor meerdere toepassen (>< bv. broodrooster die
alleen kan worden gebruikt om brood te roosteren en fiets om te fietsen)
➢ Een computer = een hardwaremachine om berekeningen uit te voeren, die met software
programmeerbaar is om op dezelfde machine meerdere programma’s te kunnen uitvoeren; het
is een apparaat waarmee gegevens (data) volgens formele procedures (algoritmes)
verwerkt/bewerkt knn worden om tot het gewenste resultaat te komen
,• Evolutie van computers
➢ Eerste programmeerbare rekenmachines of
computers werden al in 19e eeuw ontwikkeld,
zij met behulp van mechanische componenten;
pas in 20e eeuw werden elektronische
componenten gebruikt: eerst elektronenbuizen,
dan halfgeleidercomponenten (of transistoren)
o Met doorbraak van elektronica werd
computer betrouwbaarder en krachtiger
➢ WOII en Koude Oorlog waren grote drijfveren om almaar krachtigere
computers te bouwen (bv. om code te kraken waarmee de vijand
boodschappen versleutelde, of om ballistische trajecten van
raketten te berekenen)
➢ Eerste elektronische computers met elektronenbuizen waren niet
alleen groot, maar verbruikten ook veel vermogen en waren weinig Computerhardware
bedrijfszeker; deze nadelen verbeterden sterk met de komst van de halfgeleidertransistor die in
1947 werd uitgevonden (first transistor @Bell Labs); zeker met de ontwikkeling van de
geïntegreerde schakeling (chip of IC) en CMOS-halfgeleidertechnologie werd het mogelijk om
snellere en betrouwbare computers te maken die minder vermogen verbruikten
➢ Ten gevolgde van de almaar verdergaande schaalverkleining van transistoren gebruikt in de
CMOS-halfgeleidertechnologie werden computers almaar kleiner én tegelijk krachtiger in
rekenkracht
➢ Dat leidde tot de ontwikkeling van de persoonlijke computer en later laptop, netbook en tablet;
tegelijk ontstonden de eerste bedrijven die software aanboden als product (bv. Microsoft);
andere softwarebedrijven zoals Oracle en Adobe volgden met nog andere softwaretoepassingen
➢ Naast commerciële producten ontstonden er parallel ook openbronversies van
besturingssystemen en van softwareapplicaties
➢ Naarmate computers krachtiger werden en via het internet genetwerkt werden, werden ook
meer en meer softwarefirma’s met nieuwe diensten en softwaretoepassingen opgericht (bv.
Amazon, Netflix, Google, Facebook)
• Von Neumann-computerachitectuur
o 1945: First draft of report on the EDVAC (computer was aanvankelijk bedoeld voor berekeningen
van trajecten van ballistische raketten)
o Beschrijft een architectuur voor werkende computer, zoals we die vandaag nog steeds kennen
o Hardware hiervoor is (micro)electronica
o Basisarchitectuur voor alle klassieke computers
▪ Zeer geschikt voor berekeningen maar niet voor cognitieve taken
▪ Zowel het programma als de data worden opgeslagen in het geheugen
• Makkelijk te herprogrammeren
• Toegang tot geheugen is flessenhals
o Von Neumann-architectuur bestaat uit
1. Een centrale verwerkingseenheid (Central
Processing Unit of CPU), bestaande uit:
▪ een rekenkundig-logische eenheid
(Arithmetic/Logic Unit of ALU) met
processorregisters (tijdelijke lokale
geheugens) voor de berekeningen
▪ een bestuurseenheid (Control Unit)
met instructieregister en programmateller voor de aansturing
, 2. Een computergeheugen (RAM Memory Unit) om zowel de data als de instructies op te
slaan
3. Invoer- en uitvoermechanismen (Input en Output Devices) en externe massaopslag van
gegevens en bestanden
➢ Cyclus van opladen – decoderen – uitvoeren – wegschrijven
o Werking: computer wordt geprogrammeerd met softwareprogramma (een reeks van
instructies die achtereenvolgens worden uitgevoerd op de ingevoerde gegevens); dat
programma wordt door programmeur(s) opgesteld en vervolgens ingelezen en
opgeslagen in het geheugen vd computer; CPU haalt een voor een de programma-
instructies uit het geheugen en voert ze uit op de data die ingevoerd worden (die bv.
ingetypt worden of ingelezen uit bestand) en die ook in het geheugen vd computer
worden opgeslagen
o DUS hoofdstappen van elke instructiecyclus zijn dus het opladen vd betrokken
instructie vanuit het geheugen in het instructieregister, het decoderen vd instructie in
concrete controlesignalen voor de blokken die men in de ALU nodig heeft en het
effectief uitvoeren vd instructie op die blokken, veelal gevolgd door het wegschrijven vd
resultaten in het geheugen
o Aangezien meeste computers digitaal werken, moeten ingevoerde gegevens eerst
worden gedigitaliseerd (bv. foto’s, video en muziek, maar ook sensor- of
communicatiesignalen; dit moet worden omgezet in een reeks van bits (enen ‘1’ en
nullen ‘0’) waar de computer mee kan werken)
o Resultaten van (tussen)berekeningen in het programma worden opnieuw naar het
computergeheugen weggeschreven; het eindresultaat vd berekeningen worden
uiteindelijk uitgevoerd en bv. op het scherm getoond of in bestand weggeschreven
➢ Een moderne computerchip bevat eigenlijk meerdere processorkernen naast elkaar die alle met
hetzelfde geheugen verbonden zijn; deze multikernprocessoren laten toe om
softwareprogramma’s nog sneller, of om verschillende taken in parallel, te knn uitvoeren
o Ook bevat computer naast algemene CPU voor numerieke en logische bewerkingen
meestal ook bijkomende gespecialiseerde processoren voor specifieke taken, zoals een
DSP (Digital Signal Processor) voor digitale signaalverwerkingstaken, een GPU
(Graphical Processing Unit) voor grafische bewerkingen (bv. om scherm aan te sturen) of
neutrale eenheid voor toepassingen van AI
➢ Bij de vonn Neumann-architectuur kan de ophaling vd volgende instructie die moet worden
uitgevoerd en de uitvoering ve bewerking op de data niet op hetzelfde moment plaatsvinden,
aangezien ze een gemeenschappelijke verbinding of bus naar het computergeheugen delen
o De eenvoud vd architectuur is grote succes met de vonn Neumann-computer, maar
tegelijk kan die gezamenlijke toegang vd CPU naar het geheugen voor zowel instructies
als data in praktijk soms een flessenhals zijn die snelheid beperkt waarmee computer
zijn programma kan uitvoeren (daarom worden andere computerarchitecturen
bestudeerd, zoals neurmorfe en kwantumcomputers)
Elektronica en de wet van Moore
• Onderliggende dynamiek van de digitale revolutie: “wet van Moore”
o “Elke 24 maand (2 jaar) verdubbelt het aantal transistoren op een chip”
(oorspronkelijk elke 18 maand (1,5 jaar)) (Gordon Moore, Electronics,1965)
➢ Hoewel het eigenlijk eerder een voorspelling dan een wetmatigheid is – de industrie
heeft het wel gedurende vele decennia tot op dag van vandaag als een zelfverklarende
leidraad en dus als een soort wetmatigheid gebruikt
• Technische achtergrond
, o Verkleining van transistoren en bijhorende productieprocessen in micro-electronica
➢ Door voortdurende schaalverklaring van transistoren worden computers almaar sneller,
waardoor ze meer en meer rekenkracht verkrijgen en dus almaar meer bewerkingen per
seconde knn uitvoeren, voor dezelfde prijs
o Kostprijs per transistor wordt goedkoper (!)
o Aantal transistoren op een chip is een (ruwe) indicatie van rekenkracht van de processoren → ze
worden sneller en krachtiger
➢ Trend wordt bevestigd door deze grafiek
die historisch over de jaren heen het
aantal transistoren in commercieel
uitgebrachte processorchips weergeeft;
deze grafiek vertoont een lineaire trend
(in twee delen), MAAR verticale schaal is
logaritmisch; dit betekent dat de
rekenkracht van computers in
werkelijkheid exponentieel toeneemt
met de tijd (elk stapje dat men doet, is in
werkelijkheid 10x groter), wat natuurlijk
veel nieuwe toepassingen mogelijk gemaakt heeft voor een vaste kostprijs, of
omgekeerd de kostprijs van bestaande toepassingen almaar goedkoper gemaakt heeft)
➢ Transistoren knn natuurlijk niet oneindig kleiner gemaakt worden; daarom is de nieuwe
trend om meerdere siliciumchips in 1 verpakking naast of driedimensionaal boven
elkaar te monteren teneinde dezelfde exponentiële groei in rekenkracht per eenheid
basisoppervlakte te kunnen blijven realiseren als aangegeven in de wet van Moore
➢ Naast de rekenkracht per computer, is met de jaren ook het totale aantal computers dat
gebruikt wordt sterk toegenomen; netwerken tss computers versterken namelijk de
exponentiële groei in rekenmogelijkheden nog verder
• Exponentiële vs. lineaire groei
o Lineaire groei
▪ … per stap een vast increment dat wordt bijgeteld bij
huidige waarde
▪ geleidelijke toename
o Exponentiële groei (hier het geval)
▪ … per stap een vaste factor waarmee huidige waarde
vermenigvuldigd wordt
▪ explosieve toename
o Cfr. klassieke raadseltjes
▪ blad papier 50x dubbelvouwen – dikker dan de afstand aarde-maan?
• Exponentiële groei: gevolgen
o Computers worden goedkoper en sneller + steeds grotere aantallen
▪ Totale rekenkracht neemt steeds toe
▪ Snelheid per machine stijgt
▪ Totaal aantal machines stijgt
+ netwerken tussen computers versterken de exponentiële groei
o Wat doen we met al die rekenkracht?
▪ Zelfde problemen oplossen, maar sneller?
▪ Nieuwe complexere types van problemen oplossen, binnen dezelfde tijd (!)
o Deze vooruitgang in hardware is de verklarende factor voor het succes van de software-industrie
en het toenemend belang van algoritmes in onze samenleving