MODULE 1A: Computersystemen en softwarealgoritmes
De Digitale (r)evolutie
Onze samenleving wordt gekenmerkt door digitale revolutie/transformatie
vooruitgang in ICT veroorzaakt digitale transformatie in onze samenleving: we gaan meer en
meer digitaal doen
impact op onze samenleving, manier van leven, wonen en werken
o digitaal verwerken van data en documenten, bv. doktersbriefjes, belastingaangifte
o digitaliseren van de processen in bedrijven en organisaties, bv. aanwerven van
professoren aan de universiteit, online les vormen, online bestellen, elektronische
vliegtickets
o digitalisering van de samenleving zelf
“digitaliteit” (Nicolas Negroponte – MIT): in de toekomst een samenleving
die zeer sterk digitaal is en het onderscheid tussen de digitale en reële wereld
vervaagd → vele processen die vroeger handmatig werden uitgevoerd worden
voortaan digitaal uitgevoerd
impact is:
o sociaal-economisch
o mentaal-cultureel: niet iedereen kan die transformatie makkelijk maken
Onderliggend wordt deze digitale transformatie mogelijk gemaakt door de enorme
vooruitgang in de informatie- en communicatietechnologie, gezamenlijk ICT genoemd
o wat maakt het verschil tussen de computer en andere nuttige voorwerpen (bv.
broodrooster: enkel gebruiken om brood te roosteren)
computer is een programmeerbare machine: andere hebben maar 1
doelstelling, maar een computer kan via de software ge(her)programmeerd
worden naar verschillende toepassingen
software nodig om computer te programmeren
o evolutie van de computers start in de 19e eeuw
Wet van Moore
Onderliggende dynamiek van de digitale revolutie = Wet van Moore : “Elke 24 maand verdubbelt het
aantal transistoren op een chip” (Gordon Moore, 1965: eerder voorspelling dan wetmatigheid)
o Moderne computers zijn opgebouwd uit micro- en nano-elektronica. Het basisbouwblok van
elektronische systemen is de transistor, die functioneert als een digitaal programmeerbare
schakelaar. Een transistor kan in een “aan”-toestand (logische 1) of “uit”-toestand (logische 0)
staan en zo berekeningen uitvoeren. Daardoor moet alle informatie — zoals getallen,
, afbeeldingen, geluid en tekst — worden voorgesteld als reeksen van nullen en enen om door
computers verwerkt te kunnen worden.
o Grote aantallen transistoren worden met elkaar verbonden op een geïntegreerde schakeling of
chip (integrated circuit, IC). Met deze chips worden rekenprocessoren en geheugens
opgebouwd, die samen de basis vormen van computers. Een chip kan daarbij worden
beschouwd als een klein stukje elektronica waarop de basiselementen van een computer
geïntegreerd zijn.
o Oorspronkelijk wet was dat transistoren op een chip elke 1,5 jaar zou verdubbelen
Technische achtergrond:
o Voortdurende schaalverkleining van transistoren en bijhorende productieprocessen in
micro-elektronica
o kostprijs per transistor wordt goedkoper
Computer = is een hardwaremachine om bekeringen 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 kunnen worden om tot het
gewenste resultaat te komen!
De eerste programmeerbare rekenmachines of computers werden al in de 19 de eeuw ontwikkeld, met
behulp van mechanisme computers.
In de 20e eeuw --> elektronische componenten gebruikt:
Elektronenbuizen
Halfgeleidercomponenten (transistoren)
Eerste elektronische computers met elektronenbuizen: Collussus en ENIAC waren groot + verbruikten
veel vermogen en weinig bedrijfszeker Nadelen verbeterden met opkomst van halfgeleidertransistor.
Door de schaalverkleining van transistoren gebruikt in CMOS-halfgeleidertechnologie werden de
computers over de jaren heen kleiner + krachtiger in rekenkracht!
Wet van Moore: Door de voortdurende schaalverkleining van transistoren worden de computer alleen
maar sneller, waardoor ze meer en meer rekenkracht verkrijgen. Dit wil zeggen dat ze almaar meer
bewerkingen per seconde kunnen uitvoeren, voor dezelfde prijs.
De kleinste CMOS-transistoren die nu gebruikt worden hebben een actieve lengte van enkele
nanometer.
De grootste chip: honderd miljard transistoren!
aantal transistoren op een chip is een (ruwe) indicatie van rekenkracht van de processoren -->
sneller en krachtiger --> daardoor worden nieuwe toepassingen mogelijk
De rekenkracht van computers (= aantal berekeningen dat een computer per seconde uitvoert)
neemt exponentiëel toe in de tijd, wat natuurlijk met de jaren veel nieuwe toepassingen
mogelijk maakt voor een vaste kostprijs, of omgekeerd de kostprijs van bestaande
toepassingen steeds goedkoper maakt. Deze continue groei in bestaande en nieuwe
toepassingen maakt ook dat elektronica en computers een immer toenemende impact op onze
samenleving hebben.
Exponentiële versus lineaire groei
Lineaire groei:
... per stap een vast increment dat wordt bijgeteld bij huidige waarde.
,Exponentiële groei:
... per stap een vaste factor waarmee huidige waarde vermenigvuldigd wordt.
Cfr. klassieke raadseltjes ...
Blad papier 50x dubbelvouwen, dikker dan afstand aarde-maan?
Verdubbeling planten in vijver; vandaag halfvol, wanneer volledig vol?
Grafiek
Y-as: TOENAME VAN DE WAARDE
X-as: Tijd (TIME)
Legende:
o Exponential Trend
o Linear Trend
o Knee of Curve
o Linear Trend (with slope: exponential growth becomes explosive)
In rekening: toename (bij de tijd)
Factor bv maal 2
Gevolgen
Een rechtstreeks gevolg van de technologische evoluties binnen de digitale revolutie is dat computers
steeds goedkoper, sneller en in steeds grotere aantallen beschikbaar worden. Hierdoor neemt de totale
beschikbare rekenkracht wereldwijd voortdurend toe.
o Snelheid per machine stijgt
o Totaal aantal machines stijgt
o Netwerken tussen computers versterken de exponentiële groei.
Naast de toename in rekenkracht per machine en het aantal machines, groeit ook het totale aantal
computers dat mensen dagelijks gebruiken. Door deze computers via netwerken met elkaar te
verbinden, ontstaat een multiplicatoreffect dat de exponentiële groei van rekenkracht en
dataverwerking verder versterkt.
Wat doen we met al die rekenkracht?
o Zelfde problemen oplossen, maar sneller? In de praktijk: Nieuwe, complexere types
van problemen oplossen, binnen dezelfde tijd?
Netwerken maken het bovendien mogelijk om grote hoeveelheden data snel te transfereren en om
diensten aan te bieden waarbij de rekenkracht en dataopslag zich niet noodzakelijk op de computer
van de gebruiker bevinden. Dit vormt de basis van moderne online-diensten, zoals zoekmachines en
cloudgebaseerde toepassingen. Een eenvoudige zoekactie in een browser kan bijvoorbeeld
gebruikmaken van enorme rekenkracht en dataopslag die zich op externe servers bevinden.
Momenteel naderen computers een rekenkracht die even krachtig is als het brein van één mens. Tegen
2040-2050 wordt verwacht dat computers even krachtig zullen zijn als de breinen van alle mensen
samen (de “mensheid” dus). En daarna wworden computers dus krachtiger dan de mensheid. Men
spreekt dan van de "technologische singulariteit".
, Architectuur van een computer: intern, hoe werkt zo een computer nu?
Huidige computers zijn opgebouwd uit micro- en nano-elektronische halfgeleidertransistoren. Deze
transistoren vormen de basisbouwstenen van moderne elektronische systemen en maken het mogelijk
om digitale berekeningen uit te voeren.
De fundamentele structuur van moderne computers is gebaseerd op de Von Neumann-architectuur.
Von Neumann-architectuur
In 1945 werd in het document First Draft of a Report on the EDVAC een architectuur voor een
elektronische digitale computer beschreven. Deze architectuur vormt vandaag nog steeds de basis van
de meeste computersystemen.
De Von Neumann-architectuur bestaat uit volgende hoofdcomponenten:
Input devices: invoerapparaten die data en instructies in de computer brengen
Central Processing Unit (CPU):
Arithmetic/Logic Unit (ALU): voert rekenkundige en logische bewerkingen uit
Control Unit: bestuurt de uitvoering van instructies
Processorregisters, inclusief:
o instructieregister
o programmateller
Memory unit (RAM): slaat zowel data als programma-instructies op
Output devices: geven resultaten weer
Externe massaopslag: bijvoorbeeld harde schijven
Werking
Binnen deze architectuur wordt een computer geprogrammeerd via een programma, namelijk een
reeks instructies die achtereenvolgens moeten worden uitgevoerd. Dit programma wordt ingeladen in
het geheugen.
De CPU haalt vervolgens stap voor stap instructies uit het geheugen en voert deze uit op data die
eveneens in het geheugen worden opgeslagen. Resultaten van tussenberekeningen worden opnieuw in
het geheugen opgeslagen. Uiteindelijk wordt het eindresultaat van het programma uitgelezen via een
outputmechanisme.
Beperkingen van de Von Neumann-architectuur
Bij de Von Neumann-architectuur kunnen het ophalen van de volgende instructie en het uitvoeren van
een bewerking op data niet gelijktijdig gebeuren. Dit komt doordat beide processen gebruikmaken van
een gemeenschappelijke geheugenbus.
Dit maakt de architectuur eenvoudig om te ontwerpen en verklaart haar grote succes, maar het kan in
de praktijk ook leiden tot een flessenhals die de snelheid beperkt waarmee een computer programma’s
kan uitvoeren. Daarom wordt er ook onderzoek gedaan naar alternatieve computerarchitecturen.