DComNet1 Computere og Netværk (dComNet) Jens Kargaard Madsen Jens Bennedsen

Slides:



Advertisements
Lignende præsentationer
Atomer Et programmeret forløb. En måde at lære på.
Advertisements

Studieretnings projektet ÅSG Studieretningsprojekt  En skriftlig opgave i typisk to fag  Du har 2 uger uden anden undervisning til opgaven  Der.
Niveauer af abstrakte maskiner
DProg2 E Programmering 2 dProg2 E2010
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
ISA-niveauet (1) Machine Language: You try to shoot yourself in the foot only to discover you must first reinvent the gun, gunpowder, the bullet, and your.
Introduktion til BOSC Operativsystemer og C.
1 Pentium IA-32 Maskinarkitekturen. 2 Historie (1) Starter i 1970 med udviklingen af Intel 4004:
1 Pentium IA-32 Maskinarkitekturen Kort resume – uge 5.
Symbolsk maskinsprog.
Computer netværk og TCP/IP protokoller Kort resume – uge 6
Oversættelse af Java-programmer JavaBytecode javac Normalt oversættes Java-programmer til bytecode, som fortolkes af en JVM (Java Virtual Machine). Java.
Første generation (maskiner/operativsystemer) 45-55: radiorør Kun maskinsprog programmering = skrivning af nullerog ettaller Intet operativsystem programmør.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Fysik B : Omfang 5 timer pr. uge
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Hvordan man skriver koden.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
1 Pentium IA-32 Maskinarkitekturen. 2 Historie (1) Starter i 1970 med udviklingen af Intel 4004:
S TUDIERETNINGSPROJEKTET ÅSG H VAD ER ET STUDIERETNINGSPROJEKT ? En skriftlig opgave i typisk to fag Du skal tage udgangspunkt i et studieretningsfag.
Studieretnings projektet ÅSG Studieretningsprojekt  En skriftlig opgave i typisk to fag  Du har 2 uger uden anden undervisning til opgaven  Der.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
DComNet1 Computere og Netværk (dComNet) Jens Kargaard Madsen Jens Bennedsen
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
DComNet1 Computer netværk og TCP/IP protokoller. dComNet2 Maskinarkitektur.. fokus på intern organisation af en enkelt computer:
Claus Brabrand, ITU, Denmark Mar 10, 2009EFFECTIVE JAVA Effective Java Presentation Workshop Claus Brabrand [ ] ( “FÅP”: First-year Project.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Grunde til at jeg elsker dig
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Fundamentale datastrukturer
Objekter og klasser Rasmus D. Lehrmann DM
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Procestræ under afvikling af cp init login shell cp cp src dest.
DComNet1 Computer netværk og TCP/IP protokoller. dComNet2 Maskinarkitektur.. fokus på intern organisation af en enkelt computer:
DComNet1 ISA-niveauet (1) Machine Language: You try to shoot yourself in the foot only to discover you must first reinvent the gun, gunpowder, the bullet,
Faget Datakommunikation Navn:_________________________ Velkommen til Claes Larsen, CCAI.
Eksempler på en beregningsprocess… Puslespil ved ombytninger Maximum delsum.
Fundamentale sprogbegreber
Begreber og Redskaber 1. Plan for kurset Formål –Give et begrebsmæssigt grundlag for programudvikling, samt overblik over udvalg af redskaber og metoder.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Længste plateau En klassisk problemstilling (Gries, 1981) - og her i Java!!! Denne opgave drejer sig om at bestemme længden af det længste plateau i en.
Process Control Hardware baggrund Process begrebet i et OS Process tilstande Context switching.
DComNet1 ISA-niveauet (2). dComNet2 Niveauer af virtuelle maskiner ISA niveauet / maskinkodeniveauet / maskinniveau.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1]
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Indledende Programmering Uge 6 - Efterår 2006
DMasArk1 Pentium IA-32 Maskinarkitekturen. dMasArk2 Historie (1).. starter i 1970 med udviklingen af Intel 4004:
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering15A.1 Eksamen…
Eksamen Praktisk prøve.
Fromelle sprog Per P. Madsen Afd. for proceskontrol.
Quiz Uge 2 – torsdag. Hvorfor har vi clicker quizzer? Formålet med quizzerne er –at afveksle undervisningsformen – så I ikke falder i søvn –at tvinge.
Quiz Uge 2 – mandag.
Programmering.
Infomøde om synteseopgaven
Quiz Uge 2 – mandag.
Quiz Uge 2 – mandag.
Præsentationens transcript:

dComNet1 Computere og Netværk (dComNet) Jens Kargaard Madsen Jens Bennedsen

dComNet2 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. forklare opbygningen af større og mindre netværk af computere.

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

dComNet4 Øvelser Hold DA1, Fredag 12-16, Stibitz-113 Hold DA2, Mandag 8-12, Stibitz-123 Hold DA3, Mandag 8-12, Stibitz-113 Hold DA4, Onsdag 14-18, Stibitz-123 Hold DA5, Torsdag 8-12, Stibitz-123 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. Hold DA6, Torsdag 14-18, Stibitz-113 Hold DA7, Onsdag 14-18, Stibitz-113 Hold IT1, Torsdag 11-15, Stibitz-123 Hold IT2, Onsdag 8-12, Stibitz-123

dComNet5 Ugesedler og opgaver Ugeseddel offentliggøres på hjemmesiden senest 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.

dComNet6 Eksamen Kræver at samtlige seks ugeopgaver er afleveret. 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

Eksempel på eksamensspørgsmål dComNet7

8 Eksamen - vurdering Karakteren gives efter 7-skalaen og eksamen er med ekstern censur. Karakteren bestemmes af to komponenter: –Der udbydes hver uge en ugeopgave, der skal afleveres inden den fastsatte tidsfrist (seks i alt). Den bedømmes med op til 10 point (for en fuldstændig, kreativ, gennemarbejdet, afprøvet, korrekt, og veldokumenteret besvarelse). Besvarelserne udarbejdes i grupper på 2-3 studerende og alle medlemmer af gruppen modtager det samme antal point. Ugeopgaverne skal afleveres til den fastsatte deadline og der er ikke mulighed for genaflevering. Det er ikke tilladt at samarbejde med andre grupper om disse opgaver. Alle ugeopgaverne kan tilsammen give 60 point. –Efter kurset afholdes en individuel multiple choice prøve af en times varighed uden forberedelse. Besvarelsen bedømmes på en skala fra 0% til 100%, der vægtes til 60 point. Pensum til denne prøve er slides, noter og de angivne afsnit af bogen. Til eksamen må bogen medtages. Noter og slides må medtages på papir, da computer eller andet elektronisk ikke må anvendes. –Det er et krav, at der er opnået mindst 30 point for ugeopgaverne og 30 point i den individuelle multiple choice for at bestå kurset (dvs. mindst karakteren 02). –Den endelige karakter gives med en ligelig vægt fra ugeopgaverne og multiple choice eksamen under forudsætning af 3.

dComNet9 ?

10 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. forklare opbygningen af større og mindre netværk af computere.

dComNet11 Rigtige maskiner Difference,Analytical Engine, Babbage, 1834 ENIAC, Mauchley, Eckert, 1946 PDP-1, DEC, 1960 PDP-11, DEC, 1970 IBM PC, 1981 transistorer 1948 integrerede kredsløb, 1958 VLSI, 1980

dComNet12 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

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

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

dComNet15 Niveau 5: Højniveausprog

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

dComNet17 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

dComNet18 Eksempel - Towers of Hanoi /* towers.c */ #include 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 kodeJava kode

dComNet19 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.2Java kode v.3

dComNet20 Niveau 4: Symbolsk maskinsprog

dComNet21 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...”

dComNet22 towers.s (Pentium).section.rodata.LC0:.string"Move a disk from %d to %d\n".text.align 4.globl towers.type towers: pushl %ebp movl %esp,%ebp subl $24,%esp cmpl $1,8(%ebp) jne.L3 addl $-4,%esp movl 16(%ebp),%eax pushl %eax […].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 […]

dComNet23 Pentium ordrer.L3: movl $6,%edx movl %edx,%eax subl 16(%ebp),%eax movl %eax,%edx subl 12(%ebp),%edx movl %edx,-4(%ebp) […] Sammenligning af Intel og AT&T syntax: ks/library/l-gas-nasm.html

dComNet24 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)

dComNet25 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 26 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 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 […]

dComNet27 JVM ordrer 42 bipush 6 44 iload_1 45 isub 46 iload_2 47 isub 48 istore_3

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

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

dComNet30 Niveau 2: Maskinniveau (ISA)

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

dComNet32 Pentium ordreformat movl $6,%edx

dComNet33 JVM / IJVM ordreformat bipush 6 svarer til = 0x10 0x06

dComNet34 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 styres af en kontrolenhed...

dComNet35 Niveau 1: Mikroarkitektur niveau

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

dComNet37 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; rd isub2 H=TOS isub3 MDR=TOS=MDR-H; wr; goto Main1

dComNet38 Niveau 0: Digitale niveau

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

dComNet40 Kombinatoriske kredsløb og lagre 1-bit ALU 8-bit ALU Clocked D-latch

dComNet41 Computere og netværk

dComNet42 TCP/IP Protokolstakken

dComNet43 ?