Hardware en Software dr. Boris Rogge 16 oktober 2003
Hardware Algemeen Overzicht
Hardware & Software -- Basisbegrippen Overzicht Geschiedenis van de computer Bits en bytes Organisatie van een computersysteem Hardware op het Internet Vragen en discussie 19/09/2018 Hardware & Software -- Basisbegrippen
Mijlpalen in de computer-architectuur Mechanische computers (…-’45) Elektronenbuizen (’45-’55) Transistoren (’55-’65) Geïntegreerde circuits (’65-’80) Personal Computers (’80-…) 19/09/2018 Hardware & Software -- Basisbegrippen
Enkele belangrijke namen Pascal (1642): Mechanisch rekentoestel Babbage (1822-1850): Concepten ! Difference Engine Analytical Engine Ontstaan IBM (1924) ENIAC (1946): Electronic Numerical Integrator and Computer Eerste volledig elektronische computer 100.000 berekeningen per seconde Berekening ballistische trajecten 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Belangrijke data (II) Von Neumann Machine (1949) Eerste computer met magnetische tape Mogelijkheid om programma’s in te laden Ontwikkeling diverse programmeertalen in jaren 50-60 Ontstaan Intel (1964), Microsoft (1975) en Apple (1976) VLSI (1972): Very Large Scale Integration (> 10.000 componenten) 19/09/2018 Hardware & Software -- Basisbegrippen
Very Large Scale Integration Jaar Aantal transistoren 8088 (XT) 1979 29.000 80286 (AT) 1982 134.000 80386 DX 1985 275.000 80486 DX 1989 1.200.000 Pentium 1993 3.100.000 Pentium II 1997 7.500.000 Pentium III 1999 9.500.000 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Wet van Moore Aantal transistoren per chip verdubbelt elke 18 maand De wet is eveneens toepasbaar op andere parameters, zoals het computergeheugen, # instructies per seconde,... 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Binair talstelsel Het alfabet : 0 en 1 (bit) Bv.: 1001011011010101010101001 11111001100001101101001111111111100010110010110110 Enkele bewerkingen 1 1 OF EN 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Voorstelling van getallen 8 bits samenvoegen 1 byte Bv.: 10010110/10101010/01010010 11111001/00001101/0100111111111110/00101100/10110110 Oorspronkelijke standaardeenheid binnen een computer Conversie: binair decimaal Conversie: getal alfabet (ASCII) 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Conversie: binair decimaal 1000 100 10 1 Decimaal 1 6 9 100 + 60 + 9 Binair 128 64 32 16 8 4 2 1 1 1 1 1 128 + 32 + 8 + 1 10101001 = 169 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Conversie: decimaal ASCII ... ... ... 01100101 65 A 01100110 66 B 01100111 67 C 01101000 68 D 01101001 69 E 01101010 70 F 01101011 71 G ... ... ... 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Bits en Bytes 1 bit 1 byte 1 kilobyte 1 megabyte 1 gigabyte 1 of 0 8 bits 1024 bytes 1024 kbytes 1024 Mbytes 1 megabyte = 1.048.576 bytes 1 gigabyte = 1.073.741.824 bytes 19/09/2018 Hardware & Software -- Basisbegrippen
Organisatie van een computersysteem Blokschema Centrale verwerkingseenheid De bus en het geheugen I/O of Input/Output Massa-opslag Printers Netwerkconnecties Seriële communicatie 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Blokschema 19/09/2018 Hardware & Software -- Basisbegrippen
Centrale verwerkingseenheid (CVE) Bestaat uit verschillende delen: Controle-eenheid (CU) Reken-eenheid (ALU) Registers Caches Pinnen (communicatie) 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Blokschema Processor 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen De Bus Verzameling parallelle draden Data- en Controlelijnen Verbindt alle interne onderdelen van een computersysteem Bepaalt mee de snelheid van een computersysteem 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen De geheugenpiramide Essentieel voor de werking van computer Caches Registers Snelheid RAM Extern geheugen Hoeveelheid 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Het interne geheugen Caches Geheugen op de processor ROM : Read Only Memory Ingebakken in de chip Niet volatiel Nodig om systeem op te starten RAM : Random Access Memory Snel maar duur (relatief) Volatiel 19/09/2018 Hardware & Software -- Basisbegrippen
Fysische implementatie 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Nieuwe Technieken Gepijplijnde processoren Multimedia processoren met specifieke instructies voor video-toepassingen 3D-animaties (oa. games) spraakverwerking Meerdere processoren binnen eenzelfde computer Nieuwe bustechnieken 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen I/O of Input/Output Interne I/O Hard disks Videokaarten Externe I/O (Randapparaten) Printers Interactieve I/O (toetsenbord/muis) Scherm Seriële communicatie Netwerkconnecties 19/09/2018 Hardware & Software -- Basisbegrippen
Het externe geheugen = opslagmedia Harde schijf (grootte-orde 80 GB) goedkoop en grote opslagcapaciteit blijvend CD-ROM en DVD-ROM (grootte-orde 1 tot enkele GB) grote opslagcapaciteit Diskette station (< 1,44 MB) traag en beperkte opslagcapaciteit ZIP-drive (< 250 MB) sneller en medium opslagcapaciteit 19/09/2018 Hardware & Software -- Basisbegrippen
Hard disks : goniometrie Spoor Sector Blok 19/09/2018 Hardware & Software -- Basisbegrippen
Hard disks : goniometrie Schijven Koppen Aandrijfas 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Printers Karakterdrukkers Matrix printer Paginadrukkers Inkjet printer Laser printer 19/09/2018 Hardware & Software -- Basisbegrippen
Karakterdrukker: matrixprinter 19/09/2018 Hardware & Software -- Basisbegrippen
Inkjetprinter Relatief snel Betaalbaar voor kleur Allround-toepassingen Thermisch Drop-On-Demand principe Verwarmings- element Technologie gebruikt in HP Deskjet, Epson Stylus 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Laserprinter Snel Hoge kwaliteit Bureau-toepassingen Spiegel Laser Roterende trommel Toner Warme rollen Invoer Uitvoer 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Seriële Communicatie ‘Trage’ verbinding met de ‘buitenwereld’ RS-232 USB (Universal Serial Bus) Verschillende toepassingen Muisbesturing Synchronisatie handheld devices Modem (modulator/demodulator) verbinding tussen computers over een telefoonlijn snelheid uitgedrukt in baud bits/seconde 19/09/2018 Hardware & Software -- Basisbegrippen
Seriële communicatie (voorbeeld) 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Netwerkconnecties LAN : Local Area Network Communicatie via netwerkkaart Netwerk dat zich op één lokatie bevindt WAN : Wide Area Network Netwerk dat zich over verschillende lokaties uitstrekt (verbindt verschillende LAN’s) Communicatie via modem of huurlijn (leased line) Stijgende interesse dankzij het Internet 19/09/2018 Hardware & Software -- Basisbegrippen
Soorten netwerkimplementaties Coax-netwerken (ringvormig) Gangbare snelheden 10 Mbits UTP-netwerken (stervormig) UTP = Unshielded Twisted Pair Snelheden van 10 en/of 100 Mbits basis voor huidige netwerken in bedrijven Glasvezelnetwerken Snelheden van orde Gbits 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Coax-netwerk (ring) 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen UTP-netwerk (ster) 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Besluit Hardware kent een erg snelle evolutie Wet van Moore wordt nog steeds gerespecteerd Netwerken 19/09/2018 Hardware & Software -- Basisbegrippen
Software Algemeen Overzicht
Hardware & Software -- Basisbegrippen Overzicht Basisbegrippen De taal van de computer Soorten programmeertalen Het programmeren De software Besluit 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Algoritme Automaat Computer Programma & programmeren 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Algoritme Een algoritme is de combinatie van datastructuren en acties, die in een eindig aantal bewerkingen het gestelde probleem oplost, of melding maakt van het falen ervan. Algoritme ruwe informatie nuttige informatie 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Automaat Een automaat is een vaste implementatie van een algoritme. De realisatie van één operatie. Een machine geconcipieerd en gerealiseerd voor één opdracht. Hoe ingewikkeld die opdracht ook moge zijn. 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Computer Een machine die in staat is, onder beheer van een programma, zich zo te configureren dat elke willekeurige, maar correct definieerbare operatie kan worden uitgevoerd. 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Programma Een programma is een computer- implementatie van een algoritme. Programmeren : het vertalen van de datastructuren en de acties van het algoritme in een taal die verstaanbaar is voor de computer. 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen De taal van de computer Binair talstelsel Voorstelling van getallen Voorstelling van letters en symbolen 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Binair talstelsel Het alfabet : 0 en 1 (bit) Bv.: 1001011011010101010101001 11111001100001101101001111111111100010110010110110 Enkele bewerkingen 1 1 OF EN 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Voorstelling van getallen 8 bits samenvoegen 1 byte Bv.: 10010110/10101010/01010010 11111001/00001101/0100111111111110/00101100/10110110 Oorspronkelijke standaardeenheid binnen een computer Conversie: binair decimaal Conversie: getal alfabet (ASCII) 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Conversie: binair decimaal 1000 100 10 1 Decimaal 1 6 9 100 + 60 + 9 Binair 128 64 32 16 8 4 2 1 1 1 1 1 128 + 32 + 8 + 1 10101001 = 169 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Conversie: decimaal ASCII ... ... ... 01100101 65 A 01100110 66 B 01100111 67 C 01101000 68 D 01101001 69 E 01101010 70 F 01101011 71 G ... ... ... 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Programmeertalen Doel van een programmeertaal Soorten programmeertalen Machinetaal (1GL) Assembler (2GL) Hogere programmeertalen (3GL) Vierde generatietalen (4GL) Vijfde generatietalen (5GL) 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Probleemgerichte taal 5 Vertaling (compiler) Assembleertaal 4 Vertaling (assembler) Besturings- systeemmachine 3 Gedeeltelijke interpretatie Conventionele machine 2 Interpretatie (microprogramma) Microprogamma 1 Microprogramma door hardware uitgevoerd (Niet echt een programma) Digitale logica 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Doel v/e programmeertaal Algoritme vertalen in een door de computer verstaanbaar formaat Heeft een grammatica Heeft een semantiek Meerniveausmachine Moderne computers worden logisch voorgesteld door verschillende niveaus om de complexiteit beheersen 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Machinetaal Laagste niveau Zeer moeilijk door mensen te lezen en schrijven Makkelijk en snel door de computer te interpreteren Vb. : 001101011001111000110101011110010 101010111111000101010101101110111 101010101010101000111101011101010 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Assembler Niveau net boven machinetaal Beter verstaanbaar voor de specialist (gebruik van symbolen) Geeft een grote controle over de computer (belangrijk voor snelheid) Voorbeeld instructie ADD 10, R1 MOVE R1, R2 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Hogere programmeertalen Talen met een hoog abstractie niveau Goed verstaanbaar voor de programmeur Elke taal heeft zijn eigen sterke en zwakke punten. Bijgevolg zijn ze meer of minder geschikt voor een bepaalde toepassingen C/C++, Pascal, Fortran, JAVA, ... 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Vierde generatietalen Eerder een verzameling van hulpmiddelen dan een gestructureerde taal Gericht op de eindgebruiker en zijn problemen Ondersteund door programmageneratoren 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Vijfde generatietalen Talen die worden gebruikt binnen het domein van de artificiële intelligentie en expertsystemen Niet procedurale talen Beschrijvende talen Prolog, Lisp, Huskel, ... 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Programmeren Wat is programmeren ? Stappen bij het ontwikkelen van een programma Compileren en Interpreteren Gebruik van bibliotheken Foutvrij maken van een programma Verschillende manieren van programmeren 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Wat is programmeren ? Een algoritme uitdrukken in een programmeertaal Acties op een logische manier ordenen zodat het beoogde resultaat bereikt wordt Datastructuren voorzien waarin gegevens zullen worden opgeslagen 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Opeenvolgende stappen Probleemstelling gebruiker Analyse van het probleem Ontwikkelen van een algoritme Ontwerp van een programma Implementatie van de programma Testen van het programma Feedback van de gebruiker 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Compileren for(i=0;i<10;i++) { printf(“Hallo”) } Programma code Compiler (omzetten van het code naar machinetaal) 0010100010100 0001001010001 1010111000110 1010110011001 Uitvoerbaar programma Programma uitvoeren Vb.: C, C++, Pascal, JAVA, VB, ... 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Interpreteren for(i=0;i<10;i++) { printf(“Hallo”) } Programma code Interpreter (omzetten van het code naar machinetaal) 0010100010100 0001001010001 1010111000110 1010110011001 Programma uitvoeren Vb.: Basic, Visual Basic, Scripting talen 19/09/2018 Hardware & Software -- Basisbegrippen
Hybride taal (JAVA) for(i=0;i<10;i++) Programma code { printf(“Hallo”) } Programma code Compileren (omzetten van het programma naar bytecode) BYTEC 1 BYTEC 2 BYTEC 3 BYTEC 4 Virtuele machine Interpreteren (omzetten van de bytecode naar machinecode) 0010100010100 0001001010001 1010111000110 1010110011001 Programma uitvoeren 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Bibliotheken (linken) Programma code Gebruik maken van delen van een ander programma Compiler (omzetten van het code naar machinetaal) Intermediar bestand Bibliotheek Dynamisch Statisch Linker Uitvoerbaar programma 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Debuggen Het foutvrij maken van een programma Het verwijderen van logische fouten uit een programma Herkent geen syntactische fouten Vaak een moeilijk en tijdrovend proces 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Proceduraal OO String vb = “voorbeeld” …. toupper(vb); toupper(string aString) { l = lengte(aString); for i=0 to i<l aString[i] = H(aString[i]) } String vb = “voorbeeld” …. vb.toupper() string::toupper() { l = lengte(); for i=0 to i<l aString[i] = H(aString[i]) } 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Bronbestanden en uitvoerbare bestanden Programma, software en automatisering Systeemsoftware Applicatiesoftware Device-Drivers 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Source en object code Bronbestanden: het programma zoals het door de programmeur werd geschreven (source code) Uitvoerbare bestanden: gecompileerde versie van de bronbestanden (binaire vorm) (object code) 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Enkele definities Programma: reeks van instructies die door de computer dienen verwerkt te worden Software: verzamelnaam voor alle programma’s is software Automatisering: Een volledig proces om tot de uitvoering van een bepaalde activiteit te komen 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Systeemsoftware Besturingssysteem: verzorgt de basisfuncties gedeelte systeemprogrammatuur stuurprogramma’s command processor Biedt een aantal diensten aan applicatiesoftware Zorgt ervoor dat de computer bruikbaar wordt 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Eigenschappen OS Single/Multi tasking Single/multi user Realtime Grafische interface Commandolijn Vb: MSDOS, UNIX, Windows, LINUX, MACINTOSH 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Tussenlaag: drivers Vormen de interface tussen de software en de hardware Erg gespecialiseerde vorm van software Deze software leunt erg dicht aan bij de hardware Specificatie van de hardware nodig om te kunnen implementeren 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Applicatie-software Applicaties ontworpen om een specifiek probleem op te lossen tekstverwerker spreadsheet databank internetbrowser standaardoplossingen maatwerk 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Kan software foutloos ? Volgende tabel beschrijft de fout-frequentie bij ervaren programmeurs Project grootte Aantal fouten per 1000 lijnen <2K 0-25 2K-16K 0-40 16K-64K 0.5-50 64K-512K 2-70 512K of meer 4-100 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Productiviteit Kan een software pakket op tijd worden afgeleverd? Project grootte Aantal lijnen code per maand <2K 333-1000 2K-16K 200-1250 16K-64K 125-1000 64K-512K 67-500 512K of meer 36-250 19/09/2018 Hardware & Software -- Basisbegrippen
Hardware & Software -- Basisbegrippen Besluit Complex samenspel van verschillende factoren besturingssysteem en applicatiesoftware besturingssysteem en hardware (randapparaten) applicatiesoftware onderling Tijdsintensief proces om “foutloze” software te ontwikkelen 19/09/2018 Hardware & Software -- Basisbegrippen