1 / 41

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 ). Computere og netv ærk. Beskrivelse

merton
Download Presentation

Computere og Netværk (dComNet)

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. Ø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

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

  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 dComNet

  7. ? dComNet

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

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

  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 dComNet

  11. Virtuelle / Abstrakte Maskiner En (virtuel) maskine definerer instruktioner og datatyper. En virtuel maskine kan programmeres som en fysisk maskine. dComNet

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

  13. Niveau 5: Højniveausprog dComNet

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

  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 dComNet

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

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

  18. Niveau 4: Symbolsk maskinsprog dComNet

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

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

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

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

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

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

  25. JVM ordrer 42 bipush 6 44 iload_1 45 isub 46 iload_2 47 isub 48 istore_3 dComNet

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

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

  28. Niveau 2: Maskinniveau (ISA) 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). Begreber lager, lagerceller, registre, ordrer, ordreformat, ... dComNet

  30. Pentium ordreformat movl $6,%edx dComNet

  31. JVM / IJVM ordreformat bipush 6 svarer til 00010000 00000110 = 0x10 0x6 dComNet

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

  33. Niveau 1: Mikroarkitektur niveau dComNet

  34. Niveau 1: Mic-1 Mikroarkitektur Fortolkning af maskininstruktioner: Begreber Busser, registre, dataoverførsel, kontrollager, mikroordrer, clock cykler, fetch-decode-execute,… dComNet

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

  36. Niveau 0: Digitale niveau dComNet

  37. Niveau 0: Det Digital Niveau Begreber Porte (gates), kombinatoriske kredsløb, lagerkredse, bit, digitale værdier, ... dComNet

  38. Kombinatoriske kredsløb og lagre 8-bit ALU Clocked D-latch 1-bit ALU dComNet

  39. Computere og netværk dComNet

  40. TCP/IP Protokolstakken dComNet

  41. ? dComNet

More Related