computere og netv rk dcomnet n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Computere og Netværk (dComNet) PowerPoint Presentation
Download Presentation
Computere og Netværk (dComNet)

Loading in 2 Seconds...

play fullscreen
1 / 41

Computere og Netværk (dComNet) - PowerPoint PPT Presentation


  • 76 Views
  • Uploaded on

Computere og Netværk (dComNet). http://www.cs.au.dk/dComNet. Jens Kargaard Madsen ( jkm@iha.dk ) Jens Bennedsen ( jbb@iha.dk ). Computere og netv ærk. Beskrivelse

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Computere og Netværk (dComNet)' - merton


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
computere og netv rk dcomnet

Computere og Netværk (dComNet)

http://www.cs.au.dk/dComNet

Jens Kargaard Madsen (jkm@iha.dk)

Jens Bennedsen (jbb@iha.dk)

dComNet

computere og netv rk
Computere og netværk
  • Beskrivelse
  • 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ål
  • Deltagerne 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.
  • forklareopbygningen af større og mindre netværk af computere.

dComNet

undervisningsmateriale
Undervisningsmateriale

Andrew S. Tanenbaum

Structured 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.

dComNet

velser
Øvelser

Hold 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.

dComNet

ugesedler og opgaver
Ugesedler og opgaver

Ugeseddel offentliggøres på hjemmesiden mandag eftermiddag:

Læsestof for fredagens forelæsning

Opgaver til øvelser i den efterfølgende uge

Der trykkes ikke ugesedler:

Tavle- og diskussionsopgaver

Ugeopgaver

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.

dComNet

eksamen
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

dComNet

slide7
?

dComNet

computere og netv rk1
Computere og netværk
  • Beskrivelse
  • 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ål
  • Deltagerne 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.
  • forklareopbygningen af større og mindre netværk af computere.

dComNet

rigtige maskiner
Rigtige maskiner

transistorer1948

integreredekredsløb, 1958

Difference,Analytical Engine,

Babbage, 1834

ENIAC,

Mauchley, Eckert, 1946

PDP-1,

DEC, 1960

PDP-11,

DEC, 1970

VLSI, 1980

IBM PC, 1981

dComNet

typisk opbygning
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

dComNet

virtuelle abstrakte maskiner
Virtuelle / Abstrakte Maskiner

En (virtuel) maskine definerer instruktioner og datatyper.

En virtuel maskine kan programmeres som en fysisk maskine.

dComNet

fornuftige sp rgsm l om en maskine
Fornuftige spørgsmål om en maskine
  • Hvad skal maskinen bruges til?
  • Hvordan programmeres maskinen?
  • Hvordan er maskinen opbygget?

I dComNet vil vi undersøge de forskellige niveauer udfra disse spørgsmål, fokus afhænger af niveau ...

dComNet

niveau 5 h jniveausprog1
Niveau 5: Højniveausprog

Java, C, C++, Pascal, SQL, Algol-60, Fortran, ...

Begreber

variabler, 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.

dComNet

eksempel towers of hanoi
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

dComNet

eksempel towers of hanoi1
Eksempel - Towers of Hanoi

C kode

Java kode

/* 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);

}

}

dComNet

eksempel towers of hanoi 2
Eksempel - Towers of Hanoi (2)

Java kode v.2

Java kode v.3

/* 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);

}

}

dComNet

niveau 4 symbolsk maskinsprog1
Niveau 4: Symbolsk maskinsprog

Højniveausprog oversættes til symbolsk maskinsprog

gcc -S towers.c

javac towers.java; javap -c towers > towers.code

Begreber

ordrenavne movl $6,%edx

registernavne %edx, %eax, %ebp, %esp

etiketter (labels) .towers, .L3:

operander $-4, 16(%ebp)

direktiver .string “Move ...”

dComNet

towers s pentium
towers.s (Pentium)

.L3:movl $6,%edx movl %edx,%eax subl 16(%ebp),%eax movl %eax,%edx subl 12(%ebp),%edx movl %edx,-4(%ebp) addl $-4,%esp movl -4(%ebp),%eax pushl %eax movl 12(%ebp),%eax pushl %eax movl 8(%ebp),%eax decl %eax pushl %eax call towers addl $16,%esp addl $-4,%esp

[…]

.section .rodata.LC0:.string "Move a disk from %d to %d\n".text .align 4.globl towers .type towers,@functiontowers: pushl %ebp movl %esp,%ebp subl $24,%esp cmpl $1,8(%ebp) jne .L3 addl $-4,%esp movl 16(%ebp),%eax pushl %eax

[…]

dComNet

pentium ordrer
Pentium ordrer

.L3:movl $6,%edx movl %edx,%eax subl 16(%ebp),%eax movl %eax,%edx subl 12(%ebp),%edx movl %edx,-4(%ebp)

[…]

dComNet

pentium registre
Pentium Registre

Værdier kan lagres i registre (register maskine).

k = 6 - i – j;

movl $6,%edx

movl %edx,%eax

subl 16(%ebp),%eax

movl %eax,%edx

subl 12(%ebp),%edx

movl %edx,-4(%ebp)

dComNet

pentium stak
Pentium Stak

Værdier kan lagres også på stakken ...

k = 6 - i – j;

movl $6,%edx

movl %edx,%eax

subl 16(%ebp),%eax

movl %eax,%edx

subl 12(%ebp),%edx

movl %edx,-4(%ebp)

Hver instans af towers har sin eget stakafsnit (stack frame) som udpeges af ebp registret.

dComNet

towers code jvm
towers.code (JVM)

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

[…]

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

dComNet

jvm ordrer
JVM ordrer

42 bipush 6

44 iload_1

45 isub

46 iload_2

47 isub

48 istore_3

dComNet

jvm stak
JVM Stak

JVM 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 // ...

dComNet

slide27
IJVM
  • Simplificering Java’s Virtuelle Maskine (JVM):
  • Senere vil vi behandle Pentium IA-32 markinarkitekturen.

dComNet

niveau 2 maskinniveau isa1
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).

Begreber

lager, lagerceller, registre,

ordrer, ordreformat, ...

dComNet

pentium ordreformat
Pentium ordreformat

movl $6,%edx

dComNet

jvm ijvm ordreformat
JVM / IJVM ordreformat

bipush 6 svarer til 00010000 00000110 = 0x10 0x6

dComNet

udf relse af maskinordrer
Udførelse af maskinordrer

Via fetch-decode-execute cycle:

En aritmetisk/logisk enhed styres

af en kontrolenhed ...

En program counter udpeger

den aktuelle ordre i lageret ...

Typisk via et mikroprogram, der

fortolker den aktuelle ordre ...

dComNet

niveau 1 mic 1 mikroarkitektur
Niveau 1: Mic-1 Mikroarkitektur

Fortolkning af maskininstruktioner:

Begreber

Busser, registre, dataoverførsel, kontrollager, mikroordrer, clock cykler, fetch-decode-execute,…

dComNet

mikroprogrammer
Mikroprogrammer

0x64 isubpop 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; rd

isub2 H=TOS

isub3 MDR=TOS=MDR-H; wr; goto Main1

dComNet

niveau 0 det digital niveau
Niveau 0: Det Digital Niveau

Begreber

Porte (gates), kombinatoriske kredsløb, lagerkredse, bit, digitale værdier, ...

dComNet

kombinatoriske kredsl b og lagre
Kombinatoriske kredsløb og lagre

8-bit ALU

Clocked D-latch

1-bit ALU

dComNet

slide41
?

dComNet