Computerarchitectuur en netwerken. Memory management Assembler programmering
|
|
|
- Elke van de Velde
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 12 september 2016
2 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management 2 Assemblerprogrammeren: Programmeren voor een simpele CPU Met een assemblertaaltje Gebruik van een stack Lennart Herlaar Computerarchitectuur en netwerken 2 1
3 Protectie We willen het O.S. beschermen tegen foute of kwaadwillende programma s (programmeurs). 1 Gewone programma s mogen niet het geheugen van andere programma s manipuleren 2 Gewone programma s mogen niet het geheugen van het O.S. veranderen 3 Het O.S. mag wel aan andere programma s komen 4 Gewone programma s mogen niet speciale registers veranderen 5 Gewone programma s mogen niet rechtstreeks aan interfaces komen zonder toestemming van het O.S. Lennart Herlaar Computerarchitectuur en netwerken 2 2
4 Protectie: modes 1 User/system mode 2 Geheugenbeheer Lennart Herlaar Computerarchitectuur en netwerken 2 3
5 Protectie: modes 1 User/system mode 2 Geheugenbeheer User mode = uitvoeren van gewone programma s Gevaarlijke operaties (o.a. I/O) niet toegestaan Lennart Herlaar Computerarchitectuur en netwerken 2 3
6 Protectie: modes 1 User/system mode 2 Geheugenbeheer User mode = uitvoeren van gewone programma s Gevaarlijke operaties (o.a. I/O) niet toegestaan System mode = uitvoering O.S. onderdelen Alle operaties toegestaan Lennart Herlaar Computerarchitectuur en netwerken 2 3
7 Protectie: modes 1 User/system mode 2 Geheugenbeheer User mode = uitvoeren van gewone programma s Gevaarlijke operaties (o.a. I/O) niet toegestaan System mode = uitvoering O.S. onderdelen Alle operaties toegestaan Soms nog fijnere verdeling zodat ook binnen het O.S. onderscheid gemaakt kan worden Bij een interrupt/trap overgang naar system mode Aanroep van het O.S. dan ook via een TRAP mechanisme of speciale controle De mode staat in het PSW Lennart Herlaar Computerarchitectuur en netwerken 2 3
8 Adresruimte Adresruimte van een programma = de verzameling van alle adressen die een programma zou kunnen gebruiken uit te voeren instructies adressen van datastructuren en variabelen Op een 32-bits machine kan dat in principe 2 32 bytes (4GB) zijn In principe kan het meer zijn dan het aanwezige echte (fysieke) geheugen Lennart Herlaar Computerarchitectuur en netwerken 2 4
9 Adresruimte Adresruimte van een programma = de verzameling van alle adressen die een programma zou kunnen gebruiken uit te voeren instructies adressen van datastructuren en variabelen Op een 32-bits machine kan dat in principe 2 32 bytes (4GB) zijn In principe kan het meer zijn dan het aanwezige echte (fysieke) geheugen Memory management: de adressen die in een programma gebruikt worden (virtuele adressen) hoeven niet hetzelfde te zijn als de echte adressen die in het fysieke geheugen gebruikt worden (fysieke adressen). Lennart Herlaar Computerarchitectuur en netwerken 2 4
10 Memory management 1 Eenvoudige ontkoppeling: Het begin van een programma krijgt virtueel adres 0 Het fysieke adres waar het programma staat (BASE) wordt bij elk virtueel adres opgeteld Dit gebeurt tussen de CPU en de bus Het programma heeft dit niet in de gaten Lennart Herlaar Computerarchitectuur en netwerken 2 5
11 Memory management 1 Eenvoudige ontkoppeling: Het begin van een programma krijgt virtueel adres 0 Het fysieke adres waar het programma staat (BASE) wordt bij elk virtueel adres opgeteld Dit gebeurt tussen de CPU en de bus Het programma heeft dit niet in de gaten fysieke adressen x+base 0 BASE LIMIT max programma virtuele adressen 0 x limit Lennart Herlaar Computerarchitectuur en netwerken 2 5
12 Memory management 2 Voordelen: Je kunt het programma op ieder adres in het fysieke geheugen draaien Door ook de lengte op te nemen kan de rest van het geheugen beschermd worden (de electronica test virtuele adressen 0 <= x < limit) Lennart Herlaar Computerarchitectuur en netwerken 2 6
13 Memory management 2 Voordelen: Je kunt het programma op ieder adres in het fysieke geheugen draaien Door ook de lengte op te nemen kan de rest van het geheugen beschermd worden (de electronica test virtuele adressen 0 <= x < limit) Nadelen: Grootte beperkt door fysiek geheugen Onmogelijk om te sharen (eenzelfde stuk geheugen in twee programma s te gebruiken) Lennart Herlaar Computerarchitectuur en netwerken 2 6
14 Memory management 2 Voordelen: Je kunt het programma op ieder adres in het fysieke geheugen draaien Door ook de lengte op te nemen kan de rest van het geheugen beschermd worden (de electronica test virtuele adressen 0 <= x < limit) Nadelen: Grootte beperkt door fysiek geheugen Onmogelijk om te sharen (eenzelfde stuk geheugen in twee programma s te gebruiken) Oplossingen: 1 Segmentatie (segmentering) 2 Paginering Lennart Herlaar Computerarchitectuur en netwerken 2 6
15 Segmentering programma 1 programma 2 fysiek geheugen instructies instructies data virtueel geheugen virtueel geheugen data Lennart Herlaar Computerarchitectuur en netwerken 2 7
16 programma 1 programma 2 Segmentering fysiek geheugen instructies data virtueel geheugen virtueel geheugen instructies data Eigenschappen van segmenten: Segmenten kunnen geshared worden Elk programma kan aparte permissies hebben per segment vb. Read, Write, Execute Segmenten kunnen vast, of groeiend zijn. Elk segment moet in het fysieke geheugen passen Lennart Herlaar Computerarchitectuur en netwerken 2 7
17 CPU en stacks Voor het opslaan van tussenresultaten van ingewikkelde berekeningen wordt vaak een stack gebruikt. Voor het onthouden van een terugkeeradres van een functie- of methode-aanroep idem (terugkeeradres = waarde van PC) Een speciaal register wordt gebruikt om te onthouden waar de top van de stack staat (stack-pointer). LIFO = Last In First Out (wat er het laatst opgezet is gaat er het eerst weer af) Push(waarde) = zet waarde op stack en pas SP aan Pop() = return top van de stack en pas SP aan Objecten die niet in de LIFO discipline passen worden in een heap geplaatst. Lennart Herlaar Computerarchitectuur en netwerken 2 8
18 Stack groei stack push/pop SP 0 Lennart Herlaar Computerarchitectuur en netwerken 2 9
19 Stack/heap segmenten instructies heap stack segment 0 segment 1 segment 2 Stack segment groeit naar beneden Heap segment groeit naar boven Code segment is vast en kan geshared worden Nog meer segmenten mogelijk voor shared data of libraries Lennart Herlaar Computerarchitectuur en netwerken 2 10
20 Adresberekening Dit gebeurt in de hardware segment offset virtueel adres BASE LIMIT protect. etc. BASE LIMIT protect. etc. + fysiek adres Lennart Herlaar Computerarchitectuur en netwerken 2 11
21 Paginering 1 virtueel geheugen A fysiek geheugen virtueel geheugen B Lennart Herlaar Computerarchitectuur en netwerken 2 12
22 Paginering 2 De virtuele adresruimte en het fysieke geheugen worden opgedeeld in pagina s van vaste grootte Elke virtuele pagina kan in een willekeurige fysieke pagina staan De afbeelding van virtuele naar fysieke paginanummers gaat via een tabel (pagetable). Pagina s kunnen eigen protecties hebben Pagina s kunnen geshared worden Een pagina hoeft niet in het fysieke geheugen aanwezig te zijn: In dat geval gebeurt er een trap (page fault) Bij geheugengebrek kunnen pagina s bijv. op de harde schijf opgeslagen worden (demand paging), of in het netwerk. Page tables kunnen erg groot worden, dan opsplitsen via indirectie Lennart Herlaar Computerarchitectuur en netwerken 2 13
23 Simpele page table virtueel adres page nr offset page nr = index page table fysiek pagina nr offset fysiek adres fysiek geheugen Lennart Herlaar Computerarchitectuur en netwerken 2 14
24 Meer fysiek dan virtueel geheugen Wat doen we als het fysieke geheugen groter is dan de virtuele adresruimte? Bijvoorbeeld: oorspronkelijk MS-DOS/Intel bits machine, 1MB fysiek geheugen Eveneens oplosbaar met segmentering Virtueel geheugen is venster in het fysieke geheugen Venster hoeft niet aaneengesloten in fysieke geheugen te liggen (paginering). Lennart Herlaar Computerarchitectuur en netwerken 2 15
25 Assemblerprogrammeren Lennart Herlaar Computerarchitectuur en netwerken 2 16
26 Assembler programmeren Registers Memory PC SP Code 0 MP RR Stack 2000 We gebruiken een hypothetische CPU: Simple Stack Machine (SSM) De meeste operaties gebeuren op een stack Enkele registers: PC = program counter SP = stack pointer MP = mark pointer RR = resultaat register Lennart Herlaar Computerarchitectuur en netwerken 2 17
27 Hexadecimale notatie Bij gewone decimale notatie betekent 237 : algemeen: pqr = p q r 10 0 Lennart Herlaar Computerarchitectuur en netwerken 2 18
28 Hexadecimale notatie Bij gewone decimale notatie betekent 237 : algemeen: pqr = p q r 10 0 Bij hexadecimale notatie gebruiken we 16 cijfers in plaats van 10: abcdef (of hoofdletters) a=10, b=11, c=12, d=13, e=14, f=15 Lennart Herlaar Computerarchitectuur en netwerken 2 18
29 Hexadecimale notatie Bij gewone decimale notatie betekent 237 : algemeen: pqr = p q r 10 0 Bij hexadecimale notatie gebruiken we 16 cijfers in plaats van 10: abcdef (of hoofdletters) a=10, b=11, c=12, d=13, e=14, f=15 hex: pqr = p q r 16 0 bijv: hex 2A = = 42(decimaal) Lennart Herlaar Computerarchitectuur en netwerken 2 18
30 Hexadecimale notatie Bij gewone decimale notatie betekent 237 : algemeen: pqr = p q r 10 0 Bij hexadecimale notatie gebruiken we 16 cijfers in plaats van 10: abcdef (of hoofdletters) a=10, b=11, c=12, d=13, e=14, f=15 hex: pqr = p q r 16 0 bijv: hex 2A = = 42(decimaal) Om verwarring te voorkomen schrijven we soms pqr 10 of pqr 16 Voor hex wordt ook wel de notatie 0xpqr gebruikt Dus 0x2A = Lennart Herlaar Computerarchitectuur en netwerken 2 18
31 Stack operaties Variabelen staan ergens in het geheugen (meestal in de stack) Operaties: bijv. aftrekken push a op de stack push b op de stack doe de sub operatie SP a b SP a b Voor de operatie Na de operatie Lennart Herlaar Computerarchitectuur en netwerken 2 19
32 Push en Pop operaties Om een constante op de stack te pushen: ldc n n is de constante Om een variabele uit de stack te dupliceren naar de top van de stack (push): lds n n = offset (= afstand tussen stackpointer en variabele) voorbeeld: lds 2 Lennart Herlaar Computerarchitectuur en netwerken 2 20
33 Push en Pop operaties Om een constante op de stack te pushen: ldc n n is de constante Om een variabele uit de stack te dupliceren naar de top van de stack (push): lds n n = offset (= afstand tussen stackpointer en variabele) voorbeeld: lds SP a b c a b c SP a Voor de operatie Na de operatie Lennart Herlaar Computerarchitectuur en netwerken 2 20
34 Voorbeeld sts n is de pop operatie: berg de top van de stack op in een variabele Code voor a = b c lds -1 // b lds -1 // c mul sts -3 // a = Omdat de stackpointer continu verandert moeten we de offsets iedere keer opnieuw bepalen. Lennart Herlaar Computerarchitectuur en netwerken 2 21
35 Demo 1 Bereken c = (a-b)*(a+b) Lennart Herlaar Computerarchitectuur en netwerken 2 22
36 Demo 1 Bereken c = (a-b)*(a+b) ldc 3 // a = 3 ldc 7 // b = 7 ldc 9 // c = 9 lds -2 // a lds -2 // b sub // a-b lds -3 // a lds -3 // b add // a+b mul // (a-b)*(a+b) sts -1 // c = Lennart Herlaar Computerarchitectuur en netwerken 2 22
37 Markpointer Adresseren t.o.v stackpointer is niet handig Markpointer: wijst naar de locale variabelen van een methode Wordt tevens gebruikt voor de parameters MP a b ldl n voor pushen van variabele stl n voor poppen van variabele n is de offset t.o.v. MP Lennart Herlaar Computerarchitectuur en netwerken 2 23
38 Demo 2 Zelfde berekening met MP Lennart Herlaar Computerarchitectuur en netwerken 2 24
39 Demo 2 Zelfde berekening met MP ldc 3 // a = 3 ldc 7 // b = 7 ldc 9 // c = 9 ldl 1 // a ldl 2 // b sub // a-b ldl 1 // a ldl 2 // b add // a+b mul // (a-b)*(a+b) stl 3 // c = Lennart Herlaar Computerarchitectuur en netwerken 2 24
40 Besturing If, while, for, methode-aanroep Bij sequentiele verwerking wordt telkens de volgende instructie uitgevoerd (PC wordt opgehoogd) Bij if, while etc. wordt een andere volgorde genomen Zogenaamde branch of sprong instructies Soms afhankelijk van een conditie (boolean) We hebben ook instructies om booleans uit te rekenen lt vervangt de top twee elementen van de stack (x en y) door de boolean x < y True = woord met allemaal 1-bits (FFFFFFFF), False = 0. Op dezelfde manier le, gt, ge, eq, ne Lennart Herlaar Computerarchitectuur en netwerken 2 25
41 Besturing De instructie brt label springt naar instructie label als de waarde op de top van de stack True is ( 0) Ook zo brf label bra label springt altijd (kijkt niet naar de stack). Lennart Herlaar Computerarchitectuur en netwerken 2 26
42 Demo 3 Spring als a < b Lennart Herlaar Computerarchitectuur en netwerken 2 27
43 Demo 3 Spring als a < b label: ldc 3 // a = 3 ldc 7 // b = 7 ldc 9 // c = 9 ldl 1 // a ldl 2 // b lt // a<b brt label ldl 1 // a ldl 2 // b add // a+b stl 3 // c = Lennart Herlaar Computerarchitectuur en netwerken 2 27
44 Loops (demo 4) for (int i=1; i<=10; i++) sum = sum+i Lennart Herlaar Computerarchitectuur en netwerken 2 28
45 Loops (demo 4) for (int i=1; i<=10; i++) sum = sum+i ldc 0 // sum ldc 1 // i loop: ldl 2 // i ldc 10 le // i<=10 brf klaar ldl 1 // sum ldl 2 // i add // sum+i stl 1 // sum = ldl 2 // i ldc 1 add // i+1 stl 2 // i = bra loop klaar: halt Lennart Herlaar Computerarchitectuur en netwerken 2 28
46 Methode-aanroep Bij een methode aanroep moeten we na afloop terugkeren (return) programma bsr methode methode ret return Lennart Herlaar Computerarchitectuur en netwerken 2 29
47 Methode-aanroep Bij een methode aanroep moeten we na afloop terugkeren (return) programma bsr methode methode ret return bsr methode // hier gaan we later verder... methode:... ret Lennart Herlaar Computerarchitectuur en netwerken 2 29
48 Stack bij bsr bsr label zet eerst de waarde van de PC op de stack Dit is het adres van de volgende instructie Springt dan naar label Lennart Herlaar Computerarchitectuur en netwerken 2 30
49 Stack bij bsr bsr label zet eerst de waarde van de PC op de stack Dit is het adres van de volgende instructie Springt dan naar label ret popt het adres van de stack en zet het in de PC SP xxxx PC na de instructie SP xxxx Na de bsr instructie Na de ret instructie PC Lennart Herlaar Computerarchitectuur en netwerken 2 30
50 Parameters en resultaat Parameters zetten we op de stack voor de bsr aanroep In de methode reserveren we ruimte voor de locale variabelen We moeten ook de markpointer goed zetten We beginnen de methode met de instructie link n n = aantal woorden voor locale variabelen Voorbeeld: methode vermenigvuldig met 2 parameters en 1 locale variabele (die we niet gebruiken) -3-2 MP +1 SP a = 5 b = 12 oude PC oude MP x Lennart Herlaar Computerarchitectuur en netwerken 2 31
51 Demo 5 print vermenigvuldig(7,9) Lennart Herlaar Computerarchitectuur en netwerken 2 32
52 Demo 5 print vermenigvuldig(7,9) ldc 7 // a ldc 9 // b bsr vermenigvuldig ajs -2 // verwijder parameters ldr RR // resultaat trap 0 halt Lennart Herlaar Computerarchitectuur en netwerken 2 32
53 Demo 5 int vermenigvuldig(int a, int b) { int x; return a*b; } Lennart Herlaar Computerarchitectuur en netwerken 2 33
54 Demo 5 int vermenigvuldig(int a, int b) { int x; return a*b; } vermenigvuldig: link 1 ldl -3 ldl -2 mul str RR unlink ret // a // b // a*b Lennart Herlaar Computerarchitectuur en netwerken 2 33
55 Samenvatting 1 We hebben gezien hoe het O.S. programma s tegen elkaar kan beschermen en zichzelf kan beschermen met behulp van modes (system en user mode) memory management (segmentering en paginering) paginering geeft tevens de mogelijkheid om meer virtueel geheugen te gebruiken dan er fysiek aanwezig is 2 Assemblerprogrammeren: We hebben een simpele virtuele machine gebruikt Met assemblerprogrammeren kun je programma s schrijven die direct door de CPU uitgevoerd kunnen worden zonder dat er een ingewikkelde compiler nodig is. Maar C# is toch makkelijker! We hebben het gebruik van een stack gezien Lennart Herlaar Computerarchitectuur en netwerken 2 34
Computerarchitectuur en netwerken. Memory management Assembler programmering
Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 10 september 2018 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management
slides2.pdf April 12,
Werking van CPU CSN CS2 CPU, I/O en Memory management Piet van Oostrum 12 april 2002 De ALU kan alleen eenvoudige operaties uitvoeren (bijv. twee getallen optellen, vermenigvuldigen of testen of iets >
Computerarchitectuur en netwerken Toets 1 4 okt
11.00 13.00 De open vragen moet je beantwoorden op tentamenpapier. De multiple-choice antwoorden moet je op het vragenblad invullen in de rechtervakjes en dat blad inleveren. Schrijf je naam, studentnummer
Geheugenbeheer. ICT Infrastructuren 2 december 2013
Geheugenbeheer ICT Infrastructuren 2 december 2013 Doelen van geheugenbeheer Reloca>e (flexibel gebruik van geheugen) Bescherming Gedeeld/gemeenschappelijk geheugen Logische indeling van procesonderdelen
Geheugen en Adressering. Binding. Binding (2) Logische en Fysieke adresruimten. relocatie register. Dynamic loading
Geheugen en Adressering Binding Geheugen (main memory, primary storage) is noodzakelijk voor de uitvoering van programma's. te beschouwen als array van adresseerbare bytes (of woorden). verschillende processen
Computertechniek vorige examens
Computertechniek vorige examens Examen 2009 Groep 1 1. Geef de 2 manieren waarop de adressen van de I/O-module in de adresruimte geïntegreerd kunnen zijn. (memory-mapped en isolated dus) 2. Wat is post-indexering?
TECHNISCHE UNIVERSITEIT EINDHOVEN ComputerSystemen Deeltentamen B (weken 6..9) vakcode 2M208 woensdag 19 Maart 2003, 9:00-10:30
TECHNISCHE UNIVERSITEIT EINDHOVEN ComputerSystemen Deeltentamen B (weken 6..9) vakcode 2M208 woensdag 19 Maart 2003, 9:00-10:30 Algemene opmerkingen (lees dit!): - Dit tentamen duurt ANDERHALF UUR! - Dit
Computerarchitectuur en netwerken. Operating System structuur. Files
Computerarchitectuur en netwerken 3 Operating System structuur Files Lennart Herlaar 13 september 2017 Inhoud 1 Operating Systems structuur system calls kernel / processen 2 Files storage en directory
Computerarchitectuur en Netwerken. Computerarchitectuur
Computerarchitectuur en Netwerken 1 Computerarchitectuur Lennart Herlaar 2 september 2015 Opbouw van het vak Eerst (6 keer) over de opbouw van computer en operating system Collegedictaat Systeemarchitectuur
Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?
Hoofdstuk 3: Processen: Beschrijving en Besturing Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? 1 Wat is een proces? Een proces is een programma in uitvoering
Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen
Memory Management Process control information Entry point to program Process Control Block Verdelen geheugen over meerdere processen Program Branch instruction Virtual Memory Data Reference to data Processen
Virtueel Geheugen en demand paging (1)
Virtueel Geheugen en demand paging (1) Programma's zijn vaak niet in hun geheel in het geheugen nodig, vanwege: zelden gebruikte onderdelen groter gedeclareerde arrays dan nodig als programma helemaal
Tentamen 17 augustus 2000 Opgaven Computerarchitectuur
Tentamen 17 augustus 2000 Opgaven - 1 - Computerarchitectuur Tentamen Computerarchitectuur (213005) 17 augustus 2000 2 bladzijden met 5 opgaven 3 antwoordbladen Het raadplegen van boeken, diktaten of aantekeningen
Hoe werkt een computer precies?
Hoe werkt een computer precies? Met steun van stichting Edict Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Overview Introductie SIM-PL Simulatietool voor werking computer
Programmeren met Arduino-software
Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en
Hoe werkt een rekenmachine?
Hoe werkt een rekenmachine? Uit welke hardware-componenten bestaat een rekenmachine? Welke instructies kan de machine uitvoeren? Practicum met de rekenmachine I Constante getallen Instructies van het type
Samenvatting Computer Architectuur 2006-2007
Controletransferinstructies = Instructies die verandering brengen in de zuiver sequentiële uitvoering van de instructies. Ze doen dit door de instructiewijzer een andere waarde te geven. Ze kunnen met
Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam
Van Poort tot Pipeline Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Pipeline processor One cycle machine Calculator File of registers Assembly
Hoofdstuk 7. Computerarchitectuur
Hoofdstuk 7 Computerarchitectuur 1 controlebus CPU MEMORY I/O databus adresbus Figuur 71 Schematische opbouw van een computersysteem 8 Figuur 72 Een busverbinding Buslijn Out E A In Out E B In Out E C
7 Omzetten van Recursieve naar Iteratieve Algoritmen
7 Omzetten van Recursieve naar Iteratieve Algoritmen Het lijkt mogelijk om elke oplossings-algoritme, die vaak in eerste instantie recursief geformuleerd werd, om te zetten in een iteratieve algoritme
Oefeningen Interpretatie I Reeks 6 : Registermachines
Oefeningen Interpretatie I Reeks 6 : Registermachines Deze oefeningenreeks behandelt het beschrijven van computationele processen aan de hand van registermachineprogrammaʼs. Registermachines manipuleren
Computerarchitectuur en netwerken. InterProcess Communication (IPC)
Computerarchitectuur en netwerken 5 InterProcess Communication (IPC) Lennart Herlaar 21 september 2016 Inhoud Manieren van communicatie tussen processen binnen één computer: Via files erven I/O redirection
Vakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen [email protected] en [email protected]
assembleertaal F. Vonk versie
2017 assembleertaal F. Vonk versie 1 8-8-2017 inhoudsopgave 1. inleiding... - 3-2. Zeer Eenvoudige Processor v2 (ZEP2)... - 4-3. de code, simulator en geheugen... - 6-4. optellen... - 11-5. vermenigvuldigen...
VAN HET PROGRAMMEREN. Inleiding
OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,
Antwoorden vragen en opgaven Basismodule
Antwoorden vragen en opgaven Basismodule Antwoorden van vragen en opgaven van hoofdstuk 1 1. Is elke combinatorische schakeling een digitale schakeling? Zo nee, waarom niet? Antwoord: Elke combinatorische
Bouwstenen voor PSE. Datatypes en Datastructuren
Bouwstenen voor PSE Datatypes en Datastructuren Definitie Datatype Klasse van dataobjecten tesamen met operaties om ze te construeren, te manipuleren en te verwijderen. Een datatype omvat een specificatie
Software Reverse Engineering. Jacco Krijnen
Software Reverse Engineering Jacco Krijnen Opbouw Inleiding en definitie Techniek Assemblers/Disassemblers Compilers/Decompilers Toepassingen Security Overige Softwarebeveiliging Piracy Anti RE technieken
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def
Linux Assembly Uitwerkingen van de vragen en opdrachten
Linux Assembly Uitwerkingen van de vragen en opdrachten The choice of a GNU generation Hoofdstuk 3 1. (a) Een system call is een functie geleverd door de kernel (het operating system, een interface tussen
slides12.pdf December 14, 2001 1
Onderwerpen Inleiding Algemeen 12 Getallen Getallen Representaties Rekenen Problemen Piet van Oostrum 12 dec 2001 INL/Alg-12 1 X INL/Alg-12 1 X Getallen Soorten getallen Wat is een getal? Experiment: met
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)
Computerarchitectuur. App. B. Review of Memory Hierarchy
Computerarchitectuur App. B. Review of Memory Hierarchy Kristian Rietveld http://ca.liacs.nl/ Caching De memory wall is een zeer groot probleem dat vraagt om oplossingen. De gebruikelijke oplossing is
Lineaire data structuren. Doorlopen van een lijst
Lineaire data structuren array: vast aantal data items die aaneensluitend gestockeerd zijn de elementen zijn bereikbaar via een index lijst: een aantal individuele elementen die met elkaar gelinkt zijn
von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014
von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 Herhaling: Booleaanse algebra (B = {0,1},., +, ) Elke Booleaanse functie f: B n B m kan met., +, geschreven worden Met Gates (electronische
Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)
TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)
Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,
Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt
Een gelinkte lijst in C#
Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk
VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:
OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde
Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)
TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)
Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.
Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort
Talstelsels en getalnotaties (oplmodel)
Talstelsels en getalnotaties (oplmodel) herhalingsvragen 1. Waarom werken computers binair? Omdat binaire computers veel makkelijker te maken is. De kans op fouten is ook veel kleiner. het spanningsverschil
scc = b) CD AB
Computerarchitectuur en -organisatie (213030) Dinsdag 21 januari 2040, 13.30 17.00 uur 7 bladzijden met 8 opgaven 4 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam,
Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 5.1-5.2, Appendix A.
Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 51-52, Appendix A1) Processes zijn meestal niet onafhankelijk Bijvoorbeeld: 2 processen
Tentamen Computersystemen
Tentamen Computersystemen baicosy6 2e jaar bachelor AI, 2e semester 21 oktober 213, 9u-11u OMHP D.9 vraag 1 Van een Single Cycle Harvard machine hebben de componenten de volgende propagation delay time:
' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen te gebruiken.
Tentamen Operating Systems Dinsdag 14 juni 2016,10:00-13:00 Examinator: dr. K. F. D. Rietveld ' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen
Pascal uitgediept Data structuren
Pascal uitgediept Data structuren MSX Computer & Club Magazine nummer 68-juni/juli 1994 Herman Post Scanned, ocr ed and converted to PDF by HansO, 2001 In deze aflevering wordt bekeken hoe zelf een datastructuur
Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam
Arduino Cursus, Deel 2 Programmeren Simon Pauw, ZB45, Amsterdam Programmeren Geen zorgen als je niet alles begrijpt. Doel: Het snappen van bestaande code. Meeste kennis ook toepasbaar buiten de Arduino
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));
Systeemarchitectuur. Piet van Oostrum. herziene versie november 2005. Departement Informatica
Systeemarchitectuur Piet van Oostrum herziene versie november 2005 Departement Informatica Padualaan 14 3584 CD Utrecht Corr. adres: Postbus 80.089 3508 TB Utrecht Telefoon 030-2531454 Fax 030-2513791
Debugging in embedded en native systemen met GDB
Debugging in embedded en native systemen met GDB A.M. ten Doesschate July 15, 2015 Abstract Een korte beschrijving : intro gebruik met welke tools en hulpmiddelen van de GDB setup en een summier aantal
11011 Processor MMI Intro. Binaire representatie. Computer: Logische opbouw (Von Neumann) 3-input 1-hot detector.
NOT NOT NOT NOT NOT NOT 9-09-7 Intro MMI The Digital World 2 Peter van Kranenburg Vandaag: Terugblik vorige week Werking CPU Soorten instructies Werking CPU Cache Pipelining Digitale representatie Tekst
Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??
Vragen?? Vandaag Hoofdstuk 4: threads (tentamenstof : 4.1 t/m 4.2) Kleine Opgaven 4.1 (niet alleen ja of nee, ook waarom!) en 4.4 inleveren maandag Centrale begrippen hoofdstuk 3 processen proces state:
Een eenvoudig algoritme om permutaties te genereren
Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden
Syntax- (compile), runtime- en logische fouten Binaire operatoren
Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle
Indirecte adressering
Indirecte adressering 1 pagina 1 Absolute adressering - Directe adressering Operand Operand- Supplementaire Beschrijving adres toegangsbreedte (voorbeeld) I 37.4 byte, woord, Ingangen dubbelwoord Q 27.7
De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012
De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012 Tanenbaum hoofdstuk 2 von Neumann - architectuur. Tanenbaum, Structured Computer Organiza4on, FiMh Edi4on, 2006 Pearson Educa4on,
Introductie in C++ Jan van Rijn. September 2013
Introductie in C++ Jan van Rijn September 2013 Inhoud Classes Overerving Const correctness Standard C++ library Templates Classes Voordelen van classes: Modelleren Modulariteit Informatie afschermen Makkelijk(er)
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Functies Vorige week bekeken we functies: def bereken(a, x): return a * (x
in1671 - Operating System Concepten
in1671 - Operating System Concepten drs J.W.J. Heijnsdijk Faculteit EWI, kamer 09.280 (Mekelweg 4) tel. 85804 email: [email protected] 2005 1-1 Doel van een Operating System Wat is een Operating
in1671 - Operating System Concepten Doel van een Operating System Interrupts 3-Lagen model spooling (Simultaneous Peripheral Operation On Line)
in1671 - Operating System Concepten Doel van een Operating System drs J.W.J. Heijnsdijk Faculteit EWI, kamer 09.280 (Mekelweg 4) tel. 85804 email: [email protected] Wat is een Operating System?
Informatica: C# WPO 9
Informatica: C# WPO 9 1. Inhoud Functies (functies met return-waarde) 2. Oefeningen Demo 1: Som Demo 2: Min en max of array Demo 3: Retourneer array van randomwaarden A: Absolute waarde A: Afstand A: Aantrekkingskracht
Digitale technieken Deeltoets II
Digitale technieken Deeltoets II André Deutz 11 januari, 2008 De opgaven kunnen uiteraard in een willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.
Een korte samenvatting van enkele FORTRAN opdrachten
Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5
BEGINNER JAVA Inhoudsopgave
Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire
PYTHON REEKS 1: BASICS. Mathias Polfliet
PYTHON REEKS 1: BASICS Mathias Polfliet [email protected] EENVOUDIGE REKENMACHINE 2 soorten getallen Getallen Z -> integers (gehele getallen) Getallen R -> floating points (reële getallen) Door beperkte
informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)
informatica hardware overzicht moederbord CPU RAM GPU architectuur (vwo) 1 moederbord basis van de computer componenten & aansluitingen chipset Northbridge (snel) Southbridge ("traag") bussen FSB/HTB moederbord
DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie
www.arduino.cc Arduino en DDS DDS chips DDS = Direct Digital (frequency) Synthesis Output = sinusvormig signaal Maximum frequentie = ½ klokfrequentie Frequentie bepaald door tuning word Grootste fabrikant:
Hoofdstuk 6: Zelf functies maken
Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 6: Zelf functies maken 6.0 Leerdoel
HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren
HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet
Datastructuren en algoritmen
Datastructuren en algoritmen Doelstelling Datastructures + algorithms = programs Boek van Niklaus Wirth: bedenker Pascal en Modula Datastructuur: structuur om informatie op te slaan Algoritme: voorschrift
Achtste college algoritmiek. 8 april Dynamisch Programmeren
Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers
Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers Hoofdstuk 6: Beslissingen: if-statement en switch-statement. Inleiding: Condities zijn waar (true) of onwaar (false) In C staat het int-getal
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
De Arduino-microcontroller in de motorvoertuigentechniek (8)
De Arduino-microcontroller in de motorvoertuigentechniek (8) E. Gernaat (ISBN 978-90-79302-11-6) 1 Assembly (Assembleertaal) 1.1 Inleiding De Arduino kan ook in assembleertaal (assembly) worden geprogrammeerd.
Antwoorden zijn afgedrukt!!!!!!!
Computerorganisatie INF/TEL (233) februari 2, 9. 2.3 uur 8 bladzijden met 9 opgaven 3 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam, studentnummer, naam vak, vakcode,
Programmeermethoden NA. Week 6: Lijsten
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal
ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen
ICT Infrastructuren: Processen en Threads 18 november 2013 David N. Jansen Datum en Ajd van werkcollege na overleg met de aanwezigen: donderdag 8:45 10:30 Leerdoel voor vandaag. Stallings hoofdst 2 4 Hoofddoelen
Uitwerking tentamen Analyse van Algoritmen, 29 januari
Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4
