TCSY: Computersystemen.

Docent: Raymundo R. Hordijk
Kamer E2.049 (Enys house Den Helder)
Tel. 0223-657436
R.R.Hordijk@Gmail.com / RR.Hordijk@mindef.nl



Globale
indeling

College 1
College 2
College 3
College 4
College 5
College 6
College 7
College 8
Doelstelling
Algoritmen
Geschiedenis
Mainmemory (werkgeheugen)
Cache geheugen
Secondair geheugen

Talstelsels
Compressie
Foutcorrectie

Computerarchitectuur
Moederbord
CPU
I/O
Besturings systeem
Processor management
Memory management
Device management
Storage management
Application interface
User interface
Netwerken en het Internet
Transmissiemedium
Hub /router
TCP/IP

Tim Berners-Lee
Html

Cryptologie

Doelstelling:

Na het volgen van dit college kan de student:

Voor het tentamen is deze handleiding maatgevend!


§0.1 Algoritmen.

Algoritmen vormen het fundament van de huidige computerwetenschap.
Een algoritme is een nauwkeurige omschrijving van een (eindig) aantal stappen die consequent achterelkaar uitgevoerd moeten worden om een bepaalde taak te verwezenlijken.
Anders geformuleerd:
Een algoritme is een verzameling regels voor het oplossen van een klasse van problemen in een eindig aantal stappen.

Algoritmen komen we ook in het dagelijks leven tegen zoals:

Een eenvoudig delingsalgoritme.

Stel dat we over een calculator beschikken waarop uitsluitend optellingen en aftrekkingen kunnen worden uitgevoerd.
Opgave: bepaal van twee gehele getallen het quotiënt en de rest.


Gezocht een nauwkeurig gedefinieerde reeks van regels die op eenduidige en eindige wijze aangeeft hoe we aan het quotiënt en de rest van deeltal en deler komen.

Neem als voorbeeld 17 gedeeld door 3 (is 5 rest 2 :-)
1e aftrekking:   17 - 3 = 14,    verschil ≥ 3. Ga verder
2e aftrekking:   14 - 3 = 11,    verschil ≥ 3. Ga verder
3e aftrekking:   11 - 3 = 8,      verschil ≥ 3. Ga verder
4e aftrekking:   8 - 3 = 5,        verschil ≥ 3. Ga verder
5e aftrekking:   5 - 3 = 2,        verschil < 3. Stop

Het quotiënt is gelijk aan het aantal malen dat 3 van 17 afgetrokken kan worden, totdat het resultaat kleiner is dan 3, de rest is het laatst verkregen verschil.

Let op de volgende kenmerken:
  1. Eenzelfde soort bewerking moet een aantal malen worden uitgevoerd (bepaal verschil);
  2. Na of voor een dergelijke bewerking moet een inspectie plaatsvinden of verdergaande herhalingen nodig is (verschil ≥ 3)
  3. Er vindt weliswaar een aantal malen eenzelfde soort bewerking plaats, maar één bij deze bewerkingen betrokken getal verandert voortdurend van waarde (17, 14, 11, ... monotoon dalend en dus eindigend).

Algoritme van Euclid.

Zoek naar de grootste gemene deler (ggd) van twee positieve gehele getallen.
 (16/6 of 12/8)



Voordat een machine in staat is een bepaalde taak uit te voeren, moet een algoritme bedacht (ontdekt) worden om deze taak uit te voeren. Vervolgens moet dit algoritme ook nog in de machine worden aangebracht (op een voor de machine 'begrijpelijke' manier). Dit wordt gedaan m.b.v. een programma.

Een programma is de representatie van een algoritme die geschikt is om door een bepaalde machine (computer) te worden verwerkt.


Uitgangspunt: de probleemstelling.

Doel:  een beschrijving van wat we willen.
Wanneer dit niet juist en/of onvolledig is, is een verdere uitwerking bij voorbaat ook fout.

Na de interpretatie van de probleemstelling dient zo nodig het geheel aangevuld te worden, waarna de zaak met de opdrachtgever wordt doorgesproken.

Na één of enkele malen kan de conclusie getrokken worden dat het probleem correct is gesteld. Vervolgens dient er een oplossing gezocht te worden voor het probleem.
Het Algoritme.

Voor het formuleren van de oplossing hebben we nog niets te doen met de computer en de taal waarin het programma aan de computer moet worden aangeboden.
Nadat een oplossing is bepaald en vastgelegd, dient deze te worden omgezet in een bepaalde taal die door de computer is te lezen => Coderen/vertalen.

Als de regels bij het coderen niet goed zijn toegepast, maakt de computer hier melding van en geeft een foutenlijst.

Nadat geconstateerd is dat het programma door de computer uitgevoerd kan worden, moet nagegaan worden of het resultaat van de uitvoering overeenkomstig de verwachting (vastgelegd tijdens de fase programmeren) is => Testen.




Een programma dat na verloop van tijd niet meer voldoet, moet worden aangepast.



Zegen of gevaar?

Zodra een algoritme voor het oplossen van een bepaald probleem bepaald is, zijn de onderliggende principes niet meer van belang en kan de algoritme door iedereen worden toegepast (ongehinderd door enige kennis van zaken).

Door het toepassen van deze principes zijn we echter in staat om machines (computer) te bouwen die nuttig zijn. We maken  veelvuldig gebruik van reeds eerder  bewezen wetten en regels.

Anderzijds zou men zich ook de vraag kunnen stellen of er voor elke klasse van problemen een algoritme te bedenken is.  Omstreeks 1930 heeft Kurt Gödel echter bewezen dat er problemen zijn waarvoor nooit een algoritme gevonden zal worden.


Software - hardware - firmware.

Software: algorithmen, instructies
Hardware: concrete objecten zoals de elektronische schakelingen en geheugen (alles wat je uit je handen kan laten vallen).
Firmware: software die tijdens de fabricage in elekronische apparaten is aangebracht.
 

Hardware en software zijn logisch equivalent.

Elke operatie die door software wordt uitgevoerd, kan ook direct in de hardware worden gebakken en andersom kan elke instructie die door hardware wordt uitgevoerd gesimuleerd worden door software (video drivers)
Voorbeelden van zaken, die vroeger alleen geprogrammeerd konden worden en nu steeds vaker in de hardware gebakken zit:


§0.2 Het ontstaan van rekenende machines.

Eén van de eerste reken apparaten was de Abacus.
Deze dateert nog uit de tijd van de oude Grieken en Romeinen.

Blaise Pascal (1623 - 1662, Frankrijk)
1642 pascaline (+ -)

Gottfried Wilhelm von Leibniz (1646 - 1716, Duitsland)
(+ - / *)
Charles Babbage  (1792-1871, Engeland)
Difference engine  
  • + -  
  • Navigatie op zee
  • ponste uitvoer in een koperen graveerplaat.
Analytical engine had 4 componenten
  • geheugen
  • loopwerk
  • invoerdeel (ponskaarten)
  • uitvoerdeel




Augusta Ada Byron (gravin van Lovelace).
Een goede vriendin van Babbage, werkt ondermeer het ponskaart-idee verder uit door voor te stellen bij terugkerende bewerking-reeksen slechts één setje kaarten te gebruiken. 
Later is dit vertaald in de conditionele loop en de subroutine. 
Zij wordt beschouwd als ‘s werelds eerste programmeur.


Ook Philips experimenteert met computers.  
Voor intern gebruik bouwt men tot 1960 drie computers:  
  • de Peter  
  • (Philips Experimentele Tweetallige Elektronische Rekenmachine),  
  • de Pascal (Philips Akelig Snelle Calculator) en  
  • de Stevin (Snel Tel en Vermenigvuldig Instrument).  
Het duurt - met name door de afspraak met IBM  (een belangrijke componenten-afnemer van Philips) om zich niet op de computermarkt te zullen begeven - echter nog tot 1963 voor Philips een programma opzet voor het ontwikkelen van commerciële (mini)computers.

Algemeen historisch overzicht.



De eerste generatie: elektronen buizen.

Berichten van de Duitsers moesten worden gedecodeerd: Colossus
Eniac: Electronic Numerical Integrator and Computer
Het programmeren gebeurde d.m.v. het instellen van 6000 schakelaars en het verbinden van contacten met kabeltjes.



Eniac Mark 1


John von Neumann.





De tweede generatie: transistoren.

In 1948 vonden John Bardeen, Walter Brattain en William Shockey de transistor uit. Binnen 10 jaar bracht deze uitvinding een ware revolutie binnen de computerwereld teweeg.

De derde/vierde generatie: geïntegreerde circuits.

In het begin konden er tientallen, later zelfs miljoenen transistoren op een chip geplaatst worden => nog sneller en nog goedkoper.

Verschuiving van mainframe naar personal computer.
Number cruching <=> sterk interactief werken

IBM 'stuurde Philip Estridge weg' om PC te ontwerpen

Moore's Law.





 
Chip  Date Mhz  Transistors Memory Notes
Pentium III 1999  650 - 1400  9.5 miljoen  4GB  
Pentium IV  2000  1500-3000  42 miljoen  4 GB  
Itanium  2001  1500    16 GB  64 bits CPU

Een uitgebreid overzicht van Intel processoren is te vinden in de
"hall of fame" (http://www.intel.com/intel/intelis/museum/exhibits/hist_micro/hof/index.htm)


Nathan's law.

Software is like a gas!






§0.4 Abstractie niveau.

De capaciteit hebben om problemen op een verschillend abstractieniveau te kunnen bekijken is cruciaal in de computer wetenschap.
De term abstractie zoals in de computertechniek gebruikt heeft betrekking op het verschil tussen de 'buitenkant' van een object en de gedetailleerde 'binnenkant'.

Dankzij dit abstractie vermogen is de mens in staat complexe computersystemen te ontwerpen en beheren. Als we alles tot in de kleinste detail zouden willen/moeten begrijpen dan zou dat een onmogelijke taak worden.

Social issues.

Bespreek o.a. items 7 en 9.

Opgave.

Teken een structuurdiagram voor een computerprogramma dat van een willekeurige reeks positieve getallen die afgesloten wordt door een nul de volgende waarden berekent:
  1. De som;
  2. Het gemiddelde.



Let op § 1.1 blz 18 t/m 25 geen tentamenstof.


§1.2 Main memory.

Elementaire eenheid = bit (binary digit)
De waarden nul en één zijn goed van elkaar te onderscheiden.

Geheugen bestaat uit een aantal cellen die elk een stuk info bevatten.
Om zo'n cel te bereiken wordt gebruik gemaakt van zijn adres.
Het geheugen kan in een plaatje als volgt worden weergegeven.


Hoewel er in een machine niet echt links of rechts bestaat, stellen we ons bits voor als ware ze in nette rijen (van 8 = byte) opgelijnd.




Single Inline Memory Module en Dual Inline Memory Module

Random Access Memory


Extra info over RAM geheugen.

32 versus 64 bits.

Er wordt veel gesproken over 64 bits systemen. Wat houdt dat eigenlijk in?



64 bits betekent dat grotere data-doorvoer mogelijk is, maar ook dat meer geheugenadressen toegankelijk worden.

Met 32 bits systemen kunnen maximaal adressen tot 4Gb worden gebruikt (232). Direct gevolg hiervan is dat 32 bit besturingssystemen niet meer dan 4GB aan RAM geheugen aan kunnen sturen.

Van deze 4GB staat maar 2GB (of in sommige gevallen 3GB) ter beschikking van de applicatie zelf, de rest wordt gebruikt door Windows.

AMD komt met zijn Opteron en Athlon™ 64 processor  op de 64 bit markt en Intel heeft de
64 bit Itanium.


Read Only Memory.

Programmable Read Only Memory Read mostly memory

Erasable Programmable ROM (EPROM)

Electrically Erasable Programmable ROM (EEPROM) Flash Memory


Cache geheugen.

CPU's zijn vele malen sneller dan geheugen => CPU bussy doing nothing.

Klein beetje razend snel geheugen dicht bij de CPU.
Cache
Basis idee, wanneer de CPU een woord/data wil hebben kijkt deze eerst in de cache en daarna pas in het main memory.



Locality principle: een verwijzing naar een adres A wordt meestal gevolgd door een verwijzing naar een adres in de buurt (vicinity) van A.
cache lines De beschikbare ruimte in cache geheugen wordt opgedeeld in zgn. cache lines (bijv. 64 byte)


Van belang bij cache ontwerp zijn:

Hier is een voorbeeld van de pentium II


§1.3 Mass Storage.


 



Harde schijf.
 


Hoe ziet een harde schijf er eigenlijk uit ??


 


Schrijven naar en lezen van een harde schijf .
 
Voordat gegevens geschreven worden, bevinden zich binnen een magnetische laag op de schijf metaaldeeltjes in een willekeurig patroon.
Om deze deeltjes in data om te zetten, vloeien stroompulsjes in de lees/schrijfkop van de drive door een stroomspoel die om een metalen kern is gewonden.
De spoel brengt een magnetisch veld tot stand in de kern die over de schijf beweegt. 
Dit veld magnetiseert op zijn beurt de metaaldeeltjes in de toplaag van de schijf.
Nadat de kop een magnetische strook op de draaiende schijf heeft aangebracht, wordt een tweede strook aangebracht.
De twee stroken samen representeren een bit.
Als dit bit een binaire 1 moet representeren, draait de spanning in de kern om zodat de magnetische polen worden verwisseld en de deeltjes in de tweede strook in de tegenovergestelde richting komen te staan.
Bij de opslag van een tweede bit is de polariteit van de eerste strook altijd tegengesteld aan de voorafgaande strook, om aan te geven dat het een nieuwe bit betreft.
Om data te lezen, wordt er geen stroom door de lees/schrijfkop gestuurd terwijl de schijf eronder door draait. 
De beweging van de kop door het magnetisch veld van de deeltje genereert een stroompje dat in één van de twee mogelijke richtingen door de toevoerdraden van de kop stroomt. 
De richting van de stroom wordt bepaald door de polariteit van de  stroken. 
Door de richting van de stroom te bepalen weet de computer of de lees/schrijfkop boven een 1 of een 0 beweegt. 

Vergroten van de schijfcapaciteit.

Twee ontwikkelingen zorgen ervoor dat op een 3,5 inch platter (in de grote harde schijven bevinden zich vaak 3 platters) tegenwoordig tot wel 200 GB aan data past:
  1. vergroting van de spoordichtheid;
    De spoordichtheid is hoe dichter de verschillende datasporen tegen elkaar aan liggen. Hoe kleiner deze afstand, hoe meer datasporen er op een schijfje passen.
  2. de lineaire dichtheid.
    De lineaire dichtheid is hoe dicht de bits achter elkaar liggen. Hoe hoger beide dichtheden, des te groter de capaciteit per platter.
 
Vergroten van de schijfcapaciteit
  1. Hoge spoordichtheid, hoge lineaire dichtheid;

  2. Hoge spoordichtheid, lage lineaire dichtheid;

  3. Lage spoordichtheid, lage lineaire dichtheid;

  4. Lage spoordichtheid, hoge lineaire dichtheid.


Extra info over harde schijven is o.a. te vinden op de site:


Bij gebruik van meerdere schijven:Master/Slave



Extra info over harde schijven is o.a. te vinden op de site:

"www.howstufworks.com"

Raid (Redundant Array of Independent Disks).

Is een techniek waarbij 2 of meerdere harde schijven gekoppeld worden (Redundant Array of Inexpensive Disks).
Er zijn verschillende raid mogelijkheden. Hieronder staan de bekenste mogelijkheden.

raid 0 (STRIPING)
snelheid
Hierbij wordt de data stroom gesplitst naar 2 of meerdere schijven, zodat er sneller weggeschreven kan worden. Op ieder schijf staat zodoende een deel van de file en als één schijf uitvalt dan zijn alle gegevens verloren.
raid 1 (MIRRORING)
veiligheid
Bij raid 1 wordt de data stroom niet gespitst maar naar alle schijven geschreven. Iedere schijf heeft dus dezelfde inhoud en als er een schijf uitvalt dan staan alle gegevens nog op de andere schijf.
raid 3/5
Bij raid 3 en 5 wordt uitgegaan van raid 0 maar met toevoeging van een extra harde schijf waarop gegevens geschreven worden die gebruikt kunnen worden om eventuele verloren geraakte bestanden na een defect, weer te kunnen reconstrueren.



Kijk voor meer uitleg op wiki-pedia

SSD (Solid State  Disk).

Solid State Disks slaan gegevens elektrisch op in plaats van magnetisch. Ze gebruiken hiervoor elektronisch FLASH geheugen. Dit type electronisch geheugen kan gegevens ook als er geen stroom op staat.
Het is opgebouwd uit miljoenen of zelfs miljarden miniscule cellen. Elke cel kan elektronisch aan en uit gezet worden, of, in computertermen, op 1 of 0. Zo kunnen gegevens binair opgeslagen worden. Flash geheugen is in feite een enorm raster (grid) van cellen die elk een waarde van 1 of 0 hebben.

Grote voordelen:
Kijk voor meer uitleg op wiki-pedia


CD-Rom (optische schijf).

Philips

Fabricage:




Bij afspelen wordt het oppervlak beschenen met een lage intensie infrarood licht (golflengte 0.78 µ). Verschil in terugkaatsing pits en lands.

 

Grote vraag is: wat is een 1 en wat een 0 ?
 


Hier is meer informatie te vinden over de CD-speler.

Crossinterleaved Reed Solomon code wordt gebruikt voor foutdetectie en correctie bij CD's.


CD-recordables.

CD-rom's zouden eind maken aan piraterij ....... helaas.
 


CD-Rewritables.

Ook hier wordt gebruik gemaakt van een exotische kleurstof.
Men gebruikt hier echter een laser met 3 verschillende sterkten


Digital Versatile Disk.

Uiterlijk gelijk aan CD, echter met de volgende verschillen:



Hierdoor wordt de capaciteit verzevenvoudigd tot 4.7 Gb (i.p.v. 650 Mb)

Deze capaciteits vergroting komt wordt niet alleen veroorzaakt door de geometrie.
Immers de 'track pitch' van de DVD is 2.16 maal kleiner dan die van de CD en de minimum 'pitch lengte' van de DVD is 2.08 kleiner dan die van de CD
=> op grond van de geometrie mag men een capaciteits vergroting van
2.16 * 2.08 = 4.5 verwachten.

Een verdere capaciteits vergroting wordt verkregen door minder fout-corrigerende data op de schijf te plaatsen. De methodes voor fout-detectie en correctie die bij de DVD worden toegepast zijn veel beter dan bij de CD => minder overhead noodzakelijk.

Tenslotte wordt bij de DVD ook een groter deel van het beschikbare oppervlak beschreven.

Leessnelheid.

Een bandbreedte van 1 Hz. komt overeen met een transmissie van 1 bit/sec.

De CD heeft een bandbreedte van 150 Kb/sec terwijl een DVD een bandbreedte van 1.4 Mb/sec heeft.
 
 


Hoeveel informatie (film) kan men kwijt op een DVD ??
Gebruikmakend van MPEG-2 compressie kan men 133 minuten film op 4.7 Gb kwijt (+ geluid en ondertiteling)
=> ruim voldoende voor de meeste films ......... reclame

DVD komt in de volgende variaties:
 
Single-sided, single layer 4.7 Gb
Single-sided, dual layer 8,5 Gb
Double-sided, single layer 9,4 Gb
Double-sided, dual layer 17 Gb

Philips en Sony geloofden niet dat de mensen bereid zouden zijn de DVD om te draaien Toshiba en Time Warner, geloofden niet in de double layer techniek.

Bij de dubbele laag wordt gebruik gemaakt van een reflecterende en een semi-reflecterende laag. Deze laatste laat afhankelijk van de hoek waarin het licht op de laag valt, het licht soms wel door en soms niet.



Hollywood eiste extra feature !!


Overzicht geheugen en acces time.


Geheugentype
Techniek
Omvang
toegangs- en zoektijd
Level1-Cache
semiconductor (halfgeleider)
8 - 512 KB
enkele nanoseconden
Level2-Cache semiconductor (halfgeleider) enkele MB 10 nanoseconden
Main Memory (RAM)
semiconductor (halfgeleider) 2 - 32 GB
50 nanoseconden
Magnetic Disk
Hard disk / SSD
enkele TB
enkele milliseconden
Optical Disk
CD / DVD /  Blu-ray
650 MB - 24 GB
300 milliseconden
Magnetic Tape
Tape
GB
enkele seconden



§1.5 The Binary System


bits - bytes - Kb - Mb - Gb - Tb ......... Nibble (?)
bits = binary digits


DECIMALE VOORVOEGSELS

 

naam


symbool


waarde decimaal

waarde binair

deca da 101
hecto h 102
kilo = k = 103 210
mega = M = 106 220
giga = G = 109 230
tera = T = 1012 240
peta = P = 1015 250
exa = E = 1018 260
zetta = Z = 1021 270
yotta = Y = 1024 280

 

naam


symbool


waarde

deci d 10-1
centi c 10-2
milli = m = 10-3
micro = µ = 10-6
nano = n = 10-9
pico = p = 10-12
femto = f = 10-15
atto = a = 10-18
zepto = z = 10-21
yocto = y = 10-24


Omrekenen.

Gegeven 1492 decimaal:
Vraag: hoeveel is dat binair, octaal of hexadecimaal ??



Binair:


Octaal:
schrijf 10111010100 als: 010111010100
 
010 111 010
100
0*22 + 1*21 + 0*20 1*22 + 1*21 + 1*20 0*22 + 1*21 + 0*20 1*22 + 0*21 + 0*20
2
7
2
4

Hexadecimaal:
schrijf 10111010100 als: 010111010100
 
0101 1101 0100
5
D
4



Reële getallen.
 

Gegeven 6472.7109375 decimaal:
Vraag: hoeveel is dat binair, octaal of hexadecimaal ??
 
 


 

Nu dezelfde vraag voor 10.3


 

Voor het omzetten van decimaal naar binair geldt in het algemeen:

Bijvoorbeeld 10.3
 
links van de decimale punt: 10

10
---- 0       10/2 = 5 rest 0
5
---- 1
2
---- 0
1
---- 1
0
 

=> 1 0 1 0
 

rechts van de decimale punt: 0.3
0.3
---- 0       0.3*2 = 0.6
0.6
---- 1       0.6*2 = 1.2  => schrijf de 1 op en ga verder met het restand
0.2
---- 0
0.4
---- 0
0.8
---- 1
0.6
---- 1       Nu gaat het geheel repeteren => 0 1 0 0 1 1
0.2

 

Van binair naar decimaal.
 


 



 

Negatieve binaire getallen

  1. signed magnitude (teken en grootte)
  2. one's complement (een complement)
  3. two's complement (twee complement)
  4. excess 2m-1 voor m bits (plus 2m-1)
ad 1:
Meest linkse bit is tekenbit:
Decimaal Binair
101 01100101
-101 11100101

ad 2:
Meest linkse bit is tekenbit:

Decimaal Binair
101 01100101
-101 10011010

ad 3:
Meest linkse bit is tekenbit:

Decimaal Binair
101 01100101
-101 10011011

ad 4:
Voor een 8 bits systeem heet deze methode dus plus 128:
 

Decimaal Binair
101 => 229 11100101
-101 => 27 00011011

Resumerend:
 
Methode Opmerkingen
signed magnitude
  • Meest linkse bit is tekenbit.
One's complement
  • Meest linkse bit is tekenbit .
  • Een negatief getal wordt verkregen door uit te gaan van de positieve waarde en elke 0 in een 1 en elke 1 in een 0 te veranderen.
Two' complement
  • Meest linkse bit is tekenbit .
  • Een negatief getal wordt verkregen door uit te gaan van de positieve waarde en elke 0 in een 1 en elke 1 in een 0 te veranderen.
  • Tel tenslotte 1 op bij de gevonden waarde.
excess 2m-1
  • som van de eigenlijke waarde en 2m-1

 

Waarom al deze verschillende methoden?



Gewenst een systeem waarbij:


 
 
 
 

Berekeningen
 
 
Decimaal one's complement two's complement
10 00001010 00001010
-3 11111100 11111101
+----- +------------ +------------
7 00000111
Carry wordt rechts geplaatst
00000111
Carry wordt weggegooit


 

Let op 'calculator' van Windows werkt met two's complement !



§1.7 Drijvende comma notatie

floating-point notation
Bij het opbergen van reële getallen wordt in de computer vaak gebruik gemaakt van  'floating-point' notatie. De werking van dit geheel wordt aan de hand van een eenvoudig voorbeeld uitgelegd.

We gaan uit van een byte (= 8 bits).
Het eerste bit (most significant) wordt gebruikt om het teken aan te geven (1 = negatief, 0 positief).
De volgende 7 bits worden verdeeld in een exponent veld (3 bits) en een mantisse (4 bits).


Beschouw bijvoorbeeld bitpatroon: 01101011 
De eerste 0 geeft aan dat het hier om een positief getal gaat.
De volgende 3 bits: 110 zijn het exponent deel.
De laatste 4 bits: 1011 vormen het mantisse gedeelte.

Om de waarde van het getal te achterhalen beginnen we de mantisse als volgt te schrijven:
.1011 (let op de positie van de punt)

Vervolgens bekijken we het exponent deel. Deze wordt weggeschreven als een integer gebruikmakend van de 'drie-bit' excess methode.

Bitpatroon
Gerepresenteerde waarde



Daar waar het meest significante bit voor het eerst de waarde één krijgt wordt de nul geplaatst.


0 0 0 -4
0 0 1 -3
0 1 0 -2
0 1 1 -1
1 0 0 0
1 0 1 1
1 1 0 2
1 1 1 3

Hier levert 110 dus een waarde van 2 voor het exponentiëele deel. M.a.w. de punt verschuift twee plaatsen naar rechts =>.1011 wordt 10.11 (binair) . 
Hetgeen omgezet naar het decimale stelsel het getal 2,75 oplevert.



§1.8 Data compression (winzip)

Finding Redundancy
Most types of computer files are fairly redundant -- they have the same information listed over and over again.

File-compression programs simply get rid of the redundancy.
Instead of listing a piece of information over and over again, a file-compression program lists that information once and then refers back to it whenever it appears in the original program.

"Ask not what your country can do for you -- ask what you can do for your country."

The quote has 17 words, made up of 61 letters, 16 spaces, one dash and one period.
If each letter, space or punctuation mark takes up one unit of memory, we get a total file size of 79 units.

To get the file size down, we need to look for redundancies.

Immediately, we notice that:

Ignoring the difference between capital and lower-case letters, roughly half of the phrase is redundant.

Nine words -- ask, not, what, your, country, can, do, for, you -- give us almost everything we need for the entire quote.

To construct the second half of the phrase, we just point to the words in the first half and fill in the spaces and punctuation.

LZ adaptive dictionary

Most compression programs use a variation of the LZ adaptive dictionary-based algorithm to shrink files.
"LZ" refers to Lempel and Ziv, the algorithm's creators, and "dictionary" refers to the method of cataloging pieces of data.

The system for arranging dictionaries varies, but it could be as simple as a numbered list. When we go through Kennedy's famous words, we pick out the words that are repeated and put them into the numbered index. Then, we simply write the number instead of writing out the whole word.

So, if this is our dictionary:

     
  1. ask 
  2. what 
  3. your 
  4. country 
  5. can 
  6. do 
  7. for 
  8. you 

Our sentence now reads:

"1 not 2 3 4 5 6 7 8 -- 1 2 8 5 6 7 3 4"
 

If you knew the system, you could easily reconstruct the original phrase using only this dictionary and number pattern. This is what the expansion program on your computer does when it expands a downloaded file. You might also have encountered compressed files that open themselves up. To create this sort of file, the programmer includes a simple expansion program with the compressed file. It automatically reconstructs the original file once it's downloaded.

But how much space have we actually saved with this system? "1 not 2 3 4 5 6 7 8 -- 1 2 8 5 6 7 3 4" is certainly shorter than "Ask not what your country can do for you; ask what you can do for your country;" but keep in mind that we need to save the dictionary itself along with the file.

In an actual compression scheme, figuring out the various file requirements would be fairly complicated; but for our purposes, let's go back to the idea that every character and every space takes up one unit of memory. We already saw that the full phrase takes up 79 units. Our compressed sentence (including spaces) takes up 37 units, and the dictionary (words and numbers) also takes up 37 units. This gives us a file size of 74, so we haven't reduced the file size by very much.

But this is only one sentence! You can imagine that if the compression program worked through the rest of Kennedy's speech, it would find these words and others repeated many more times.

In our example, we picked out all the repeated words and put those in a dictionary. To us, this is the most obvious way to write a dictionary. But a compression program sees it quite differently:

It doesn't have any concept of separate words -- it only looks for patterns

And in order to reduce the file size as much as possible, it carefully selects which patterns to include in the dictionary.

If we approach the phrase from this perspective, we end up with a completely different dictionary.

If the compression program scanned Kennedy's phrase, the first redundancy it would come across would be only a couple of letters long. In "ask not what your," there is a repeated pattern of the letter "t" followed by a space -- in "not" and "what." If the compression program wrote this to the dictionary, it could write a "1" every time a "t" were followed by a space. But in this short phrase, this pattern doesn't occur enough to make it a worthwhile entry, so the program would eventually overwrite it.

The next thing the program might notice is "ou," which appears in both "your" and "country." If this were a longer document, writing this pattern to the dictionary could save a lot of space -- "ou" is a fairly common combination in the English language. But as the compression program worked through this sentence, it would quickly discover a better choice for a dictionary entry: Not only is "ou" repeated, but the entire words "your" and "country" are both repeated, and they are actually repeated together, as the phrase "your country." In this case, the program would overwrite the dictionary entry for "ou" with the entry for "your country."

The phrase "can do for" is also repeated, one time followed by "your" and one time followed by "you," giving us a repeated pattern of "can do for you." This lets us write 15 characters (including spaces) with one number value, while "your country" only lets us write 13 characters (with spaces) with one number value, so the program would overwrite the "your country" entry as just "r country," and then write a separate entry for "can do for you." The program proceeds in this way, picking up all repeated bits of information and then calculating which patterns it should write to the dictionary. This ability to rewrite the dictionary is the "adaptive" part of LZ adaptive dictionary-based algorithm. The way a program actually does this is fairly complicated, as you can see by the discussions on Data-Compression.com.

No matter what specific method you use, this in-depth searching system lets you compress the file much more efficiently than you could by just picking out words. Using the patterns we picked out above, and adding "__" for spaces, we come up with this larger dictionary:

     
  1. ask__ 
  2. what__ 
  3. you 
  4. r__country 
  5. __can__do__for__you 

And this smaller sentence:

"1not__2345__--__12354" 
 

The sentence now takes up 18 units of memory, and our dictionary takes up 41 units. So we've compressed the total file size from 79 units to 59 units! This is just one way of compressing the phrase, and not necessarily the most efficient one. (See if you can find a better way!)

So how good is this system? The file-reduction ratio depends on a number of factors, including file type, file size and compression scheme.


In most languages of the world, certain letters and words often appear together in the same pattern. Because of this high rate of redundancy, text files compress very well. A reduction of 50 percent or more is typical for a good-sized text file. Most programming languages are also very redundant because they use a relatively small collection of commands, which frequently go together in a set pattern. Files that include a lot of unique information, such as graphics or MP3 files, cannot be compressed much with this system because they don't repeat many patterns (more on this in the next section).

If a file has a lot of repeated patterns, the rate of reduction typically increases with file size. You can see this just by looking at our example -- if we had more of Kennedy's speech, we would be able to refer to the patterns in our dictionary more often, and so get more out of each entry's file space. Also, more pervasive patterns might emerge in the longer work, allowing us to create a more efficient dictionary.

This efficiency also depends on the specific algorithm used by the compression program. Some programs are particularly suited to picking up patterns in certain types of files, and so may compress them more succinctly. Others have dictionaries within dictionaries, which might compress efficiently for larger files but not for smaller ones. While all compression programs of this sort work with the same basic idea, there is actually a good deal of variation in the manner of execution. Programmers are always trying to build a better system.


Lossy and Lossless

The type of compression we've been discussing here is called lossless compression, because it lets you recreate the original file exactly. All lossless compression is based on the idea of breaking a file into a "smaller" form for transmission or storage and then putting it back together on the other end so it can be used again.

Lossy compression works very differently. These programs simply eliminate "unnecessary" bits of information, tailoring the file so that it is smaller. This type of compression is used a lot for reducing the file size of bitmap pictures, which tend to be fairly bulky. To see how this works, let's consider how your computer might compress a scanned photograph.

A lossless compression program can't do much with this type of file. While large parts of the picture may look the same -- the whole sky is blue, for example -- most of the individual pixels are a little bit different. To make this picture smaller without compromising the resolution, you have to change the color value for certain pixels. If the picture had a lot of blue sky, the program would pick one color of blue that could be used for every pixel. Then, the program rewrites the file so that the value for every sky pixel refers back to this information. If the compression scheme works well, you won't notice the change, but the file size will be significantly reduced.

Of course, with lossy compression, you can't get the original file back after it has been compressed. You're stuck with the compression program's reinterpretation of the original. For this reason, you can't use this sort of compression for anything that needs to be reproduced exactly, including software applications, databases and presidential inauguration speeches.
 


§1.9 Communication errors.

In Computergeheugens kunnen af en toe fouten optreden t.g.v. spanningspieken in de voeding of andere oorzaken zoals straling en magnetisme.

Om fouten te ontdekken worden er extra bits aan elk geheugenwoord toegevoegd: controle bits of redundante bits.

Bitsgewijze Booleaanse Exclusive Or

Bitsgewijs vergelijken:
 
And, alleen waar (1) als beide expressies waar zijn. Nand (Negative And), alleen onwaar (0) als beide expressies waar zijn.

Or, waar (1) als tenminste één expressie waar is. Nor, waar (1) als tenminste géén van beide expressies waar zijn. eXclusive or, waar (1) als slechts één van beide expressies waar is.

Na controle zijn er drie mogelijkheden:

Hamming-afstand (Hamming distance) : het aantal bitposities waarin twee codewoorden verschillen.


Voorbeeld 1:  4 bit (Venn diagram).



 

Syndrome: resultaat van de vergelijking van twee errorcorrecting codes

Stel verder de volgende eisen:

Hoeveel controle bits hebben we nodig om een enkelvoudige fout te kunnen ontdekken en verbeteren?


 


Hoe moeten de data en controle bits worden gerangschikt opdat aan onze eisen voldaan kan worden ?


Bij een data woord van 8 bits en 4 controle bits krijgen we het volgende:

Welke waarde moeten de checkbits hebben anders gezegd hoe ziet de functie f( ) eruit ?


C1 = M1 ® M2 ® M4 ® M5 ® M7
C2 = M1 ® M3 ® M4 ® M6 ® M7
C4 = M2 ® M3 ® M4 ® M8
C8 = M5 ® M6 ® M7 ® M8

waarbij ® een XOR operatie voorstelt.
 

A B XOR
0 0 0
0 1 1
1 0 1
1 1 0
Databit M4 op positie 7 wordt gecontroleerd door checkbits C1, C2 en C4
( 7 = 1 + 2 + 4 ).


Voorbeeld 2: 8 bits

Input 0011 1001

C1 = M1 ® M2 ® M4 ® M5 ® M7 = 1
C2 = M1 ® M3 ® M4 ® M6 ® M7 = 1
C4 = M2 ® M3 ® M4 ® M8 = 1
C8 = M5 ® M6 ® M7 ® M8 = 0

Stel dat databit 3 een fout bevat => M3 := 1 dus we lezen uit:
0011 1101

De correctie bits worden nu:
C1 = M1 ® M2 ® M4 ® M5 ® M7 = 1
C2 = M1 ® M3 ® M4 ® M6 ® M7 = 0
C4 = M2 ® M3 ® M4 ® M8 = 0
C8 = M5 ® M6 ® M7 ® M8 = 0

XOR toepassen op syndroms
C8 C4 C2 C1
0 1 1 1
0 0 0 1
0 1 1 0

0*20 + 1*21 + 1*22 + 0*23 = 6

M3 staat inderdaad op positie 6.


Meeste geheugens zijn uitgerust met Single Error Correcting, Double Error Detecting code (SEC-DED).



§2.1 Computer architecture.

De belangrijkste componenten van een computer zijn:

Het moederbord (systeembord, mainboard, mobo).



Het hart van ieder moederbord is de chipset. Deze bestaat (meestal) uit twee chips:

De northbridge ontvangt en verwerkt informatie van de De southbridge ontvangt en verwerkt informatie van de
  • Processor
  • Video interface (AGP/PCI-express)
  • Geheugen / RAM
  • PCI bus (de PCI apparaten, zoals geluidskaart en netwerkkaart)
  • IDE interface (waarop de harddisks en cd/dvd drives worden aangesloten)
  • SATA interface (waarop de harddisks en cd/dvd drives worden aangesloten)
  • USB apparaten (scanners, digitale camera's, printers, muizen, toetsenborden, etc, etc)
  • Audio moederborden met'onboard' geluid)
  • Parallele poorten (o.a. oude printers),
  • Seriële poort (oude muizen, toetsenborden



De southbridge bepaalt het aantal features van de chipset (WLAN, RAID, etc) terwijl de northbridge verantwoordelijk is voor de prestaties van de computer.

Belangrijk daarbij is de snelheid waarmee het geheugen de processor en de videokaart van informatie kan voorzien.

De data uit het geheugen gaat via de 'geheugenbus' naar de chipset en vervolgens via de FrontSideBus (FSB) naar de processor. De snelste FSB's draaien tegenwoordig op 800 MHz.
 

PCI (Peripheral Component Interconnect.).

PCI Express of PCI-E is een standaard voor insteekkaarten voor computers (slots). De PCI-E standaard ondersteunt insteekkaarten van maximaal 300 Watt, waarvan 75 Watt uit het PCI-E slot.
Het vormt een oplossing voor de steeds grotere vraag naar snelheid. PCI Express vervangt twee vorige insteekkaartstandaarden: PCI en AGP.

Het oude PCI bood een snelheid van 133 MB/s, en de speciale AGP (Accelerated Graphics Port) kaart voor grafisch gebruik in zijn snelste x8 variant 2,1 GB/s.

PCI-Express slots komen in twee varianten, de x1 met één enkel serieel kanaal haalt een snelheid van 250 MB/s en de x16 variant met 16 kanalen haalt 4 GB/s.

Alhoewel niet alle bandbreedte van PCI-E x16 gebruikt wordt in de huidige generatie videokaarten, biedt x16 wel voordelen bij het gebruik van SLI of Crossfire, omdat beide videokaarten dan 2 (of 4) GB/s tot hun beschikking hebben, wat nog steeds twee keer zo snel is als AGP x8.

De oudere variant van PCI-E x16 is PCI-E x8. Dit betekent echter niet dat videokaarten in deze sleuf maar de helft presteren als dat ze in PCI-E x16 zouden zitten.
PCI Express kaarten zijn er in een aantal fysieke formaten, waaronder een kleiner 'Low profile'-formaat.


Voorbeeld van meerdere PCI Express-sleuven (van boven naar beneden: x4, x16, x1 en x16
Onderste sleuf is een PCI sleuf, geen PCI-Express

PCI-Express Snelheid
1x 250 MB/s
4x 1 GB/s
8x 2 GB/s
16 4 GB/s
32 8 GB/s


Oudere bustypen zijn:

Al geruime tijd voor dat PCI Express werd ontwikkeld bestond er al PCI-X, de afkorting hiervan moet echter niet worden verward met PCI Express. (PCI-X is een computerbus die oorspronkelijk is bedoeld voor servers. Het is dubbel zo breed als een PCI-slot en de kloksnelheid is tot vier keer zo hoog. Toch gebruikt PCI-X hetzelfde protoctol als PCI. In moderne computers is het parallelle PCI-X vervangen door het seriële PCI-Express).

Als een moederbordfabrikant besluit functionaliteit aan het moederbord toe te voegen door middel van extra chips, worden deze ook op de PCI-bus aangesloten. Veel fabrikanten bouwen bijvoorbeeld RAID-chips in het moederbord, die dan worden aangesloten op de PCI-bus.


ATX

Bij het ontwerpen van een moederbord is de fabrikant niet vrij in de plaatsing van alle onderdelen: hij moet zich aan de ATX-standaard houden.

Die standaard zorgt ervoor dat alle ATX-moederborden in iedere ATX-behuizing passen.
De locatie van de schroefgaten in het moederbord ligt vast, net als die van de PCI-sloten en het AGP-slot.

Linksboven op het moederbord heeft de fabrikant de beschikking over een rechthoekig gebied waar hij PS/2-connectors, USB-aansluitingen en andere in- en uitgangen kan plaatsen. Door de aanwezigheid van een parallelle poort en twee seriele wordt die rechthoek al voor een groot deel in beslag genomen, waardoor veel fabrikanten hun toevlucht nemen tot de gleuven aan de achterkant van de behuizing, die bedoeld zijn voor uitbreidingskaarten.



Stroomvoorziening en elektrische eigenschappen.

Elektronische componenten als chips kunnen alleen hun werk doen als ze stroom krijgen. Dat geldt vooral voor de processor. Die wordt in een aparte socket of slot van het moederbord bevestigd, niet in de laatste plaats omdat hij een erg hoog energieverbruik heeft.

Elke ATX-voeding heeft een twintigpolige stekker die op het moederbord bevestigd wordt. Deze stekker levert verschillende voltages, waarvan de belangrijkste 3.3 Volt, 5 Volt en 12 Volt zijn.

Computerchips kunnen erg slecht tegen fluctuerende voltages: ze gaan er fouten van maken.
Het is dus belangrijk dat de voeding een stabiel voltage levert.


Central Processing Unit / Centrale verwerkings eenheid




Functie van de CPU:

uitvoeren van programma's die in het hoofdgeheugen staan.

Belangrijke registers:

Uitvoering van een instructie:

  1. haal de volgende instructie uit het geheugen in het instructieregister
  2. verander de programmateller zodat deze naar de volgende instructie wijst
  3. bepaal de type van het zojuist opgehaalde instructie
  4. als de instructie data uit het geheugen gebruikt, bepaal dan waar deze staat
  5. haal de eventuele data in interne CPU-registers
  6. voer de instructie uit
  7. sla de resultaten op de juiste plaats op
  8. ga naar stap 1 voor het uitvoeren van de volgende instructie.
Fetch-decode-execute-cyclus


Dit hele idee, om computerprogramma's in het hoofdgeheugen op te slaan zoals ooit voorgesteld is door John van Neumann, wordt aangeduid met de term stored program concept.



Basis capaciteiten van een computer.

Deze primitieve instructies vormen een taal, MACHINE TAAL.

Computerontwerpers maken keus op grond van:

Men kan kiezen voor een groot aantal instructies (CISC) of een beperkt  instructies repertoire (RISC).

Risc versus Cisc

Sinds IBM's eerste 'Personal Computer' uit de jaren 80  is de technologie veel geavanceerder geworden.  Alleen de gebruikte instructieset  is vrijwel ongewijzigd gebleven. Niet omdat die geen verbetering zou kunnen gebruiken, in tegendeel zelfs, maar vanwege de enorme hoeveelheid software die ervoor beschikbaar was en is.

De huidige versie van de instructieset voor pc's heet IA32:

Intel Architecture 32 bits.

IA32 is een lid van de CISC-familie van instructiesets.

CISC: Complex Instruction Set Computing.

De filosofie achter CISC is programma's zo compact mogelijk te maken. Dit is een gevolg van het feit dat opslagruimte vroeger erg duur was.

CISC heeft parallellen met mensentaal: veel gebruikte woorden/instructies zijn het kortst, minder gebruikte zijn langer. Voor veel voorkomende combinaties van korte instructies zij bovendien nog langere instructies bedacht.

Het nadeel is dat werken met grote aantallen verschillende instructies van wisselende lengte ingewikkeld is en traag gaat.

RISC, Reduced Instruction Set Computing, gebruikt een klein aantal eenvoudige instructies, allemaal van dezelfde lengte. Als gevolg daarvan nemen RISC-programma's meer geheugenruimte in en moeten meer instructies worden uitgevoerd voor dezelfde berekening dan bij CISC. Omdat de simpele instructies echter veel sneller worden uitgevoerd, presteren RISC processoren wel beter.

Jaren 70 Cisc (200 - 300 instructies)
jaren 80 Risc (50 instructies)

Belangrijk is niet alleen de grootte van de instructies, maar vooral de snelheid waarmee zo'n instructie opgestart kan worden.
 

Waarom hebben  de Risc machines, de Cisc (nog) niet helemaal verdreven??

Java platform onafhankelijk !


ARM processor voor mobiele apparaten

Toen Intel in 2008 de Atom introduceerde, was het masterplan om daarmee de X86-processorarchitectuur geschikt te maken voor producten als mobiele telefoons.
Echter ...... inmiddels blijkt dat de architectuur die bij die producten het meest gebruikt wordt, ARM, juist richting PC's en notebooks op te schuiven.

De processor in je mobiele telefoon, je televisie, je router, je NAS-apparaat, je portable gameconsole: grote kans dat het gaat om een ARM-product.

ARM is een mooi voorbeeld van een RISC instructieset.
De ARM architectuur is zeer zuinig (qua energieverbruik), maar was ook erg traag en zodoende alleen geschikt voor relatief simpele apparaten.

De geschiedenis van de ARM-architectuur brengt ons begin jaren tachtig bij computerfabrikant Acorn.
Acorn RISC Machine vandaar de naam ARM.

De ARM architectuur werd voor het eerst gebruikt in de Acorn Archimedes computer
Apple ging meewerken aan de ARM-architectuur om een geschikte processor te hebben voor de Newton PDA, een verre voorloper van de iPad.
In 1990 werd het ontwerpteam ondergebracht in het nieuwe bedrijf Advanced RISC Machines Ltd. (met dus wederom ARM als afkorting).



ARM is een volledig andere architectuur is dan X86 vandaar dat  X86-software als Microsoft Windows niet op een ARM-chip werkt. Toch is er meer dan voldoende software beschikbaar: zo'n beetje iedere Unix/Linux/BSD-achtig besturingssysteem is beschikbaar voor ARM.
Bekende namen zijn de Linux-derivaten Android, Chrome OS, Debian, Fedora, Maemo en MeeGo, maar ook de BSD-derivaten FreeBSD, NetBSD en Apple iOS.
Maar ook besturingssystemen als Symbian, Windows Embedded en Windows Phone maken gebruik van de ARM-architectuur.



Juist het feit dat Linux en ARM zo goed hand-in-hand gaan is één van de redenen waarom de architectuur zo populair is. Zo werkt de software van apparaten als routers, NAS-apparaten en mediaspelers vrijwel per definitie op basis van Linux. De keuze voor een chip die een ARM-core bevat ligt dan erg voor de hand.


Snelheid van de CPU.

Om de prestaties van computers te vergelijken kijkt men vaak (niet geheel terecht) naar de kloksnelheid van de processor.
Grote vraag is:

kunnen we de kloksnelheid (frequentie) onbeperkt blijven verhogen ??
 

probemen die optreden bij het steeds sneller worden van de computers:

De massa hangt af van de snelheid.

Uit zijn speciale relativiteitstheorie leidde Einstein af, dat de massa m van een lichaam afhangt van zijn snelheid v:
Relatie lichtsnelheid en massa

Oplossing: Parallele instructies.

Er zijn twee algemene vormen van parallel rekenen



Let op § 2.4 blz 90 t/m 93 geen tentamenstof.


§2.6 Instructie niveau: Pipelining (SISD).

Voorbeeld van Single Instruction Single Data waarbij gebruik wordt gemaakt van verscheidene verwerkingseenheden. Er is echter slechts één programma en één stel data.


 
 


 

Als één pipeline goed werkt, waarom dan geen twee toepassen.

Werkt echter alleen maar goed, als de instructies onafhankelijk van elkaar zijn.

Pipelines vond men eerst alleen bij Risc machines, maar later ook bij Cisc machines zoals de pentium.


Een andere optie is om meer gespecialiseerde ALU's toe te passen.

Idee is dat het rekenen meer tijd kost dan het ophalen en decoderen van de instructies.
 


processor niveau.

SIMD: Single Instruction Multiple Data (weersverwachting)

Vector processor: zelfde programma op een groot aantal datasets toepassen.
 
 


Array processor: ook een multiprocessor-achtige machine waarbij elke processor zijn eigen memory heeft, maar alle CPU's delen nog wel één controlle eenheid.



Multiprocessors

De meest eenvoudige toepassing is die van verscheidene CPU's die gebruik maken van een gedeelde geheugen, dit vraagt echter om moeilijkheden => geeft elke CPU zijn eigen lokaal geheugen.


Multikernprocessor.

<>Een multikernprocessor is een chip waarop meerdere processors (Eng.: cores) zijn geïntegreerd.
Door het groeiende aantal processen dat op een gewone desktopcomputer draait, de vele dingen die mensen met hun computer doen terwijl ze met iets anders bezig zijn, de hoge prijs van echte multiprocessorsystemen en daarnaast de hoge effectiviteit van het werken met meerdere threads, is het tegenwoordig interessant om kernen op één processor te integreren.

Bij een dubbelkernprocessor zitten er op één chip als het ware twee complete processors, die één enkele verbinding met het hoofdgeheugen delen — wat dan ook de flessenhals van multikernprocessors is.

In 2008 bracht Intel zijn Core i7 processors op de markt die 4 cores hadden met Hyper-Threading. Hierdoor kon elke processor in totaal 8 threads verwerken

Voordelen
Het plaatsen van meerdere kernen op een processor heeft als voordeel dat relatief veel snelheid gewonnen kan worden met een geringe investering; een computer met een dubbelkernprocessor is slechts een beetje trager dan een computer met twee losse processors, terwijl de dubbelkernprocessor geen speciale en vaak dure hardware zoals een moederbord met twee voetjes nodig heeft.

Nadelen
<>

Thread .

Een thread (Engels voor draad) op een computer is een proces dat binnen een proces uitgevoerd wordt. Met behulp van threads kan een computerprogramma verschillende taken "tegelijkertijd" uitvoeren net zoals in een besturingssysteem met multitasking meerdere processen tegelijk kunnen draaien. Het gebruik van meerdere threads wordt multithreading genoemd.

Voordelen van threads zijn onder andere de mogelijkheid om een proces over meerdere processoren te verdelen. Ook op een machine met één processor kunnen threads voordeel bieden: zo kan één thread rekentaken uitvoeren terwijl andere wachten op invoer of uitvoer. Onmerkbaar voor de gebruiker krijgen de threads op een machine met één processor afwisselend een stukje processortijd zodat de taken tegelijkertijd gedaan lijken te worden.

Een webbrowser kan bijvoorbeeld met behulp van threads meerdere taken tegelijk uitvoeren zoals het ophalen van een webpagina van een server en het afhandelen van de acties van de gebruiker in menu's of dialoogvensters. Vaak moeten de threads die de communicatie met de server verrichten wachten tot boodschappen zijn overgekomen en beantwoord.


Opbouw van een moderne processor.

In onderstaand figuur wordt schematisch de opbouw van een moderne processor getoond.

Modrne computer AGU: Adress Generation Unit.
FPU: Floating Point Unit.
Branch prediction: de volgende instructie  voorspellen.
OoO: Out of Order organisator.
Door deze organisator hoeven instructies niet in de programmavolgorde uitgevoerd te worden. Een instructie waarvan anderen afhankelijk zijn kan naar voren worden gehaald.



Computer architectuur.

De belangrijkste componenten van een computer zijn:

Invoer/uitvoer communicatie met randapparatuur.


Let bij de aanschaf van een computer altijd op het aantal aanwezige vrije sloten (zowel dimms al PCI)!

Schematisch kan de organisatie van de computer worden voorgesteld met één bus.


I/O apparaat (device) bestaat uit twee componenten:

Taak van de controller:

Voorbeeld van een insteekkaart: Modem

Een telefoonlijn is echter niet zo geschikt voor het overzenden van computersignalen.
Computer:

Draag-golf, sinusvormig met een frequentie van 1000 tot 2000 Hz.
 

Een pure sinusgolf bevat geen informatie, maar door variatie van:

kunnen énen en nullen worden overgezonden.
 
 



Bij fase modulatie kan men behalve een verschuiving van 180 graden,
natuurlijk ook gebruik maken van verschuivingen van bijv. 45, 135, 225 en 315 graden.
 
Voordeel ....... ?



Men kan nu 2 bits per tijdsinterval versturen (dibit).

Bautrate = aantal mogelijke veranderingen per seconde.

Bij versturen van 2 of meer bits per tijdsinterval, zal de bitrate dus groter zijn dan de bautrate.



§3.1 Operating Systems (besturingssystemen).

Ieder computer (desktop of laptop) wordt tegenwoordig geleverd met een besturingssysteem. De meest bekende zijn:
Verder zien we op allerlei alledaagse apparaten ook besturingssystemen verschijnen. Denk bijvoorbeeld aan mobiele telefoons of palmtops maar ook wireless access points.

Het doel van een besturingssysteem is het organiseren en beheren van hardware en software zo dat het apparaat waarop het is geïnstalleerd op een flexibele en vooral voorspelbare manier reageert.
Een gebruiker kan m.b.v. het besturingssysteem:
Niet alle computers hebben een besturingssysteem, denk bijvoorbeeld aan een magnetron.
Deze heeft een beperkte set van taken die echt niet veranderd hoeven te worden!

Maar hoe was het vroeger?


  • Batch processing.
  • Job queue
  • FIFO
  • JCL
  • Computer operator
  • No user interaction

Modern besturingssysteem.

  1. het  beheert de hardware en software bronnen van een systeem. Bij een desktop computer denkt men bijvoorbeeld aan de processor, RAM, harde schijf, toetsenbord, beeldscherm, etc. (bij een mobiele telefoon denkt men bijvoorbeeld aan het scherm, adresboek, batterij, netwerkverbinding etc.)
  2. het zorgt ervoor dat applicaties gebruik kunnen maken van de hardware, zonder dat zij alle details van deze hardware hoeven te weten.
  • Interactiveprocessing
    na opstarten van een proces is bijsturing mogelijk.
  • Real-time processing
    programma reageert terstond op acties van de gebruiker (word-processor).
  • Time-sharing
    de programma's van verschillende gebruikers krijgen elk een 'time-slice' toegekent.
  • Multitasking
    time-sharing in single user environments.
  • Load balancing
    multitasking met meerdere processoren.
  • Scaling
    opsplitsen van een taak in een aantal kleinere taken die dan over de aanwezige processoren kunnen worden verdeeld.

Taken van een besturingssysteem.

De taken van het besturingssysteem kunnen in de volgende categorieën worden verdeeld:
  • Processor management;
  • Memory management;
  • Device management;
  • Storage management;
  • Application interface;
  • User interface.

Processor management

Alvorens op proces management in te gaan, staan we even stil bij het verschil tussen een proces en een programma.
De status van een proces is een tijdsimpressie (snapshot) van de computer activiteiten.
Eén programma kan gekoppeld zijn aan meerdere processen, afhankelijk van het aantal malen dat het programma opgestart is (door misschien wel verschillende gebruikers).

Processor management komt in feite neer op twee belangrijk onderdelen:
  1. zorg ervoor dat elk proces of applicatie voldoende processor tijd krijgt zodat deze processen of applicaties goed kunnen functioneren.
  2. zorg ervoor dat zoveel mogelijk processor cycli efficiënt gebruikt worden.
Dit geheel wordt helemaal belangrijk bij een multi-tasking systeem.
Nu moet het besturingssyteem de uitvoering van applicaties zo organiseren dat men het idee heeft dat meerdere taken tegelijk worden uitgevoerd terwijl de processor echter slechts één taak per tijdseenheid kan uitvoeren.

Dit wordt als volgt aangepakt:
In dit geheel zijn belangrijke taken weggelegd voor de 'scheduler' en de 'dispatcher'.

Dit heen en weer schuiven van processen lijkt nogal omslachtig,  ..... is multi-tasking en time-sharing wel zo efficiënt

Memory Storage and Management.

Als een  OS het computergeheugen beheert, zijn de volgende twee zaken van belang:
  1. Elk proces moet genoeg geheugen tot zijn beschikking hebben om te kunnen draaien, en geen enkel proces mag in het geheugen gebied van een ander proces komen.
  2. De verschillende geheugentypen van het systeem moeten zo efficiënt mogelijk worden gebruikt.
    Is er bijvoorbeeld niet genoeg werkgeheugen, dan zal de memory manager een gedeelte van de harde schijf gaan gebruiken als 'virtual memory' en de data als 'pages' wegschrijven en teruglezen.

De verschillende geheugentypen


Houd er rekening mee, dat eerst het besturingssysteem zelf in het Ram geheugen wordt geladen. Daarna worden de verschillende drivers geladen die nodig zijn voor het aansturen van de hardware (video, geluid, muis, toetsenbord, printer, etc).
Vervolgens worden de verschillende applicaties opgestart (mail, browser, etc).

Device Management.

Door middel van speciale programma's (drivers) kan het OS communiceren met de randapparatuur van de computer.
Eén van de belangrijkste functies van een driver is het omzetten (vertalen) van OS commando´s naar elektrische signalen voor het randapparaat (en andersom).
 
Men heeft met opzet de functionaliteit van drivers niet in het OS zelf opgenomen. Dit heeft het grote voordeel dat het OS niet behoeft te worden aangepast als er weer eens een nieuwe versie van een randapparaat op de markt komt.

Application interface.

Net zoals ' drivers'  het mogelijk maken dat  applicaties gebruik kunnen maken van randapparatuur, maken Application Program Interfaces (API) het mogelijk dat  verschillende applicaties via het besturingssysteem gebruik kunnen maken van de computerfuncties zonder direct alles te weten over de werking van de CPU of andere computeronderdelen.

User interface.

Een gebruikers-interface zorgt voor structuur in de interactie tussen de gebruiker en computer.
In de laatste tien jaar is de nadruk zwaar komen te liggen op de grafische gebruikers interface (GUI).
Via de UI vraagt de gebruiker het OS bepaalde taken uit te voeren (bestanden kopiëren, verplaatsen, verwijderen). Belangrijke onderdelen zijn o.a. de window manager en de file manager.

De Shell en de Kernel



Opstarten van de computer: Post.


Als de computer wordt aangeschakeld, volgt een electrisch signaal een afgebakend pad naar de CPU om data te verwijderen die eventueel nog in de interne geheugenregisters aanwezig zijn.
Dit signaal stelt de programmateller, een register van de CPU, op een bepaalde waarde in bijv. F000.
De waarde in de programmateller deelt de CPU het adres mee van de volgende instructie die verwerkt moet worden. 

In dit geval is het adres het begin van een startprogramma dat opgeslagen is op het adres F000 in een verzameling ROM-chips die het basic input/output system (BIOS) bevatten.

De CPU gebruik het adres om het ROM-BIOS startprogramma te vinden, dat op zijn beurt een aantal systeemcontroles uitvoert die bekend staan onder de naam Power-On-Self-Tests (POST's).

De CPU controleert eerst zichzelf en het POST programma. Hierbij wordt op verschillende locaties programmacode gelezen, die vergeleken wordt met vast opgeslagen informatie.

De CPU stuurt signalen over de systeembus om te controleren of deze circuits correct werken.
De CPU controleert de klok van het systeem, die ervoor zorgt dat alle operaties van de PC gesynchroniseerd en ordelijk verlopen.
De POST-procedure controleert het geheugen op de grafische kaart en de videosignalen die de weergave verzorgen.
Vervolgens wordt de BIOS-code van de grafische kaart opgenomen in het systeem-BIOS en in de geheugenconfiguratie verwerkt.

Op dit moment ziet u voor het eerst iets op uw monitor verschijnen.

De Post controleert met een serie tests de werking van de RAM-chips.
De CPU schrijft data naar deze chips, die vervolgens gelezen en vergeleken worden met de weggeschreven data.

Op uw monitor ziet u de geheugenhoeveelheid die tijdens deze test gecontroleerd wordt.

De CPU controleert vervolgens of het toetsenbord correct aangesloten is en of er toetsen zijn ingedrukt.
De POST stuurt via specifieke buslijnen signalen naar eventueel aanwezige schijfstations.
De reacties bepalen welke schijfstations beschikbaar zijn.
De resultaten van de POST woden vergeleken met een tabel in de CMOS-chip.
In deze tabel zijn de geïnstalleerde componenten opgenomen. Een CMOS-chip behoudt dankzij een batterij zijn informatie als de computer uitgeschakeld wordt.
Sommige systeemcomponenten bevatten hun eigen BIOS-code, bijvoorbeeld sommige schijfcontrollers. 
Is dit het geval, dan wordt deze code opgenomen in het BIOS en het geheugenbeheer van het systeem.

De PC is nu in staat om het besturingssysteem vanaf schijf te laden.

Booting.

Het opstarten van het besturingssysteem zelf wordt boot strapping of booting genoemd.





Verschillende typen besturingssystemen.


§4.1 Network Fundamentals.

Een verzameling onderling verbonden, autonome computers (eigen processor) die informatie en bronnen (resources) delen.
 

Kenmerkend voor een netwerk:



Waarom is men in computernetwerken geïnteresseerd ?

Verder:

De fysieke verbinding wordt het transmissiemedium genoemd:

Coaxkabel

De coaxkabel bestaat fysiek uit een aantal onderdelen. 

  • De buitenste laag van de coaxkabel is meestal van een flexibele kunststof gemaakt. 
  • Direct hieronder zit een laag gemaakt van koper, aluminium of staal, welke als doel heeft elektromagnetische straling af te vangen via het kooi van faraday principe. Deze shielding kan ook gebruikt worden als aarding. 
  • Onder deze afschermende laag bevindt zich een stijvere kunst omhulsel, met hierin een koperen kern. De samenstelling van het kunststof omhulsel is niet aan bepaalde standaarden gebonden, en is afhankelijk van de dikte van de koperkern. Er zijn verschillende dikte koperkern beschikbaar op de markt. Ook bestaat er een grote diversiteit aan shieldings en kunststof omhulsels. 
Toegepaste Snelheid

Door coax kabel kan afhankelijk van de toepassing van hardware zoals modems en decoders theoretisch tot ongeveer een gigabit/s verstuurd worden. 
Deze situatie gaat echter uit van een ideale situatie zonder omgevingsruis of signaalverlies. 
Praktisch is de snelheid op te voeren tot 155 megabit/s. Dit brengt echter (relatief) grote investeringen met zich mee. 

In de praktijk wordt coax ingezet voor een maximale snelheid van 10 megabit/s.


Voordelen:
  • Een coax netwerk is relatief goedkoop
  • De fabricage van coax kabel is eenvoudig, er zijn geen hoogwaardige materialen nodig. 
  • De breedband inzetbaarheid van coax kan als een voordeel genoemd worden. Hierdoor is het uitermate goed toepasbaar waar een beperkte bandbreedte nodig is en kleine afstand te overbruggen is. 
  • Coax is relatief makkelijk te leggen, en ook coax verbindingen en splitsingen zijn eenvoudig te realiseren. 
Nadelen:
  • Coaxkabel is maar beperkt schaalbaar. De bandbreedte wordt beperkt door het frequentiebereik, welke op dit moment al optimaal gebruikt wordt. Het verder uitbuiten van de bandbreedte mogelijkheden van coax, dus boven de 155 megabit, is duur, en onrendabel. 
  • Verder speelt het een rol dat coax erg gevoelig is voor elektromagnetische straling. Omdat er elektrische signalen over coaxkabel getransporteerd wordt, kunnen elektromagnetische velden zorgen voor een ruis. Deze is bij coax standaard ongeveer 20 dB op een versterkt vermogen van 86 dB, met een verslechtering van 3dB per 40 meter. Dit lijkt een klein verschil, maar dat is het niet want de dB schaal is logaritmisch verdeeld.

Unshielded Twisted Pair (UTP)

Naast de coaxkabel vinden we tegenwoordig veel vaker de zgn. UTP kabel. Deze is een stuk voordeliger in prijs en de praktisch haalbare overdrachtssnelheid ligt ook hoger (10 - 100 Mb/s).
Het meest toegepast is de CAT5 UTP kabel met RJ45 stekker (Registered Jack - lijkt op een telefoonstekker-; de 45 geeft de manier van aansluiten aan 'pin numbering scheme').
In onderstaand tabel wordt getoond hoe zo'n kabel zelf te maken is, met gebruik van de juiste gereedschap.
 

In onderstaand tabel worden de kleurenschema's wat duidelijker getoond.
 
Wire pair #1:  White/Blue
Blue 
Wire pair #2:  White/Orange
Orange 
Wire pair #3:  White/Green
Green 
Wire pair #4:  White/Brown
Brown 

Voor het aansluiten van de kabels op de stekker pennen wordt het volgende schema gebruikt:
 
Pair#2 is connected to pins 1 and 2 like this:
Pin 1 wire color:  white/orange
Pin 2 wire color: orange
Pair#3 is connected to pins 3 and 6 like this:
Pin 3 wire color: white/green
Pin 6 wire color: green
Pair#1
Pin 4 wire color: blue
Pin 5 wire color: white/blue
Pair#4
Pin 7 wire color: white/brown
Pin 8 wire color: brown

 
 
Glasvezel

De glasvezel kabel bestaat uit een dikke kunststof buitenkant, met daarin een kunststof schaal. Een glasvezelnetwerkkabel bestaat uit ten minste twee strengen met elk een kunstof beschermlaag: één streng zendt en de ander ontvangt.

Er zijn verschillende soorten en dikten glasvezelkabel verkrijgbaar. Deze variëren van 10 vezels voor intern gebruik tot circa 4000 vezels in lichte zeekabels. Iedere vezel is per stuk verpakt in een kunststof coating waardoor er minder kans op breuk is, en het restlicht binnengehouden wordt.

Wat er opvalt aan deze kabel, in vergelijking met de coaxkabel is dat er geen (elektromagnetische) shielding aanwezig is. 

Dit is niet nodig omdat het licht wat door de glasvezel gestuurd wordt maar in een heel beperkte mate te beïnvloeden is door elektromagnetische velden. Het enige wat deze (sterke) velden kunnen doen is het licht iets wat afbuigen, iets wat binnen de grenzen van de brekingsindex van glas, in combinatie met eventuele hoeken in de kabel niet snel een probleem oplevert. 

De optische glasvezelkabels transporteren geen elektrische signalen. De datasignalen worden omgezet in lichtsignalen. Dit gebeurt d.m.v.:

  • laser
    • zeer zuiver;
    • grote bandbreedte;
    • grote afstanden;
    • DUUR.
  • light-emitting diode (LED)
    • goedkoop, maar produceren licht van slechtere kwaliteit;
    • goed genoeg voor bandbreedten tot 100 Mbps wanneer minder dan 2 km moet worden overbrugd.
Aan de zuiverheid van het gebruikte glas worden bijzonder hoge eisen gesteld. Vervuilingen in de vezel kunnen niet verholpen worden, en zullen worden verwijderd bij productie. Door deze manier van produceren, is er sprake van relatief veel uitval, en productietijd. 
Hierdoor is glasvezel per meter vele malen duurder dan coax/UTP.
Mogelijke Snelheid

De doorvoer van data over een glasvezel is theoretisch vrijwel onbeperkt. 

Wanneer standaard technieken toegepast worden is een snelheid van 155 megabit/s per vezel haalbaar

Wanneer er echter gebruik gemaakt wordt van meerdere kleuren laser, zijn met de huidige stand van toepasbare techniek verbindingen mogelijk van meer dan 2.5 gigabit/s per vezel. De capaciteit is eenvoudig uit te breiden door het toevoegen van nieuwe kleuren lazers en compressietechnieken. 

Op dit moment wordt er getest met een techniek die een verbinding van 7 terabit/s per vezel mogelijk maakt. Deze snelheden staan niet in verhouding met de snelheden die over coax behaald kunnen worden, vooral omdat er sprake is van communicatie over één vezel. 


Voordelen
  • Op dit moment lijkt er nog geen grens te zitten aan de capaciteit van glasvezel. Hierdoor is de glasvezel klaar voor de toekomst. 
  • Verder is een erg belangrijk voordeel dat het signaal binnen een glasvezel relatief ruisvrij doorgegeven wordt. Met de huidige stand van de techniek hoeft het signaal pas na 60 km versterkt te worden, wat dus een exponentieel verschil geeft met de coax kabel.


Nadelen

  • Glasvezel is op dit moment erg duur in aanschaf mede door een schaarste op de wereldmarkt. 
  • Ook is het zo dat de verdelers en versterkers nodig voor glasvezel verkeer erg prijzig zijn. 
  • In vergelijking met het coax medium speelt ook mee dat coax modems al breed geproduceerd worden, en dat glasvezelmodems nog aan het begin van het ontwikkeltraject staan. Hierdoor zitten er in deze modems nog relatief veel kinderziekten, en zijn deze nog niet inzetbaar voor particulier (thuis) gebruik. Dit is echter een nadeel die in de loop der tijd door de voortschrijdende technologische ontwikkelingen weg zal gaan vallen. 
Toekomst muziek: Lambda netwerken
Zoals zo vaak, vinden we de nieuwste ontwikkelingen op universiteiten. Op het ogenblik wordt onderzoek gedaan naar de mogelijkheden van een volledig optisch internet.
 

NetherLight's international verbindingen bestaat thans (2003) uit:

Within the Netherlands, The Radio Astronomy institute ASTRON/JIVE has a dedicated DWDM (dense wavelength division multiplexing) connection into NetherLight, capable of carrying up to 32 times 2.5-Gbps circuits.

NetherLight is gehuisvest  bij SARA Reken- en Netwerkdiensten  in Amsterdam.
Het Informatica Instituut van de Universiteit van Amsterdam.



10 oktober 2003 (http://www.ncdm.uic.edu/pressrelease.html).
Onderzoekers van de Universiteit van Illinois in Chicago zijn er in
geslaagd om met behulp van het nieuwe netwerkprotocol UDT een grote
hoeveelheid data met een snelheid van 6,8 Gbit/s over de Atlantische
oceaan te vervoeren. In totaal werd 1,4 Terabyte aan astronomische
gegevens binnen een half uur verstuurd tussen Chicago en Amsterdam.
Hierbij werd gebruik gemaakt van de verbindingen van SURFnet en Abilene,
het Amerikaanse onderzoeksnetwerk.

UDT (UDP-based Data Transport) is een netwerkvriendelijk protocol dat is
ontwikkeld door het National Center for Data Mining in Chicago. Het
nieuwe protocol kan veel sneller data over het internet vervoeren dan
bestaande protocollen. Ter vergelijking, met het veelgebruikte protocol
TCP (Transmission Control Protocol) zou het 25 dagen kosten om dezelfde
hoeveelheid data te verzenden.


Indeling computernetwerken.
 
Netwerken kunnen in twee klassen worden ingedeeld nl:
<>Er kan ook een indeling worden gemaakt naar grootte.


 

Tegenwoordig ook intranet en extranet.
 



 

Local Area Network (LAN)

Netwerktopologieën.

De fysieke indeling van een netwerk heet de netwerktopologie.

Bustopologie

Deze bestaat uit één kabel die alle computers van het netwerk in één lijn verbindt.
 
 

 

Filmpje over busnetwerken.



 

Stertopologie

Bij deze zijn alle apparaten in het netwerk direct op een hub of switch aangesloten.
 
 

 
 

Filmpje over de sternetwerk.

Ringnetwerk

Hierbij zijn alle computers via segmenten van een kabel in ringvorm, dus zonder einden op het netwerk aangesloten. Op het netwerk worden de berichten in één richting rondgestuurd.
 
 

 

Film over ringnetwerk.

Combinatie van netwerktopologieën
 


Resources

Nadat een netwerk bekabeld is (in een LAN), zijn er diverse manieren op de netwerkbronnen (network resources) te delen; de twee belangrijkste zijn:



IP-adress

Elk computer een unieke naam: IP-adres (Internet Protocol). Een IP-adres heeft de volgende vorm:
                xxx:xxx:xxx:xxx
                waarbij xxx een getal is tussen 0 en 255.

bijvoorbeeld: 130.161.180.1 of 194.171.128.221

Men kent statische (vaste) en dynamische IP-adressen, bij deze laatste maakt men gebruik van een DHCP server (Dynamical Host Configuration Protocol).

M.b.v. het commando ipconfig kunt u het toegekende IP-adres opvragen (KIM 194.171.128.xxx).

IPv6   (IP versie 6)
IPNG: Internet Protocol Next Generation.

Door de wereldwijde explosie van internet, raken zo langzamerhand de IP-adressen op!
Oplossing: IPv6
        overgang van 32 bit naar 128 bit adressen.
 
IPv4 IPv6
4 groepen decimale getallen tussen 0 en 255 gescheiden door een '.' 6 groepen van hexadecimale getallen tussen 0000 en FFFF gescheiden door een ';'
Om een decimaal getal tussen 0 en 255 binair aan te kunnen geven hebben we 8 bits nodig Om een hexadeimaal getal tussen 0000 en FFFF binair aan te  kunnen geven hebben we 16 bits nodig

In theorie kan men met 128 bits adressen in totaal
2128 = 3,4028236692093846346337460743177e+38 IP-nodes adresseren.

In de praktijk ligt dit aantal een stuk lager, o.a. omdat het onmogelijk is wereldwijd in één keer van IPv4 naar IPv6 over te gaan. Beide protocollen moeten dus naast elkaar kunnen bestaan.

The IPv6 transition mechanisms include a technique for hosts and routers to dynamically tunnel IPv6 packets over IPv4 routing infrastructure.
IPv6 nodes that utilize this technique are assigned special IPv6 unicast addresses that carry an IPv4 address in the low-order 32-bits.
This type of address is termed an "IPv4-compatible IPv6 address" and has the format:

     |                80 bits               | 16 |      32 bits        |
     +--------------------------------------+--------------------------+
     |0000..............................0000|0000|    IPV4 ADDRESS     |
     +--------------------------------------+----+---------------------+

A second type of IPv6 address which holds an embedded IPv4 address is also defined. This address is used to represent the addresses of IPv4-only nodes (those that *do not* support IPv6) as IPv6 addresses.
This type of address is termed an "IPv4-mapped IPv6 address" and has the format:
 

     |                80 bits               | 16 |      32 bits        |
     +--------------------------------------+--------------------------+
     |0000..............................0000|FFFF|    IPV4 ADDRESS     |
     +--------------------------------------+----+---------------------+

Dit houdt in, dat er 'slechts' 96 bits overblijven voor nieuwe adressen.
296 = 79228162514264337593543950336 (79.228.162.514.264.337.593.543.950.336).

Naast het feit dat er meer adressen te verdelen zijn, heeft IPv6  nog een aantal andere voordelen die het best zichtbaar worden als men de nieuwe header-formaat bekijkt.

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Version| Prior |                       Flow Label              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Payload Length        |  Next Header  |   Hop Limit   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                         Source Address                        +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                      Destination Address                      +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Ver
4-bit Internet Protocol version number = 6.

Prio
4-bit Priority value. See IPng Priority section.

Flow Label
24-bit field. See IPng Quality of Service section.

Payload Length
16-bit unsigned integer. Length of payload, i.e., the rest of the packet following the IPng header, in octets.

Next Hdr
8-bit selector. Identifies the type of header immediately following the IPng header. Uses the same values as the IPv4 Protocol field [6].

Hop Limit
8-bit unsigned integer. Decremented by 1 by each node that forwards the packet. The packet is discarded if Hop Limit is decremented to zero.

Source Address
128 bits. The address of the initial sender of the packet.

Destination Address
128 bits. The address of the intended recipient of the packet (possibly not the ultimate recipient, if an optional Routing Header is present).

Voordelen:



Privé lokaal netwerk (peer-to-peer)

Om thuis een eenvoudig netwerk van 2 of meer computers aan te kunnen leggen heeft men de volgende componenten nodig:

Deze laatste verbindt de twee netwerken met elkaar (lokaal netwerk en internet).
 
Tegenwoordig zijn standaard setjes te koop. Voorbeeld van een hub.
Opzet van lokaalnetwerk dat via een router met het internet verbonden is.

De router is uitgerust met twee netwerkkaarten:


De netwerkkaart wordt meer algemeen ook wel "netwerkadapter" genoemd (NIC: Network Interface Card).


On the Internet, a router is a device or, in some cases, software in a computer, that determines the next network point to which a packet should be forwarded toward its destination. The router is connected to at least two networks and decides which way to send each information packet based on its current understanding of the state of the networks it is connected to. A router is located at any gateway (where one network meets another), including each Internet point-of-presence. A router is often included as part of a network switch.

A router may create or maintain a table of the available routes and their conditions and use this information along with distance and cost algorithms to determine the best route for a given packet. Typically, a packet may travel through a number of network points with routers before arriving at its destination. Routing is a function associated with the Network layer (layer 3) in the standard model of network programming, the Open Systems Interconnection (OSI) model. A layer-3 switch is a switch that can perform routing functions.


Wilt u meer computers met elkaar verbinden, dan hebt u een soort stekkerdoos nodig die er voor zorgt dat het verkeer tussen die computers geregeld wordt.


In general, a hub is the central part of a wheel where the spokes come together.

On an Ethernet local area network (LAN), a switch determines from the physical device (Media Access Control or MAC) address in each incoming message frame which output port to forward it to and out of. In a wide area packet-switched network such as the Internet, a switch determines from the IP address in each packet which output port to use for the next part of its trip to the intended destination.

In the Open Systems Interconnection (OSI) communications model, a switch performs the layer 2 or Data-Link layer function. That is, it simply looks at each packet or data unit and determines from a physical address (the "MAC address") which device a data unit is intended for and switches it out toward that device. However, in wide area networks such as the Internet, the destination address requires a look-up in a routing table by a device known as a router. Some newer switches also perform routing functions (layer 3 or the Network layer functions in OSI) and are sometimes called IP switches.


Als u de hardware hebt aangesloten, moet u er vervolgens voor zorgen dat ook softwarematig het een en ander gebeurt.

Voor elke computer in het netwerk moeten de volgende zaken worden ingesteld: De computer die aan het Internet verbonden is moet een uniek geregistreerd IP-adres hebben.
Voor de computers achter de router zijn aparte IP-adressen gereserveerd die alleen voor interne communicatie worden gebruikt.

Deze werkwijze wordt algemeen toegepast en staat bekend als "Network Adress Translation" (NAT).

Voor gebruik op een prive-netwerk is een aantal IP-adressen gereserveerd:
 
Klasse A 10.0.0.1 tot en met 10.255.255.254 
Klasse B 172.16.0.1 tot en met 172.31.255.254
Klasse C 192.168.0.1 tot en met 192.168.255.254

U kunt dus elk van deze IP-adressen gebruiken.
Even opletten: een IP-adres bestaat uit vier groepjes getallen (bytes). De kleinste waarde die u kunt gebruiken voor een computeradres is 1, de grootste waarde is 254.

Subnetmasker
In een IP-adres zitten twee soorten informatie opgeslagen:

Het lastige van IP-adressen is dat er geen standaard afspraak is welk gedeelte van het IP-adres gebruikt wordt als netwerkadres en welk deel als computeradres.

Om die reden moet bij elk IP-adres een subnetmasker opgegeven worden.

Het principe is eenvoudig: u zet gewoon het subnetmasker onder het IP-adres. Een nul in het
subnetmasker geeft aan dat het overeenkomende getal in het IP-adres gebruikt wordt als
computeradres, als er 255 staat wordt het overeenkomende getal gebruikt als netwerkadres.

In het voorbeeldnetwerk ziet u dat het subnetmasker bij alle IP-adressen op het lokale netwerk is
ingesteld op 255.255.255.0. Dit betekent dat de eerste drie getallen gebruikt worden als netwerkadres en het laatste getal als computeradres.

De router heeft het subnetmasker 255.255.255.224.
Dit betekent dat een deel van het laatste getal wordt gebruikt als netwerkadres en een deel als computeradres.

Groep of domein
Thuis netwerken zijn vrijwel altijd opgezet als werkgroep, waarbij de computers in het netwerk direct met elkaar communiceren zonder tussenkomst van een server.

Bij bedrijven wordt gebruik gemaakt van een domein waarop men dan in moet loggen (op de server worden de userid's en passwoorden bewaard).

Gateway
Om te kunnen communiceren binnen een netwerkje, heeft een computer voldoende aan een IP-adres en een bijbehorend subnetmasker.
Als u ook wilt kunnen communiceren met computers op andere netwerken, moet u de computer vertellen hoe deze andere netwerken bereikt kunnen worden. Dit doet u door een "default gateway" te specificeren, noem het maar het adres van de deur naar buiten.

Het adres van de default gateway is altijd het adres van de router op uw netwerk. In ons voorbeeld is de default gateway dus 192.168.0.1

In the network for an enterprise, a computer server acting as a gateway node is often also acting as a proxy server and a firewall server.
A gateway is often associated with both a router, which knows where to direct a given packet of data that arrives at the gateway, and a switch, which furnishes the actual path in and out of the gateway for a given packet.
 

DNS-server
Als u alle voorgaande informatie hebt opgegeven, weet uw computer genoeg om te kunnen communiceren met elke andere computer op het internet.

U kunt alleen nog geen namen gebruiken. Dit zou betekenen dat u de IP-adressen van alle computers waarmee u wilt communiceren uit uw hoofd moet weten!!

Om er voor te zorgen dat u gebruik kunt maken van namen, wordt gebruik gemaakt van één of meer DNS-servers.
De DNS-server zorgt ervoor dat een duidelijke naam zoals KIM.nl vertaald wordt in een IP-adres.
 
Bovenstaande items zijn in Windows via het Network icon van het configuratie menu (Control Panel) in te stellen.
De basis van alle moderne netwerken is het TCP/IP protocol (Tranmission Control Protocol / Internet Protocol.

Controlle op TCP/IP configuratie
Om snel te controleren of de TCP/IP configuratie goed is uitgevoerd en uw netwerkkaart goed werkt, kunt u een ping sturen naar het 'loop-back-adres' 127.0.0.1.

Populair gezegd: met het ping commando zendt u een verzoek naar een bepaalde machine om een teken-van-leven te geven.


Meer info over de netwerkconfiguratie van uw machine is te verkrijgen m.b.v. onderstaande commando's:

MAC adress
Naast het IP-adres komen we bij netwerken ook vaak de term Mac-adres (Media Access Control ) tegen. Dit is het fysieke adres van elk apparaat. Denk bijvoorbeeld aan een netwerkkaart die in een computer zit.
Het Mac adres bestaat uit 2 maal 3 bytes (48 bits):

IPX (Internetwork Packet Exchange) is a networking protocol from Novell that interconnects networks that use Novell's NetWare clients and servers. IPX is a datagram or packet protocol. IPX works at the Network layer of communication protocols and is connectionless (that is, it doesn't require that a connection be maintained during an exchange of packets as, for example, a regular voice phone call does). Packet acknowledgment is managed by another Novell protocol, the Sequenced Packet Exchange (SPX).

NetBEUI (NetBIOS Extended User Interface) is a new, extended version of NetBIOS, the program that lets computers communicate within a local area network. NetBEUI (pronounced net-BOO-ee) formalizes the frame format (or arrangement of information in a data transmission) that was not specified as part of NetBIOS. NetBEUI was developed by IBM for its LAN Manager product and has been adopted by Microsoft for its Windows NT, LAN Manager, and Windows for Workgroups products. Hewlett-Packard and DEC use it in comparable products.



§4.2 The Internet.

Het begon allemaal in 1969 met het Advanced Research Projects Agency (ARPA) waar wetenschappers in dienst van het Amerikaanse ministerie van defensie werkten.

Het was de tijd van de koude oorlog en men maakte zich zorgen over de gevolgen van een eventuele nucleaire aanval van de Russen. De wetenschapscentra van ARPA waren verdeelt over het land. Men vroeg zich af wat er zou gebeuren als een van die centra uitgeschakeld zou worden door een bom.
Tot die tijd bestond een netwerk uit directe verbindingen tussen computers. Geen probleem zolang alle verbindingen intact zijn, maar bij het uitvallen van een van de knooppunten zou een groot deel van het netwerk onbereikbaar worden.


Packet switching

De oplossing die men bij ARPA bedacht werd packet switching genoemd.
Als er informatie over het netwerk moet worden verstuurd, wordt deze in een elektronische envelope gestopt en voorzien van een adres. Grote bestanden worden opgesplitst over een aantal enveloppen, die elk naast het adres tevens een serie nummer krijgen. Langs welke route de enveloppen op het adres belanden maakte niet uit. Als ergens in het netwerk een knooppunt uitvalt dan kiezen de enveloppen een andere route.

Op het eindadres aangekomen worden de informatiepakketjes weer uit de enveloppen gehaald, eventueel in de juist volgorde aan elkaar geplakt en klaar is kees.

Zelfs als er onderweg een pakketje zoekraakt is dat geen ramp: dat ene pakketje wordt dan opnieuw opgevraagd aan de verzender.

TCP/IP

Het principe van pakket switching werd later, in 1974, door Vincent Cerf en Robert Kahn uitgewerkt in het netwerkprotocol TCP/IP.
Dat is de taal waarin alle Internetcomputers vandaag aan de dag met elkaar praten.

In 1970 draaide het ARPA net, een experimenteel netwerk dat vier universiteiten in de VS verbond:

Andere wetenschapscentra zagen al snel de voordelen van packet switching in en sloten zich aan bij het Arpanet. Twee jaar later omvatte het netwerk al veertig lokaties.

Naast ARPAnet onstond een tweede netwerk, CSnet. In 1982 werden beide netwerken aan elkaar gekoppeld met het TCP/IP protocol.
Ook elders in de wereld ontstonden grote netwerken. In Europa was dat EUnet, het European Unix Network.
Door koppeling van deze netwerken aan het Amerikaanse systeem ontstond het wereldwijde net dat we nu kennen onder de naam:
Internet.



§4.3 WWW; How it all started with Tim Berners-Lee

W3 Concepts

The world-wide web is conceived as a seamless world in which ALL information, from any source, can be accessed in a consistent and simple way.

Universal Readership

Before W3, typically to find some information at CERN (het Europese instituut voor deeltjes fysica in Geneve) one had to have one of a number of different terminals connected to a number of different computers, and one had to learn a number of different programs to access that data.

The W3 principle of universal readership is that once information is available, it should be accessible from any type of computer, in any country, and an (authorized) person should only have to use one simple program to access it.

This is now the case.In practice the web hangs on a number of essential concepts. Though not the most important, the most famous is that of hypertext.


 
 

Hypertext

Hypertext is text with links. Hypertext is not a new idea: in fact, when you read a book there are links between references (see section 3), footnotes, and between the table of contents or index and the text. If you include bibliographies which refer t other books and papers, text is in fact already full of references. With hypertext, the computer makes following such references as easy as turning the page. This means that the reader can escape from the sequential organization of the pages to follow pursue a thread of his or her own. This makes hypertext an incredibly powerful tool for learning. Hypertext authors design their material to make it open to active exploration, and in doing so communicate their information and ideas more effectively.

W3 uses hypertext as the method of presentation, although as we shall see, this does not necessarily require that authors write hypertext. In W3, links can lead from all or part of a document to all or part of another document. Documents need not be text: they can be graphics, movies and sound, so the term "hypermedia", meaning "multimedia hypertext" applied equally well to W3.

Searching

Whilst hypertext is a powerful tool for finding information, it cannot cope with large amorphous masses of data. For these cases, computer-generated indexes allow the user to pick out interesting items from textual input. There are therefore two operations a reader can use:

Indexes appear within the web just like other documents, but a search panel (or FIND command) accompanies them which allows the input of text. Behind each index is some search engine: many different search engines with different capabilities exist on different servers. However, they are all used in exactly the same simple way: you type in some text, and you get back a hypertext answer which points you to things which were found by the search.

Client-Server Model

To allow the web to scale, it was designed without any centralized facility.



 
 

Format negotiation

Since computers were invented, there have been a great variety of different codes for representing information. It has never been possible to pick one as the "best" code, as each has its advantages and its advocates. Our experience is that any attempt to enforce a particular representation such as postscript, TeX, or SGML leads to immediate war.

A feature of HTTP is that the client sends a list of the representations it understands along with its request, and the server can then ensure that it replies in a suitable way. We needed this feature to cope with the existing mass of graphics formats for example (GIF, TIFF, JPEG to name but a few). If we cannot cope with the existing formats, how can we hope to evolve to take advantage of all the exciting new formats yet to be invented?

Format negotiation allows the web to distances itself from the technical and political battles of the data formats.

 A spin-off of this involves high-level formats for specific data. In certain fields, special data formats have been designed for handling for example DNA codes, the spectra of stars, classical Greek, or the design of bridges. Those working in the field have software allowing them not only to view this data, but to manipulate it, analyse it, and modify it. When the server and the client both understand such a high-level format, then they can take advantage of it, and the data is transferred in that way. At the same time, other people (for example high school students) without the special software can still view the data, if the server can convert it into an inferior but still useful form. We keep the W3 goal of "universal readership" without compromising total functionality at the high level.


Film over internet.
 

§4.3 HTML (Hyper Text Markup Language).

The Minimal HTML Document
Every HTML document should contain certain standard HTML tags. Each document consists of head and body text. The head contains the title, and the body contains the actual text that is made up of paragraphs, lists, and other elements. Browsers expect specific information because they are programmed according to HTML and SGML specifications.

Required elements are shown in this sample bare-bones document:

  <html>
       <head>
            <title>A Simple HTML Example</title>
      </head>
      <body>
            <h1>HTML is Easy To Learn</h1>
          <p>Welcome to the world of HTML.
                 This is the first paragraph. While short, it is 
                  still a paragraph!
          </p>
          <p>And this is the second paragraph.</p>
       </body>
 </html>

Here is a short list of frequently used tags:

Name Example Discription/Options
<html> <html>
       <head>
              <title> ..... </title>
       <head>
       <body>
              contents
       </body>
</html>
Each HTML document should contain a <HTML> and </HTML> tag. 
<head> <head>
      <title> ..... </title>
</head>
The header is used for title and scripts ...
<title> <title> ..... </title> Name that apears at the top of the browser window.
<body> <body>
        contents
</body>
Your actual window input.
<body 
  background="path" bgcolor="value" text="value" 
  link="value" vlink="value" alink="value"
>
<p> <p> ..... </p> <p align="center"> ... <p>
Paragraph
<br> .........<br> End of line.
<h1> <h1> ..... </h1> There are six levels of headings, numbered 1 through 6.
<ul> <ul>
     <li> ...... </li>
     <li> ...... </li>
</ul>
Unnumbered list, always in combination with the list-tags (li).
Can be nested.
<LI TYPE="value"> </LI>
Value can be: disc, circle, square, 1, a, A, i or I

<LI VALUE="value"> </LI>
defines startvalue

<ol> <ol>
     <li> ...... </li>
     <li> ...... </li>
</ol>
Ordered or Numbered list, always in combination with the list-tags (li).
Can be nested.
<dl> <dl>
     <dt> ...... </dt>
     <dd> ...... </dd>
</dl>
Defintion list; always in combination with 
<dt> definition text
<dd> definition data

<dl compact>

<pre> <pre>
        contents
</pre>
Preformatted  text in a fixed-width font; Text will be displayed exactly as you typed it.

<pre width="value")

<b>
<i>
<b> ........ </b>
<i>  ......... </i>
Bold or Italic text.
<font> <font> ........ </font> You may choose a font.
<font size="value between 1 and 7" color="value" face="value>
<hr>
Horizontal ruler

<hr width="percentage" size="value">

<a> <a href="path"> click </a> The chief power of HTML comes from its ability to link text and/or an image to another document or section of a document.
<img> <img src="path"> Inline images

<img src="SelfPortrait.gif" height="value" width="value" alt ="alternative text"  align="center" border="value">



Linking
The chief power of HTML comes from its ability to link text and/or an image to another document or section of a document. A browser highlights the identified text or image with color and/or underlines to indicate that it is a hypertext link (often shortened to hyperlink or just link).

HTML's single hypertext-related tag is <A>, which stands for anchor.
To include an anchor in your document:
  1. start the anchor with <A (include a space after the A)
  2. specify the document you're linking to by entering the parameter HREF="filename" followed by a closing right angle bracket (>)
  3. enter the text that will serve as the hypertext link in the current document
  4. enter the ending anchor tag: </A> (no space is needed before the end anchor tag)

Here is a sample hypertext reference in a file called US.html:

    <A HREF="MaineStats.html">Maine</A>

This entry makes the word Maine the hyperlink to the document MaineStats.html, which is in the same directory as the first document.



URL
<A HREF="http://www.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html">
NCSA's Beginner's Guide to HTML</A>

This entry makes the text NCSA's Beginner's Guide to HTML a hyperlink to this document.



Inline Images
Most Web browsers can display inline images (that is, images next to text) that are in X Bitmap (XBM), GIF, or JPEG format. Other image formats are also being incorporated into Web browsers [e.g., the Portable Network Graphic (PNG) format]. Each image takes additional time to download and slows down the initial display of a document. Carefully select your images and the number of images in a document.

To include an inline image, enter:
        <IMG SRC=SelfPortrait.gif HEIGHT=100 WIDTH=65>

Een HTML handleiding is hier te vinden.

§4.4 Network Protocols GEEN tentamenstof !!




§4.5 Security

Cryptologie.

Internet is absoluut onveilig !!

Eisen aan veilige communicatie:

De vijf beveiligingseisen:
  1. Authenticatie (Authentication, identificatie)
  2. Autorisatie (Authorization, bevoegdheden)
  3. Geheimhouding (Confidentiality, niemand kan meelezen, encryptie)
  4. Integriteit (Data Integrity, ongewijzigde data)
  5.  Onweerlegbaarheid (Nonrepudiation, geen twijfel, noch bij klant noch bij leverancier)

Het vaststellen van iemands identiteit op het Internet:

    * iets dat je weet (wachtwoord, PIN-code);
          o eenvoudig te raden
          o uitlenen
          o sniffen
    * iets dat je hebt (chipkaart);
    * iets dat je bent  (biologische kenmerken).

Biometrics.
bijvoorbeeld vingerafdruk en irisscan.


On the Internet, nobody knows you’re a dog’

Cryptologie is afgeleid van het griekse kryptós lógos wat staat voor 'verborgen woord'.
Het is de wetenschap dat zich bezighoud met het vercijferen (encryptie) en ontcijferen
(decryptie) van code.

    * cryptografie:     het ontwerpen en gebruiken van geheimschriften
    * cryptoanalyse:  het breken van geheimschriften.

Terminologie:
* Door geheimschrift te beschermen tekst: 'klare taal'
* In geheimschrift omgezette klare taal: 'cijfertekst of cryptogram'
* Omzetten van klare taal in cijfertekst: vercijferen (versleutelen)

Vercijfering gebeurt d.m.v. wiskundige algorithmes.
Vercijferen: C = F(K, S1) C: vercijferde tekst;    
K: klare tekst;    
S1: sleutel 1;
S2: sleutel 2.
Ontcijferen: P = G(C, S2)

Als het goed is geldt: P = K

Versleuteling bestaat in verschillende sterktes, maar in principe is geen enkel cryptosysteem onkraakbaar. Het uitgangspunt bij encryptie is daarom dat de versleuteling zo sterk moet zijn, dat een onevenredige inspanning nodig zou zijn om de code te kraken.

Er zijn op het ogenblik twee systemen in omloop:

    * de klassieke (secret key)
    * de public key systemen.

Klassieke systemen (Symmetrische encryptie)
   -          vercijfer, en ontcijfer algorithme (symmetrisch)
   -          verzameling sleutels
   -          S1 = S2

Bij symmetrische cryptografie maken de zender en ontvanger gebruik van dezelfde geheime sleutel. Het uitwisselen van de sleutel kan echter een probleem vormen bij dit systeem.

    * Wat doe je bijvoorbeeld als zender en ontvanger elkaar niet persoonlijk kennen?
    * Of ver uit elkaar wonen?

Dan moet de sleutel via het Internet worden uitgewisseld en de veiligheid is dan niet gegarandeerd.

Het meest gebruikte (klassieke) algorithme voor versleuteling en ontcijfering is:
      DES  (Data Encryption Standard)

Public key systemen

   -          vercijfer, en ontcijfer algorithme (asymmetrisch)
   -          verzameling sleutels voor vercijfering en andere voor ontcijfering.
   -          Geeft het goede antwoord als de relatie tussen de beide sleutels klopt.

Bij asymmetrische cryptografie hebben de zender en ontvanger ieder twee sleutels:

    * één geheime sleutel, die ze alleen persoonlijk kennen en die strikt geheim is
    * één publieke, die openbaar is en waar iedereen gebruik van kan maken.

Asymmetrische cryptografie zit vernuftig in elkaar: de publieke en geheime sleutel zijn verschillend waardoor de één niet uit de ander herleid kan worden, maar ze zijn toch wiskundig verwant waardoor berichten die met de ene sleutel zijn versleuteld met de andere kunnen worden ontcijferd.

De RSA public-key cryptosystem is de meest bekende vorm van public-key cryptografie.
RSA: Rivest, Shamir, en Adleman de namen van de uitvinders van de RSA encryptie methode.
 

ALLES IS TE KRAKEN !!!

DES werkte origineel met een sleutellengte van 56 bits. Men dacht daarmee veilig te zijn, echter zeker door de komst van het Internet wordt het mogelijk codes te kraken. Enkele voorbeelden:

In 1978 toen RSA was uitgevonden, verwachtte men dat 256 bits absoluut onkraakbaar zou zijn, tegenwoordig wordt 1024 bits als de minimale sleutellengte gezien.