Professional Documents
Culture Documents
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
3 Combinational Logic 9
3.1 Combinatorische schakelingen . . . . . . . . . . . . . . . . . . 9
5 A Simple Computer 14
5.1 Assemblertaal . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.2 Linken en laden . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7 Input/Output 17
7.1 Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
13 Embedded Systems 21
13.1 Embedded Systems . . . . . . . . . . . . . . . . . . . . . . . . 21
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
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.
Introduction
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
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.
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
de belangrijkste talstelsels voor computersystemen kent;
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 oefeningen 2.7 (a, c, f), 2.8 (a, e) en 2.9 (a, e).
Combinational Logic
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
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.
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:
• 0000 + 0010
• 0001 + 0001
• 0001 + 0011
• 0001 + 0101
• 0100 + 0101
• 1110 + 0001
• 1111 + 0001
• 1111 + 1111
Synchronous Sequential
Circuits
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
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.
A Simple Computer
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
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 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 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.
Input/Output
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
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”:
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
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.
Embedded Systems
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
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.
2 Maak oefening 13.9 uit het handboek. Lees eerst aandachtig sectie
13.3.2.
Hoofdstuk 14
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
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.
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
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
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.
2 Maak oefening 15.1 uit het handboek. Je kan ipv een commercieel
systeem het Vlaams Supercomputer Centrum als voorbeeld nemen.
Leidraad Linux
Hoofdstuk L1
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
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.
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 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 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).
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 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
Doelstellingen
Na het bestuderen van dit hoofdstuk wordt verwacht dat je:
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)
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 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).
L2.6 Scheduling
2 Lees de paragraaf over scheduling (paragraaf 2.7).
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
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:
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.
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.
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.