You are on page 1of 42

Computer- en Communicatiesystemen

Studieleidraad

Coördinerend verantwoordelijke
Prof. dr. Fabian Di Fiore

Co-titularis
Prof. dr. Frank Van Reeth

Academiejaar 2019–2020
Inhoudsopgave

I Leidraad boek 1
1 Introduction 4
1.1 Inleiding tot computersystemen . . . . . . . . . . . . . . . . . 4

2 Number Systems and Codes 5


2.1 Talstelsels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Floating-point getallen . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Binaire codes, dataopslag en representaties . . . . . . . . . . . 8

3 Combinational Logic 9
3.1 Combinatorische schakelingen . . . . . . . . . . . . . . . . . . 9

4 Synchronous Sequential Circuits 12


4.1 Sequentiële schakelingen . . . . . . . . . . . . . . . . . . . . . 12

5 A Simple Computer 14
5.1 Assemblertaal . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.2 Linken en laden . . . . . . . . . . . . . . . . . . . . . . . . . . 16

7 Input/Output 17
7.1 Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

9 Memory and Storage 19


9.1 Memory and Storage . . . . . . . . . . . . . . . . . . . . . . . 19

13 Embedded Systems 21
13.1 Embedded Systems . . . . . . . . . . . . . . . . . . . . . . . . 21

14 Mobile Processors and System on Chip 23


14.1 Mobile Processors and System on Chip . . . . . . . . . . . . . 23
INHOUDSOPGAVE ii

15 Computer Networks and Distributed Processing 25


15.1 Computer Networks . . . . . . . . . . . . . . . . . . . . . . . . 25

II Leidraad Linux 27
L1 Inleiding tot Linux 28
L1.1 Eerste kennismaking . . . . . . . . . . . . . . . . . . . . . . . 28
L1.2 Directories en files . . . . . . . . . . . . . . . . . . . . . . . . 29
L1.3 Gevorderde bewerkingen op directories en files . . . . . . . . . 30
L1.4 Procesbeheer . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

L2 Shell gebruik in Linux 32


L2.1 Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
L2.2 Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
L2.3 Zoeken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
L2.4 Processen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
L2.5 Mounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
L2.6 Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
L2.7 Aanpassen van data . . . . . . . . . . . . . . . . . . . . . . . . 35

L3 Linux scripting 36
L3.1 Shell scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
L3.2 Shell scripting: Surveillance Camera . . . . . . . . . . . . . . . 38
Deel I

Leidraad boek
Inleiding

Doelstellingen
In dit opleidingsonderdeel verwerft de student
ˆ de nodige kennis over de verschillende abstracties waarmee een compu-
tersysteem kan beschreven en gestructureerd geprogrammeerd worden.
Dit betekent dat hij weet hoe de overgang naar een hoger niveau tel-
kens gerealiseerd wordt door de combinatie van elementen uit een lager
niveau. Tevens moet hij een reeks courante technische termen kunnen
verklaren. Vertrekkend vanuit de propositielogica en logische schake-
lingen moet hij een computersysteem stelselmatig kunnen opbouwen.
In deze opbouw worden op natuurlijke wijze andere aspecten van in-
formatica aangeraakt en zo wordt tevens het caleidoscopisch overzicht
van het vakgebied verder uitgebouwd.
ˆ de nodig kennis over talstelsels en hun rol in het computergeheugen, de
structuur en de werking van de CPU en van het geheugen, machinetaal,
microprocessoren en assemblertaal, het extern geheugen, randappara-
tuur en basisbegrippen in verband met datacommunicatie en netwer-
ken, principes en taken van besturingssystemen. Hierbij worden ook
aspecten van micro-electronica en van nanotechnologie aangeraakt.

Cursusbeschrijving
In deze cursus leer je hoe computersystemen en -architectuur werken. Hierbij
krijg je een overzicht van hardware die hiervoor nodig is. Verder worden
enkele nieuwe technologieën behandeld.

Voorkennis
Dit vak veronderstelt geen begincompetenties.
3

Didactische werkvormen
Hoorcolleges worden gebruikt voor het situeren van de leerstof in een breder
kader en om belangrijke/moeilijke onderdelen te doceren. De responsiecolle-
ges zijn een aanvulling bij de begeleiding van de zelfstudie.

Studiemateriaal
Het studiemateriaal bestaat uit een handboek en bijkomend lesmateriaal.
Een studieleidraad gidst je door het handboek voor het algemene gedeelte en
helpt je de leerinhoud te verwerken met behulp van zelfstudie-opdrachten.
Alle resultaten moet je bewaren in een portfolio (een digitale en/of gewone
map waarin je de resultaten verzamelt). Deze resultaten kunnen door het
onderwijsteam opgevraagd worden om je studievoortgang op te volgen.

Evaluatie
De evaluatie gebeurt op basis van een schriftelijk examen en een practicum.

Structuur van de studieleidraad


In deze studieleidraad komen opdrachten van verschillende soorten voor. Tel-
kens wordt een symbool gebruikt dat het soort opdrachten kenmerkt:

ˆ Leesopdrachten, waarbij je gevraagd wordt een gedeelte van het cur-


susmateriaal te bestuderen.

ˆ Oefeningen, waarbij je het bestudeerde materiaal toepast in opdrachten


“op papier”.

ˆ Programmeeroefeningen, waarbij je het bestudeerde materiaal toepast


in een programma, of andere oefeningen waarbij je een computer nodig
hebt.

ˆ Denkoefeningen, die je doen nadenken over het gelezen cursusmateriaal.

ˆ Extra oefeningen die aanvullende opdrachten bevatten die gemaakt


kunnen worden in de eventuele resterende tijd.
Hoofdstuk 1

Introduction

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ de belangrijke stappen in de ontwikkeling van de computer kent en


begrijpt.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 2 uren in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

1.1 Inleiding tot computersystemen


2 Lees in het handboek “Chapter 1: Introduction”.

2 Maak volgende oefeningen uit het handboek: 1.1-1.4 en 1.8-1.9.


Hoofdstuk 2

Number Systems and Codes

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
ˆ de belangrijkste talstelsels voor computersystemen kent;

ˆ kan werken met deze talstelsels;

ˆ de belangrijkste voorstellingswijzen voor gehele getallen kent en be-


grijpt;

ˆ de belangrijkste voorstellingswijzen voor karakters kent en begrijpt;

ˆ de belangrijkste voorstellingswijze voor reële getallen kent en begrijpt.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 5 uren in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

2.1 Talstelsels
2 Lees in het handboek “Chapter 2: Number Systems and Codes” tot en
met sectie 2.2 (“Conversion”).

2 Maak oefening 2.1 (beperk je tot base 8 en 16).


2 Number Systems and Codes 6

2 Lees in het handboek sectie 2.3 (“Arithmetic”).

2 Maak oefeningen 2.7 (a, c, f), 2.8 (a, e) en 2.9 (a, e).

2 Lees in het handboek secties 2.4 (“Sign-Magnitude System”) en 2.5


(“Complement Number System”).

2 Maak oefeningen 2.5 (a, e, i) en 2.15.

2.2 Floating-point getallen


2 Lees in het handboek sectie 2.6 (“Floating-point numbers”).

2 Maak oefening 2.19 (b, d).

2 Gegeven de tabel 2.1 met floating point getallen en hun hexadecimale


encodering. Geef de volgende eigenschappen van deze encodering:

1. het aantal gebruikte bytes


2. de verschillende delen van de binaire codering en welke coderings-
wijze gebruikt wordt voor elk gedeelte
3. de exacte voorstelling van 16,3 indien dit mogelijk is, anders de
reden waarom dit niet mogelijk is

getal encodering getal encodering


0.00 80 00 00 -0.00 00 00 00
1.00 80 40 00 -1.00 00 40 00
3.00 80 E0 00 -3.00 00 E0 00
5.00 81 50 00 -5.00 01 50 00
9.00 81 C8 00 -9.00 01 C8 00
17.00 82 44 00 -17.00 02 44 00
33.00 82 C2 00 -33.00 02 C2 00
65.00 83 41 00 -65.00 03 41 00
129.00 83 C0 80 -129.00 03 C0 80
0.25 FE C0 00 -0.25 7E C0 00
0.75 FF 60 00 -0.75 7F 60 00

Tabel 2.1: Floating point getallen met hun encodering


2 Number Systems and Codes 7

2 Geef de volgende eigenschappen van de floating point encodering zoals


die gegeven is in tabel 2.2 :

1. het aantal gebruikte bytes


2. de verschillende delen van de codering en welke coderingswijze
gebruikt wordt voor elk gedeelte
3. de exacte voorstelling van 17 indien dit mogelijk is, anders de
reden waarom dit niet mogelijk is

getal encodering getal encodering


0.00 00 00 00 00 -0.00 80 00 00 00
0.50 3F 00 00 00 -0.50 BF 00 00 00
0.75 3F 40 00 00 -0.75 BF 40 00 00
1.00 3F 80 00 00 -1.00 BF 80 00 00
2.00 40 00 00 00 -2.00 C0 00 00 00
3.00 40 40 00 00 -3.00 C0 40 00 00
4.00 40 80 00 00 -4.00 C0 80 00 00

Tabel 2.2: Floating point getallen met hun encodering

2 In deze oefening bekijk je de encodering die je PC gebruikt om data van


allerhande types (geheel getal, floating point, . . . ) te representeren.
Download op Blackboard de executable SchrijfUit (Windows of Li-
nux). Wanneer je dit bestand uitvoert aan de command prompt zon-
der parameters, zie je de werking ervan, bijvoorbeeld onder Windows:
“SchrijfUit.exe een type een waarde”. Je geeft dus een type mee als
1ste parameter en een waarde als 2de parameter. Het programma toont
dan hoe je PC die waarde heeft opgeslagen. Bijvoorbeeld: “SchrijfUit.exe
float 3.14159”
Voer vervolgens volgende opdrachten uit:

– Gebruik deze applicatie om te achterhalen hoe je PC de verschil-


lende types encodeert.
Opgelet: dit is geen gemakkelijke oefening! Tip: je begint best met
het type int.
– Wat is de representatie van 23.456787, 23.456788 en 23.456789?
Wat kan je hieruit concluderen? Wat zie je als deze getallen als
double geëncodeerd worden?
2 Number Systems and Codes 8

2.3 Binaire codes, dataopslag en representa-


ties
2 Lees in het handboek secties 2.7 (“Binary Codes”) tot en met 2.9 (“Re-
presentation of Numbers, Arrays and Records”).

2 Maak oefening 2.20 en 2.23 (a, b, d).

2 Zoek op internet informatie over EBCDIC en beantwoord daarna vol-


gende vraag: “Waarom wordt EBCDIC veel minder gebruikt dan AS-
CII?”

2 Zoek op internet informatie over Unicode.


Hoofdstuk 3

Combinational Logic

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ de bouwstenen van elementaire hardware kan beschrijven;

ˆ weet wat combinatorische schakelingen zijn en hiervoor waarheidsta-


bellen kan opstellen;

ˆ eenvoudige combinatorische schakelingen kan gebruiken om complexere


circuits op te bouwen.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 6u in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

3.1 Combinatorische schakelingen


2 Lees in het handboek de inleidende paragraaf van “Chapter 3: Combi-
national Logic” en volgende secties:

– sectie 3.1: “Basic Operations and Terminology”, met uitzondering


van subsecties 3.1.3 en 3.1.4
– sectie 3.4: “Primitive Hardware Blocks”
3 Combinational Logic 10

– sectie 3.5: “Functional Analysis of Combinational Circuits”


– sectie 3.7: “Some Popular Combinational Circuits”
– sectie 3.8: “Integrated Circuits”, met uitzondering van subsecties
3.8.1-3.8.3
– sectie 3.10: “Summary”

2 Maak oefening 3.2.

2 Maak voor de volgende opdrachten gebruik van Logisim1 . Logisim is


een digital circuit simulator waarmee je virtuele logische schakelingen
kan bouwen en uitvoeren.

2 In de slides staat het circuit afgebeeld van een XOR poort, verwezen-
lijkt met behulp van vier NAND poorten. Creëer dit circuit, met aan
de twee ingangen een pin en aan de uitgang een led.
Verifieer de werking van het circuit met de waarheidstabel die in het
handboek staat afgebeeld.

2 De XOR kan op nog een andere manier gemaakt worden. Maak een
nieuw circuit aan de hand van deze formule “A XOR B = AB̄ + ĀB”,
of voluit:

A XOR B = ((A AND (NOT B)) OR ((NOT A) AND B))

Je hebt 2 AND, 2 NOT en 1 OR poort nodig.


Hint:
2 In de slides staat een full adder afgebeeld, opgebouwd met behulp van
NAND poorten. Er staat ook een half adder opgebouwd uit een XOR
poort en een AND poort. Vertrek vanaf deze schakeling en breid ze
uit tot een full adder.
Verifieer de werking van het circuit met de waarheidstabel die in het
handboek staat afgebeeld.
Je hebt een extra XOR, AND en OR poort nodig.
Hint:
2 Open het Logisim bestand “paralleladder.circ”. Deze schakeling toont
hoe vier full adders kunnen samengesteld worden om een parallelle ad-
der te creëren die 2 getallen van 4 bits kan optellen.
Gebruik deze schakeling om de volgende optellingen te maken, en te
verifiëren:
1
Logisim - http://sourceforge.net/projects/circuit/
3 Combinational Logic 11

• 0000 + 0010
• 0001 + 0001
• 0001 + 0011
• 0001 + 0101
• 0100 + 0101
• 1110 + 0001
• 1111 + 0001
• 1111 + 1111

2 Maak oefening 3.10 uit het handboek.

2 Maak oefening 3.15 uit het handboek.


Hoofdstuk 4

Synchronous Sequential
Circuits

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ de bouwstenen van elementaire hardware kan beschrijven;

ˆ weet wat sequentiële schakelingen zijn en hiervoor waarheidstabellen


kan opstellen;

ˆ eenvoudige combinatorische en sequentiële schakelingen kan gebruiken


om complexere circuits op te bouwen.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 6u in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

4.1 Sequentiële schakelingen


2 Lees in het handboek de volgende secties uit “Chapter 4: Synchronous
Sequential Circuits”:

– sectie 4.1: “Flip-Flops”


4 Synchronous Sequential Circuits 13

Figuur 4.1: Logisim geheugenelement

– sectie 4.6: “Registers”


– sectie 4.8: “Register Transfer Schemes”

2 Open het Logisim bestand “3bitshiftregister.circ”. Deze schakeling


toont een schuifregister bestaande uit drie JK flip-flops, en kan dus
tellen van 0 tot 7. Breid deze schakeling uit met een extra JK flip-flop
zodat het schuifregister telt tot 15 (F).

2 Wat is in de vorige oefening de functie van de AND poorten bij het


schuifregister, en waarom zijn ze noodzakelijk voor de werking?

2 Maak een circuit dat tot 255 (FF) kan tellen.

2 Logisim bevat ook een ingebouwd geheugenelement (RAM), afgebeeld


in figuur 4.1.
De werking van dit element kan je opzoeken in de Library Reference
(via het Helpmenu). De ingang aangeduid met een pijl is de klokingang,
D0 .. D7 links en rechts zijn de data in- en uitgangen, en A0 .. A4
zijn de adresingangen.
Bouw deze schakeling (figuur 4.1) in Logisim en gebruik dit element in
combinatie met één van je schuifregisters om op adres 15 de waarde 15,
op adres 14 de waarde 14, . . . te plaatsen.

2 Hoeveel bits kan dit geheugenelement adresseren ?

2 Maak oefening 4.24 uit het handboek.

2 Maak oefening 4.25 uit het handboek.


Hoofdstuk 5

A Simple Computer

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ begrijpt hoe een computer een programma in machinetaal uitvoert

ˆ een eenvoudig programma kan schrijven in de hypothetische assembler-


taal en een gegeven programma kan analyseren.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 7u in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

5.1 Assemblertaal
2 Lees in het handboek de inleidende paragraaf van “Chapter 5: A Simple
Computer: Organization and Programming”, de introductie van sectie
5.1 (“A Simple Computer”) en 5.1.1 tot en met 5.1.2.

2 Bestudeer grondig de slides van deze les.


5 A Simple Computer 15

2 Schrijf assemblerprogramma’s (op basis van “Simple Assembler” uit de


slides) voor de volgende opdrachten. Maak hiervoor gebruik van de
“QPASM” pseudo-assembler1 .

2 Gegeven 3 getallen, X, Y, Z op adres 312, 313 en 314 respectievelijk.


Schrijf een programma dat X, Y en Z cyclisch permuteert: d.i. X zetten
op adres 313, Y op 314 en Z op 312.

2 Gegeven een getal X op adres 100. Zet X 10 op adres 150.


Variante: lees eerst X in en schrijf achteraf het resultaat uit.

2 Gegeven A en B op adres 100 en 101. Lees x in, bereken y = A + Bx


en zet het resultaat op adres 201.
Maak een variante waarbij y wordt uitgeschreven.

2 Gegeven A, B en C op adres 100, 101, 102. Lees x in, bereken y =


A + Bx + Cx2 en zet het resultaat op adres 400.
Maak een variante waarbij y wordt uitgeschreven.

2 Gegeven X op adres 100. Zet |X| op adres 200.


Maak een variante waarbij X ingelezen en het resultaat wordt uitge-
schreven.

2 Lees 10 getallen in en schrijf het gemiddelde uit.

2 Gegeven een rij van 150 positieve getallen op adres 200 tot 349. Bepaal
het maximum van deze getallen en zet dit op adres 555.
Om dit programma te testen kan je ook een veel kleinere rij van getallen
nemen, maar hou er rekening mee dat dit met minimale aanpassingen
ook voor grote rijen dient te werken.
Maak een variante waarbij 10 positieve getallen ingelezen worden en
waarbij het maximum wordt uitgeschreven.

2 Schrijf een programma dat eerst een getal N inleest en daarna N ge-
tallen inleest in een “array” die begint op adres 101.

2 Breid de vorige opgave als volgt uit: bereken na het inlezen zowel het
minimum als het maximum en schrijf deze resultaten uit.
1
QPASM - http://code.google.com/p/qpasm/
5 A Simple Computer 16

2 Schrijf een programma dat een getal N inleest en vervolgens de eerste


N fibonacci getallen berekent en in het geheugen plaatst vanaf adres
101.

2 Gegeven een gelinkte lijst van “structs” in het geheugen, waarvan het
beginadres op adres 100 te vinden is. Elke “struct” bestaat uit een
geheugenplaats die een getal bevat, gevolgd door een geheugenplaats
met het adres van de volgende struct (of 0 voor het laatste struct).
Schrijf een programma dat de getallen in deze lijst uitschrijft.

2 Breid het programma van de vorige opgave uit, zodat het minimum en
maximum van de getallen berekend en uitgeschreven worden.

5.2 Linken en laden


2 Lees in het handboek sectie 5.6 (“Linkers and Loaders”).
Hoofdstuk 7

Input/Output

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ begrijpt hoe de processor van een computer communiceert met zijn


randapparaten;

ˆ weet wat interrupt-driven input/output is;

ˆ weet welke technieken gebruikt worden om data efficiënt uit te wisselen


met randapparaten.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 6u in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

7.1 Input/Output
2 Lees in het handboek de volgende secties uit “Chapter 7: Input/Out-
put”:

– sectie 7.1: “General I/O Model”


– sectie 7.3: “Interrupts”, met uitzondering van subsecties 7.3.1 en
7.3.5
7 Input/Output 18

2 Maak oefening 7.20 uit het handboek.

2 Maak oefening 7.22 uit het handboek.

2 Lees in het handboek sectie 7.4: “Direct Memory Access”.

2 Lees in het handboek sectie 7.8: “Serial I/O”.

2 Lees in het handboek sectie 7.9: “Common I/O Devices”.

2 Maak oefening 7.23 uit het handboek.

2 Maak oefening 7.26 uit het handboek.

2 Maak oefening 7.27 uit het handboek.

2 Maak oefening 7.29 uit het handboek.


Hoofdstuk 9

Memory and Storage

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ weet welke verschillende types geheugen er bestaan;

ˆ begrijpt welke lagen van geheugen er bestaan en welke parameters in-


vloed hebben op de snelheid en de hoeveelheid geheugenopslag.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 6u in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

9.1 Memory and Storage


2 Lees in het handboek de volgende secties uit “Chapter 9: Memory and
Storage”:

– sectie 9.1: “Types of Memory”


– sectie 9.2: “Memory System Parameters”
– sectie 9.3: “Memory Hierarchy”
– sectie 9.4: “Memory Devices and Organizations”, met uitzonde-
ring van subsecties 9.4.1.1, 9.4.1.2 en 9.4.2
9 Memory and Storage 20

2 Maak oefening 9.1 uit het handboek.

2 Maak oefening 9.2 uit het handboek.

2 Maak oefening 9.15 uit het handboek.

2 Maak oefening 9.37 uit het handboek.

2 Maak oefening 9.38 uit het handboek.

2 Maak oefening 9.39 uit het handboek.


Hoofdstuk 13

Embedded Systems

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ het concept van een embedded processor begrijpt;

ˆ het verschil tussen general-purpose computers en embedded computers


kan uitleggen;

ˆ weet welke hardware en software architecturen hiervoor bestaan.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 6u in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

13.1 Embedded Systems


2 Lees in het handboek sectie 13.3 “Operating Systems”, met uitzonde-
ring van subsecties 13.3.2 tot en met 13.3.5.

2 Lees in het handboek sectie 13.1 “Characteristics”.

2 Lees in het handboek sectie 13.2 “Software Architectures”.


13 Embedded Systems 22

2 Lees in het handboek sectie 13.4 “Example Systems”, met uitzondering


van subsecties 13.4.2.4 tot en met 13.4.2.7. Sectie 13.4.1.2 is extra
informatie.

2 Maak oefening 13.1 uit het handboek.

2 Maak oefening 13.2 uit het handboek.

2 Maak oefening 13.6 uit het handboek.

2 Maak oefening 13.10 uit het handboek.

2 Maak oefening 13.13 uit het handboek.

2 Maak oefening 13.5 uit het handboek.

2 Maak oefening 13.9 uit het handboek. Lees eerst aandachtig sectie
13.3.2.
Hoofdstuk 14

Mobile Processors and System


on Chip

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ de eigenschappen van een mobile processor en een system on chip (SoC)


architectuur kan beschrijven;

ˆ de verschillen met andere embedded systemen begrijpt;

ˆ voorbeelden kan geven van populaire mobile processor en SoC syste-


men.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 6u in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

14.1 Mobile Processors and System on Chip


2 Lees in het handboek sectie 14.1 “Apple iPhone 4S”.

2 Lees in het handboek sectie 14.2 “ARN v7-A Application Profile”, met
uitzondering van subsecties 14.2.1 tot en met 14.2.4.
14 Mobile Processors and System on Chip 24

2 Lees in het handboek sectie 14.3 “Raspberry Pi”.

2 Maak oefening 14.1 uit het handboek.

2 Maak oefening 14.2 uit het handboek.

2 Maak oefening 14.5 uit het handboek.

2 Maak oefening 14.11 uit het handboek.

2 Maak oefening 14.6 uit het handboek.

2 Maak oefening 14.10 uit het handboek.


Hoofdstuk 15

Computer Networks and


Distributed Processing

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ de verschillende multicomputer architecturen kan beschrijven en de on-


derlinge verschillen begrijpt;

ˆ de meest gebruikte referentiemodellen voor netwerken kan beschrijven;

ˆ de verschillende types van computernetwerken kan beschrijven.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 6u in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

15.1 Computer Networks


2 Lees in het handboek de volgende secties uit “Chapter 15: Computer
Networks and Distributed Processing”:

– sectie 15.1: “Computer Networks”


15 Computer Networks and Distributed Processing 26

– sectie 15.2: “Distributed Processing”, met uitzondering van sub-


secties 15.2.1 t/m 15.2.4
– sectie 15.3: “Grid Computing”
– sectie 15.4: “Cloud Computing”

2 Maak oefening 15.1 uit het handboek. Je kan ipv een commercieel
systeem het Vlaams Supercomputer Centrum als voorbeeld nemen.

2 Maak oefening 15.3 uit het handboek.

2 Maak oefening 15.4 uit het handboek.

2 Maak oefening 15.6 uit het handboek.

2 Maak oefening 15.8 uit het handboek.

2 Maak oefening 15.12 uit het handboek.

2 Maak oefening 15.5 uit het handboek.

2 Maak oefening 15.7 uit het handboek.

2 Maak oefening 15.9 uit het handboek.

2 Maak oefening 15.10 uit het handboek.

2 Maak oefening 15.11 uit het handboek.

2 Maak oefening 15.13 uit het handboek.


Deel II

Leidraad Linux
Hoofdstuk L1

Inleiding tot Linux

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ vertrouwd bent met Linux:

– de geı̈ntroduceerde begrippen kan omschrijven;


– kunt werken met een window manager;
– vlot overweg kunt met een terminal;
– de belangrijkste UNIX (Linux) commando’s kent en kunt gebrui-
ken.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 6 uren in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

L1.1 Eerste kennismaking


2 Lees de inleidende paragrafen van de cursustekst (paragrafen 1.1 t.e.m.
1.6)
L1 Inleiding tot Linux 29

2 Zorg ervoor dat je een Linux machine ter beschikking hebt. Je kan
hiervoor op je eigen laptop Ubuntu installeren (zie 1.2) of de computers
uit de leslokalen gebruiken.

2 Probeer het cowsay programma eens te installeren en iets te laten tonen


in de terminal.

2 Probeer je wachtwoord eens te veranderen zoals aangegeven in de tekst.

L1.2 Directories en files


2 Lees de cursustekst over directories (paragraaf 1.7).

2 Probeer nu zelf naar enkele directories te gaan.

2 Maak nu een directory “oefeningen” aan in je home directory. Deze


directory kan je nog verder gebruiken in andere oefeningen.

2 Lees nu paragraaf 1.8 over pipes.

2 Lees de cursustekst over het creëren van files (paragraaf 1.9).

2 Maak nog enkele directories aan in je oefeningen map en maak ergens


een nieuw bestandje “file.txt” met een groot aantal zinnen tekst erin.
Een handige tool om grote hoeveelheden dummy-tekst te genereren is
bijvoorbeeld Lorem Ipsum (http://nl.lipsum.com/).

2 Lees paragraaf 1.10 van de cursustekst.

2 Laat de inhoud van je voorbeeld file eens zien in de terminal met behulp
van cat vanuit de oefeningen directory. Lukt dit ook vanuit de home
directory? Bekijk en test de opties en mogelijkheden van tail.

2 Onderzoek wat er in de file .bashrc zit (in je home directory) met behulp
van het cat commando. Kan je met behulp van ls deze file oplijsten?
Deze file dient om je bash omgeving in te stellen en kan gebruikt worden
om bijvoorbeeld kleuren te tonen of aliassen voor commando’s aan te
maken. Op het internet kan je talloze voorbeeld .bashrc configuraties
vinden.

2 Lees de cursustekst over copy, move en link (paragraaf 1.11).


L1 Inleiding tot Linux 30

2 Kopieer de file .bashrc in je home directory naar een file genaamd


.bashrc backup in de home directory.

2 Pas nu de originele .bashrc gerust aan met behulp van een editor (om
de wijzigingen toe te passen zal je de terminal waarschijnlijk moeten
herstarten).

2 Herstel de gemaakte wijzigingen eventueel door de .bashrc te overschrij-


ven met de .bashrc backup file met behulp van mv of cp.

2 Kopieer de hele inhoud van de oefeningen directory naar een directory


genaamd “backup”.

2 Maak in de oefeningen directory een symbolische link naar file.txt, ge-


naamd textfilelink. Bekijk de inhoud van de oefeningen directory met
ls -l. Is er een verschil tussen de twee files?

2 Editeer nu de file textfilelink en bekijk erna de originele file. Is er iets


veranderd?

2 Lees paragraaf 1.12 over het verwijderen van directories en files.

2 Verwijder nu de “backup” directory.

L1.3 Gevorderde bewerkingen op directories


en files
2 Lees in de cursustekst de paragraaf over rechten op directories en files
(paragraaf 1.13).

2 Zorg ervoor dat alle gebruikers de directory listing van de oefeningen


directory kunnen vragen en dat de gebruikers van de groep ook naar
deze directory kunnen gaan. De owner moet zijn of haar schrijfpermis-
sies behouden.

2 Lees de overige paragrafen van de cursustekst.

2 Maak wat lege en niet-lege bestanden aan in de oefeningen directory.

2 Maak een archive van de oefeningen directory en comprimeer het re-


sultaat.
L1 Inleiding tot Linux 31

2 Verwijder de oefeningen directory.

2 Voer nu gunzip en tar uit. De oefeningen directory zou nu terug in zijn


oorspronkelijke staat moeten zijn hersteld.

L1.4 Procesbeheer
2 Het is mogelijk om de processen die op een Linux computer draaien te
beheren. Een commando waarmee je informatie over processen kunt
opvragen is ps. Gebruik dit commando om te kijken welke processen
je hebt draaien.

2 Met top kun je zien welke processen de meeste processortijd in be-


slag nemen. Probeer dit ook uit (top wordt afgesloten door op ‘q’ te
drukken).

2 Je kunt een programma dat niet meer reageert afsluiten met kill. Dit
commando krijgt als parameter het process ID (PID) mee van het pro-
cess dat moet worden afgesloten. Start het programma gedit op met
het commando gedit &. Door de ampersand te gebruiken (‘&’) kun je
nog verder gebruik maken van het shell window omdat het commando
in de achtergrond wordt uitgevoerd. Kijk nu wat de PID van gedit is
met behulp van ps en sluit het programma af met kill.
Hoofdstuk L2

Shell gebruik in Linux

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ de geı̈ntroduceerde begrippen kan omschrijven;

ˆ kan zoeken naar bestanden;

ˆ processen kan terug vinden en ze kunt afsluiten;

ˆ extra schijven/dvd’s kan mounten;

ˆ taken op bepaalde tijdstippen kan laten uitvoeren.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer een lesdag in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

L2.1 Shells
2 Lees de inleiding t.e.m. de paragraaf over Variabelen (paragrafen 2.1
t.e.m. 2.2.1)

2 Vraag de inhoud op van je ‘PATH’ in de shell


L2 Shell gebruik in Linux 33

2 Zoek op in de man page van bash welke variabele de huidige directory


teruggeeft, en probeer dit uit.
2 Maak zelf eens een variabele aan (bij aanmaak geen $ gebruiken) en
controleer de waarde door hem uit te printen.

L2.2 Users
2 Lees de paragraaf Inloggen onder een andere account (paragraaf 2.3).
2 Vraag de ‘HOME’ variabele op als gewone user.
2 Probeer het su commando om in te loggen als root gebruiker (sudo su)
2 Vraag nu de ‘HOME’ variabele op.
2 Ga vervolgens terug naar je eigen user (je kan dit doen door ctrl-d in
te duwen of exit te typen) en controleer of de ‘HOME’ variabele terug
goed staat.

L2.3 Zoeken
2 Lees de paragraaf Programma’s (paragraaf 2.4.1).
2 Kijk eens waar de whereis man pagina staat.
2 Zoek op waar het commando vi staat.
2 Zoek op wat het commando pwd betekent.
2 Lees de paragraaf Bestanden (paragraaf 2.4.2).
2 Zoek de bestanden op waar ‘java’ in voorkomt. Indien het er teveel zijn
gebruik een pipe (zie paragraaf 1.8) om maar een deel te zien.
2 Maak een nieuw bestand aan en probeer dit te zoeken.
2 Maak een nieuw bestand aan met enkel de eerste letter verschillend van
het vorige bestand.
2 Zoek beide bestanden tegelijk.
2 Editeer een van de twee bestanden en zet er wat tekst (ook het woord
‘boek’) in. Zoek nu een bestand met een bytegrootte kleiner dan het
juist geëditeerde bestand (kijk in de man van find).
L2 Shell gebruik in Linux 34

2 Zoek nu in de huidige directory naar alle bestanden die het woord ‘boek’
bevatten (op de snelle manier: gebruik een pipe i.p.v. een flag).

L2.4 Processen
2 Lees de paragraaf over Processen (paragraaf 2.5).

2 Kijk welke processen actief zijn op dit moment.

2 Toon alle processen waarbij je de hiërarchie toont.

2 Kijk in de man pages om de hiërarchie duidelijker te tonen.

2 Toon nu een continu geüpdatet versie van ps.

2 Toon top met de volgende opties: enkel processen van uzelf en ververs
scherm om de halve seconde (zoek op via man top).

L2.5 Mounts
2 Lees de paragraaf over Mounts (paragraaf 2.6).

2 Kijk na of de dvd speler automatisch gemount wordt bij het opstarten.

2 Kijk na of de dvd speler gemount is op dit moment.

L2.6 Scheduling
2 Lees de paragraaf over scheduling (paragraaf 2.7).

2 Voer het cp commando uit na 2 minuten op een bestaande file.

2 Kijk of dit opgenomen is in de uit te voeren jobs.

2 Kijk of er taken in de crontab zijn opgenomen.

2 Voeg een copy toe aan de cron taken dat binnen 5 minuten een copy
maakt. En kijk of dit werkt.

2 Voeg een cron job toe die alle pas gemaakte files voor deze oefening
verwijdert (door te kijken hoe oud ze zijn).
L2 Shell gebruik in Linux 35

L2.7 Aanpassen van data


2 Lees paragraaf 2.8 in de cursustekst.

2 Bekijk de manpages van het commando w.

2 gebruik w en cut om de login naam te krijgen van de gebruiker waarvan


het process de meeste processortijd gebruikt.

2 Bekijk de manpages van het commando uniq.

2 Bekijk het formaat van het bestand /etc/fstab.

2 gebruik nu cat, grep, tr, cut en uniq om een lijst te vormen van de
verschillende bestandssystemen die in het fstab bestand voorkomen.
Hoofdstuk L3

Linux scripting

Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:

ˆ shell scripts kunt schrijven.

Begrote studietijd
Het bestuderen van het cursusmateriaal en het uitvoeren van de taken zal
voor dit hoofdstuk ongeveer 8 uren in beslag nemen.

Reële studietijd
Ik heb ongeveer . . . uren besteed aan dit hoofdstuk.

L3.1 Shell scripting


2 Lees in de cursustekst paragrafen 3.1 t.e.m. 3.2.

2 Leg uit wat het volgende script doet. Maak gebruik van de man pagi-
na’s voor de opdrachten die je niet kent.
#! / b i n / sh
i f [ −d ˜/ d u s t b i n ]
then
:
else
mkdir ˜/ d u s t b i n
fi
L3 Linux scripting 37

c u r r e n t d i r =`pwd `
mkdir −p ˜/ d u s t b i n $ c u r r e n t d i r
movedate=` d a t e +%s `
while [ $# −ne 0 ]
do
i f [ −e $1 ]
then
mv $1 ˜/ d u s t b i n $ c u r r e n t d i r / $1 . $ movedate
echo moving $1 t o d u s t b i n "(" $1 "->" $1 . $ movedate ")"
fi
shift
done

2 Maak een script dat een reeks van files meekrijgt als parameters. Dit
script schrijft de gegevens van de files (ls -l) en de inhoud uit.

2 Schrijf een script dat een directory als parameter krijgt en de inhoud
naar een file wegschrijft.

2 Schrijf een script dat een zoekstring en een reeks van files meekrijgt als
parameters. Het script schrijft de naam van iedere file uit en schrijft
uit of de file de zoekstring bevat.

2 Pas het vorige script zo aan dat het ook recursief directories kan door-
zoeken.

2 Schrijf een script dat een ander proces in het oog houdt en x keer her-
start als het gestopt is. Gebruik het ps programma, het sleep commando
en het & (ampersand). Geef enkel x mee als parameter, hardcode de
naam van het te volgen proces voorlopig.
Voorbeeld :
> . / R e s t a r t P r o c e s s . sh 2
P r o c e s s S e l f C l o s i n g C h i l d . sh was not running , s t a r t i n g . . .
1
2
3
P r o c e s s S e l f C l o s i n g C h i l d . sh was not running , s t a r t i n g . . .
1
2
3
P r o c e s s S e l f C l o s i n g C h i l d . sh ran 2 t i m e s
L3 Linux scripting 38

#! / b i n / sh
#S e l f C l o s i n g C h i l d . sh
count=0
while [ $ count − l t 3 ]
do
sleep 1
count=$ ( ( $ count + 1 ) )
echo $ count
done

2 Geef ook de naam van het te volgen proces mee als parameter (vb.
./RestartProcess.sh 2 SelfClosingChild.sh). Zorg ervoor dat alle child
processen afgesloten worden als RestartProcess.sh wordt gesloten met
CTRL+c.

L3.2 Shell scripting: Surveillance Camera


2 Schrijf een script dat dmv het wget commando beelden van een IP
camera grabt en deze gesorteerd (op basis van datum en tijdstip) weg-
schrijft.

1. Maak in je Documents directory een directory ‘Camera’ aan.


2. Maak in je home directory een directory ‘Src’ aan waar je je script
“ccsCam.sh” opslaat.
3. Begin je script en zorg ervoor dat deze volgende commandline
argumenten meekrijgt:
(a) directory waar de beelden opgeslaan moeten worden
(bvb. /home/fdifiore/Documents/Camera/)
(b) adres van de camera
(bvb. ccsCam.ddns.net:80 of 192.168.2.23)
(c) login
(bvb. admin)
(d) wachtwoord
(bvb. 1234)
(e) interval uitgedrukt in seconden
(bvb. 5 )
Test je script op het juiste aantal argumenten. Indien dit niet
correct is geef dan een boodschap en beëindig het script.
L3 Linux scripting 39

4. Gebruik het wget commando om 1 beeld van je camera op te halen


en deze in de opgegeven directory op te slaan als ‘test.jpg’.
Test je script met 1 van volgende adressen; login en wachtwoord
zijn in dit geval telkens leeg.
– webcam.tierpark-hellabrunn.de/camera/cam.31.99.jpg
– www.nps.gov/webcams-yell/mtwashburn.jpg
– 118.243.204.173/record/current.jpg
– in je eigen thuisnetwerk kan je de meeste generieke IP ca-
mera’s benaderen via <ip-adres:poort>/snapshot.cgi in com-
binatie met de username en wachtwoord van je camera
5. Pas het script aan zodat je een variabele filename als output ge-
bruikt, bvb gebaseerd op de huidige datum en tijd.
Gebruik hiervoor het date commando met de format optie (bvb
`date +format`) waarbij je format zelf nog dient in te vullen.
6. Pas het script nu aan zodat je met behulp van een (oneindige) lus
iedere interval seconden een beeld ophaalt en deze met de gepaste
naam wegschrijft.
Gebruik het sleep commando om pauzes in te bouwen. Je kan het
script beëindigen met CTRL+c.

Voorbeeld :
> . / ccsCam . sh /home/ f d i f i o r e / Documents /Camera/ ccsCam . ddns . n e t
ccsCam : m i s s i n g operand
u s a g e : ccsCam outputPath addressCam userCam pwdCam i n t e r v a l

Voorbeeld :
> . / ccsCam . sh /home/ f d i f i o r e / Documents /Camera/
www. networkmedia . ca /webcam/ netcam . j p g "" "" 5
ˆC

2 Het aantal bestanden in je outputmap kan snel zeer groot worden. Pas
het script aan zodat je subdirs aanmaakt op basis van de datum en het
uur (bvb. /Camera/ccsCam/2016-10-13/11/).
Gebruik hiervoor het mkdir commando met als parameter -p.

2 Voorzie een extra parameter ‘nrBackupdays’ waarbij je directories ou-


der dan de opgegeven aantal dagen verwijdert.

You might also like