Computere og Netværk (dComNet)
description
Transcript of Computere og Netværk (dComNet)
![Page 1: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/1.jpg)
dComNet 1
Computere og Netværk (dComNet)
Jens Kargaard Madsen ([email protected])Jens Bennedsen ([email protected])
http://www.cs.au.dk/dComNet
![Page 2: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/2.jpg)
dComNet 2
Computere og netværkBeskrivelse
At give den studerende kendskab til computere og netværks opbygning og virkemåde. Herunder hvorledes en computer kan opfattes som niveauer af abstrakte maskiner realiseret i hardware og software [...]
LæringsmålDeltagerne skal ved afslutningen af kurset kunne:
• forklare opbygningen af computere som niveauer af virtuelle maskiner, • beskrive formål, opbygning og begreber på de enkelte niveauer, • anvende begreber og programmere på de enkelte niveauer. • forklare opbygningen af større og mindre netværk af computere.
![Page 3: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/3.jpg)
dComNet 3
Undervisningsmateriale
Andrew S. TanenbaumStructured Computer Organisation (SCO)5. udgave, Prentice-Hall, 2005
Derudover kapitler fra bog omkring TCP/IP netværk.Noter, vejledninger og ugesedler hentes via www-siderne.
![Page 4: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/4.jpg)
dComNet 4
ØvelserHold DA1, Allan Stisen, Onsdag 8-12, Stibitz-113 (21 studerende)
Hold DA2, Jonas Kölker, Onsdag 14-18, Stibitz-123 (24 studerende)
Hold DA3, Freek van Walderveen, Torsdag 8-12, Stibitz-123 (23 studerende)
Hold DA4, Jonas Kölker, Tirsdag 11-15, Stibitz-113 (23 studerende)
Hold DA5, Freek van Walderveen, Tirsdag 8-12, Stibitz-123 (25 studerende)
Hold IT1, Andreas S., Fredag 12-16, Stibitz-113 (17 studerende)
Hold IT2, Andreas S.Pedersen, Torsdag 11-15, Stibitz-113 (17 studerende)
Hold IT3, Anders Jensen, Tirsdag 12-16, Stibitz-123 (17 studerende)
Holdbytte kun muligt hvis man har en at bytte med!
Nogle af jer er ikke sat på et hold af studiekontoret. Mød op på det hold der passer jer bedst.
![Page 5: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/5.jpg)
dComNet 5
Ugesedler og opgaverUgeseddel offentliggøres på hjemmesiden mandag eftermiddag:
Læsestof for fredagens forelæsningOpgaver til øvelser i den efterfølgende uge
Der trykkes ikke ugesedler:
Tavle- og diskussionsopgaverUgeopgaver
Ugeopgaver er obligatoriske og skal laves i grupper.
Dan grupper af 2-3 personer senest ved første øvelsesgang.
Grupper er faste og kan ikke gå på tværs af øvelseshold.
![Page 6: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/6.jpg)
dComNet 6
Eksamen
Kræver at samtlige seks ugeopgaver er godkendt.
Eksamen er multiple choice eksamen (og derved skriftlig) og uden forberedelsestid. Eksamen varer 60 minutter.
Selvom det er MC er det IKKE en test af fakta
![Page 7: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/7.jpg)
dComNet 7
?
![Page 8: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/8.jpg)
dComNet 8
Computere og netværkBeskrivelse
At give den studerende kendskab til computere og netværks opbygning og virkemåde. Herunder hvorledes en computer kan opfattes som niveauer af abstrakte maskiner realiseret i hardware og software [...]
LæringsmålDeltagerne skal ved afslutningen af kurset kunne:
• forklare opbygningen af computere som niveauer af virtuelle maskiner, • beskrive formål, opbygning og begreber på de enkelte niveauer, • anvende begreber og programmere på de enkelte niveauer. • forklare opbygningen af større og mindre netværk af computere.
![Page 9: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/9.jpg)
dComNet 9
Rigtige maskiner
Difference,Analytical Engine,
Babbage, 1834
ENIAC,
Mauchley, Eckert, 1946
PDP-1,
DEC, 1960
PDP-11,
DEC, 1970 IBM PC, 1981
transistorer1948
integreredekredsløb, 1958
VLSI, 1980
![Page 10: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/10.jpg)
dComNet 10
Typisk opbygning
”von Neumann” maskinarkitektur:
First Draft of a Report on the EDVAC, John von Neumann, 1946
Maskiner
Afvikle programmer gemt i lageret/hukommelsen.
Programmer skrives i et programmeringssprog
![Page 11: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/11.jpg)
dComNet 11
Virtuelle / Abstrakte Maskiner
En (virtuel) maskine definerer instruktioner og datatyper.
En virtuel maskine kan programmeres som en fysisk maskine.
![Page 12: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/12.jpg)
dComNet 12
Fornuftige spørgsmål om en maskine
1. Hvad skal maskinen bruges til?
2. Hvordan programmeres maskinen?
3. Hvordan er maskinen opbygget?
I dComNet vil vi undersøge de forskellige niveauer udfra disse spørgsmål, fokus afhænger af niveau ...
![Page 13: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/13.jpg)
dComNet 13
Niveau 5: Højniveausprog
![Page 14: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/14.jpg)
dComNet 14
Niveau 5: Højniveausprog
Java, C, C++, Pascal, SQL, Algol-60, Fortran, ...
Begrebervariabler, typer, værdier,.. tildelingssætninger, if-then-else, while,.. procedurer, funktioner, klasser, objekter, ...
Programmet er statisk, mens udførelsen er dynamisk
k = 6 - i – j;
værdier gemmes i variabler som ændres under udførelsen.
![Page 15: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/15.jpg)
dComNet 15
Eksempel - Towers of Hanoi
Problem:
Flyt n skiver fra pind 1 til 3...
Algoritme:
- flyt n-1 skiver fra pind 1 til 2
- flyt 1 skive fra pind 1 til 3
- flyt n-1 skiver fra pind 2 til 3
![Page 16: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/16.jpg)
dComNet 16
Eksempel - Towers of Hanoi
/* towers.c */
#include <stdio.h>
void towers(int n, int i, int j){ int k;
if (n == 1) printf ("Move a disk from %d to %d\n", i, j); else { k = 6 - i - j; towers(n-1, i, k); towers(1, i, j); towers(n-1, k, j); }}
int main(int argc, char *argv[]){ towers(3, 1, 3);}
/* Towers.java */
public class Towers { public static void towers(int n, int i, int j) {
int k;
if (n == 1) System.out.println ("Move a disk from " + i + " to " + j); else { k = 6 - i - j; towers(n-1, i, k); towers(1, i, j); towers(n-1, k, j); } }
public static void main(String[] args) { towers(3, 1, 3); }}
C kode Java kode
![Page 17: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/17.jpg)
dComNet 17
Eksempel - Towers of Hanoi (2)
/* Towers.java */public class Towers { public static void towers(int n_, int n__, int n___) { int n____; if (n_ == 1)System.out.println("Move a disk from " + n__ + " to " + n___); else { n____ = 6 - n__ - n___; towers(n_-1, n__, n____); towers(1, n__, n___); towers(n_-1, n____, n___); } } public static void main(String[] args) { towers(3, 1, 3); } }
/* Towers.java */
public class Towers { public static void towers(int n, int from, int to) {
int via;
if (n == 1) System.out.println ("Move a disk from " + from + " to " + to); else { via = 6 - from - to; towers(n-1, from, via);//one disc left on from towers(1, from, to); //move the one disc towers(n-1, via, to); //move the rest } }
public static void main(String[] args) { towers(3, 1, 3); }}
Java kode v.2 Java kode v.3
![Page 18: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/18.jpg)
dComNet 18
Niveau 4: Symbolsk maskinsprog
![Page 19: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/19.jpg)
dComNet 19
Niveau 4: Symbolsk maskinsprogHøjniveausprog oversættes til symbolsk maskinsprog
gcc -S towers.cjavac towers.java; javap -c towers > towers.code
Begreber
ordrenavne movl $6,%edxregisternavne %edx, %eax, %ebp, %espetiketter (labels) .towers, .L3:operander $-4, 16(%ebp)direktiver .string “Move ...”
![Page 20: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/20.jpg)
dComNet 20
towers.s (Pentium).section .rodata.LC0:.string "Move a disk from %d to %d\n".text
.align 4.globl towers
.type towers,@functiontowers:
pushl %ebpmovl %esp,%ebpsubl $24,%espcmpl $1,8(%ebp)jne .L3addl $-4,%espmovl 16(%ebp),%eaxpushl %eax
[…]
.L3:movl $6,%edxmovl %edx,%eaxsubl 16(%ebp),
%eaxmovl %eax,%edxsubl 12(%ebp),
%edxmovl %edx,-
4(%ebp)addl $-4,%espmovl -4(%ebp),
%eaxpushl %eaxmovl 12(%ebp),
%eaxpushl %eaxmovl 8(%ebp),%eaxdecl %eaxpushl %eaxcall towersaddl $16,%espaddl $-4,%esp
[…]
![Page 21: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/21.jpg)
dComNet 21
Pentium ordrer
.L3:movl $6,%edxmovl %edx,%eaxsubl 16(%ebp),
%eaxmovl %eax,%edxsubl 12(%ebp),
%edxmovl %edx,-
4(%ebp)
[…]
![Page 22: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/22.jpg)
dComNet 22
Pentium Registre
Værdier kan lagres i registre (register maskine).
k = 6 - i – j;
movl $6,%edx movl %edx,%eaxsubl 16(%ebp),%eaxmovl %eax,%edxsubl 12(%ebp),%edxmovl %edx,-4(%ebp)
![Page 23: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/23.jpg)
dComNet 23
Pentium StakVærdier kan lagres også på stakken ...
k = 6 - i – j;
movl $6,%edx movl %edx,%eaxsubl 16(%ebp),%eaxmovl %eax,%edxsubl 12(%ebp),%edxmovl %edx,-4(%ebp)
Hver instans af towers har sin eget stakafsnit (stack frame) som udpeges af ebp registret.
![Page 24: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/24.jpg)
dComNet 24
towers.code (JVM)
Method void towers(int, int, int)
0 iload_0
1 iconst_1
2 if_icmpne 42
5 getstatic #2
8 new #3
11 dup
[…]
29 iload_2
30 invokevirtual #7
33 invokevirtual #9
36 invokevirtual #10
39 goto 71
42 bipush 6 44 iload_1 45 isub 46 iload_2 47 isub 48 istore_3 49 iload_0 50 iconst_1 51 isub 52 iload_1 53 iload_3 […]
![Page 25: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/25.jpg)
dComNet 25
JVM ordrer
42 bipush 6 44 iload_1 45 isub 46 iload_2 47 isub 48 istore_3
![Page 26: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/26.jpg)
dComNet 26
JVM StakJVM giver kun mulighed for at lagre værdier på en stak…
k = 6 - i – j;
bipush 6 // 6,...iload_1 // i,6,...isub // 6-i,...iload_2 // j,6-i,...isub // 6-i-j,...istore_3 // ...
![Page 27: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/27.jpg)
dComNet 27
IJVMSimplificering Java’s Virtuelle Maskine (JVM):
Senere vil vi behandle Pentium IA-32 markinarkitekturen.
![Page 28: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/28.jpg)
dComNet 28
Niveau 2: Maskinniveau (ISA)
![Page 29: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/29.jpg)
dComNet 29
Niveau 2: Maskinniveau (ISA)Programmer i symbolsk maskinsprog oversættes til absolut maskinkode.
von Neumann arkitektur
Program lagres som en sekvens af bitmønstre (absolut maskinkode).
Begreberlager, lagerceller, registre,ordrer, ordreformat, ...
![Page 30: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/30.jpg)
dComNet 30
Pentium ordreformat
movl $6,%edx
![Page 31: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/31.jpg)
dComNet 31
JVM / IJVM ordreformatbipush 6 svarer til 00010000 00000110 = 0x10 0x6
![Page 32: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/32.jpg)
dComNet 32
Udførelse af maskinordrer
En program counter udpeger den aktuelle ordre i lageret ...
Typisk via et mikroprogram, der fortolker den aktuelle ordre ...
Via fetch-decode-execute cycle:
En aritmetisk/logisk enhed styresaf en kontrolenhed ...
![Page 33: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/33.jpg)
dComNet 33
Niveau 1: Mikroarkitektur niveau
![Page 34: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/34.jpg)
dComNet 34
Niveau 1: Mic-1 Mikroarkitektur
BegreberBusser, registre, dataoverførsel, kontrollager, mikroordrer, clock cykler, fetch-decode-execute,…
Fortolkning af maskininstruktioner:
![Page 35: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/35.jpg)
dComNet 35
Mikroprogrammer
0x64 isub pop two words from stack; push their difference:
bipush 20 // 20, ...
bipush 12 // 12,20, ...
isub // 8, ...
Main1 PC=PC+1; fetch; goto (MBR)....isub1 MAR=SP=SP-1; rdisub2 H=TOSisub3 MDR=TOS=MDR-H; wr; goto Main1
![Page 36: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/36.jpg)
dComNet 36
Niveau 0: Digitale niveau
![Page 37: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/37.jpg)
dComNet 37
Niveau 0: Det Digital Niveau
BegreberPorte (gates), kombinatoriske kredsløb, lagerkredse, bit, digitale værdier, ...
![Page 38: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/38.jpg)
dComNet 38
Kombinatoriske kredsløb og lagre
1-bit ALU
8-bit ALU
Clocked D-latch
![Page 39: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/39.jpg)
dComNet 39
Computere og netværk
![Page 40: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/40.jpg)
dComNet 40
TCP/IP Protokolstakken
![Page 41: Computere og Netværk (dComNet)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56814ff8550346895dbdc034/html5/thumbnails/41.jpg)
dComNet 41
?