"Software als product verdwijnt op de lange termijn"
Het is gebruikelijk software in te delen in drie categorieën:
Systeemprogramma's
De systeemsoftware regelt en ondersteunt de werking van de computer. Een voorbeeld van dit soort software is het besturingssysteem Microsoft Windows.
Applicatieprogramma's
Met applicatiesoftware wordt programmatuur bedoeld die bestemd is voor de gebruiker. Je moet hierbij denken aan toepassingen voor alledaags gebruik op school, op het werk, thuis, enzovoort. Voorbeelden zijn programmas voor tekstverwerking en presentaties.
Embedded software
Embedded software vind je overal om je heen, het zit in allerlei apparaten die we dagelijks gebruiken. Voorbeelden zijn wasmachines, autos, (mobiele) telefoons, thermostaten en afstandsbedieningen. Het is eigenlijk hardware en software ineen.
Tussen de computergebruiker, de applicatieprogrammatuur, systeemsoftware en hardware bestaat een relatie. Die kun je uitbeelden zoals in onderstaande figuur is gedaan.
De relatie gebruikertoepassingssoftwaresysteemsoftwarehardware.
Deze figuur geeft aan dat de computer meestal niet rechtstreeks met de gebruiker communiceert; hier zitten nog twee lagen tussen. De gebruiker communiceert met de applicatie, de applicatie met het besturingssysteem en het besturingssysteem communiceert met de hardware.
De communicatie van de gebruiker met de applicatie verloopt vaak via een grafische gebruikersinterface.
Informatie over een groot aantal softwareprogrammas:
www.softwaregids.nl
Een computergebruiker kan pas zinvol met een computer werken als de computer applicatiesoftware bevat. Als je bijvoorbeeld een spreekbeurt uitwerkt op de computer, doe je dit met behulp van een applicatie (Microsoft Word of OpenOffice Impress bijvoorbeeld). Ook als je een mailtje verstuurt, maak je gebruik van een toepassingsprogramma (bijvoorbeeld Microsoft Outlook of bij webmail Mozilla Firefox).
Zoals in de figuur hierboven is te zien, wordt applicatiesoftware ingedeeld in drie soorten:
Standaardpakketten
Standaardpakketten zijn gemaakt voor gebruikers die allemaal ongeveer dezelfde wensen hebben. Een programma als Microsoft Word of StarOffice Writer bevat functies die vrijwel iedereen van pas komen bij het maken van documenten. Je kunt daarbij denken aan:
de mogelijkheid om tekst in te voeren
tekst vet te maken
lettertypen te veranderen, enzovoort
Standaardpakketten zijn dus door een leverancier in dit geval respectievelijk Microsoft en Sun gemaakt voor een grote groep gebruikers.
Programma's voor specifieke toepassingen
Anders ligt het bij programmas voor specifieke toepassingen. Deze zijn bedoeld voor een specifieke groep gebruikers.
Als je naar de dokter gaat, worden tijdens het gesprek dat je hebt allerlei zaken in de computer ingevoerd. Deze informatie komt in je patiëntendossier, maar dat is niet het enige. Aan de hand van de ingevoerde gegevens kan de dokter een rekening sturen, een verwijsbrief voor een specialist maken, een recept voor een tubetje zalf uitschrijven (of zelfs rechtstreeks aan de apotheek zenden), aan de assistente laten weten dat ze een vervolgafspraak moet maken, enzovoort.
Het zal duidelijk zijn dat jij en ik niets hebben aan zon specialistisch pakket, dat bovendien vrij kostbaar is. Het is bedoeld voor een kleine groep ondernemers, en wordt over het algemeen ontwikkeld door een kleinere, maar gespecialiseerde softwareproducent.
Andere voorbeelden zijn:
een programma voor het beheren van een aandelenportefeuille
een programma voor de besturing van een robot/machine
een boekhoudpakket
een programma voor magazijnbeheer
Er bestaat zelfs speciale software voor fokkers van huisdieren: www.zooeasy.com!
Maatwerktoepassingen
Nog specialistischer toepassingen vind je in de groep maatwerksoftware. Hier gaat het meestal om grote bedrijven die opdracht geven tot het ontwikkelen van informatiesystemen voor bepaalde activiteiten.
Zo kan een uitgeverij bijvoorbeeld aan een systeemontwikkelingsbedrijf de opdracht geven om een productievolgprogramma te ontwikkelen. Met zon programma kan men de productie van boeken van dag tot dag volgen, van manuscript via opgemaakte zetproef tot gedrukt en gebonden boek.
Heel grote concerns, bijvoorbeeld de belastingdienst en banken, beschikken hiervoor over speciale afdelingen, maar het komt ook vaak voor dat men de opdracht uitbesteedt aan bedrijven die hier hun specialiteit van hebben gemaakt. Steeds vaker zijn dit bedrijven in verre landen, waar de salarissen nog laag zijn, bijvoorbeeld India of Maleisië.
Deze activiteit wordt (informatie)systeemontwikkeling genoemd. Je komt ook wel de term software-engineering tegen.
Op de site van Microsoft wordt natuurlijk meer verteld over Microsoft-licenties:
www.microsoft.com
In Nederland bestaan twijfels over de rechtsgeldigheid van dergelijke licentieovereenkomsten:
www.zibb.nl
Je kunt ook zoeken op 'shrink-wrap licentie' om meer over dit onderwerp te weten te komen.
Artikel van Infoworld:
"Cloud computing zaait veel verwarring"
Regelgeving software
Als je een nieuwe broek koopt, is die na betaling van jou en mag je ermee doen wat je wilt. Zo werkt het niet met software. Als je een softwarepakket koopt, bijvoorbeeld de tekstverwerker Microsoft Word, koop je het recht om die te gebruiken (het gebruiksrecht). Je mag het pakket alleen op je eigen pc installeren. Kopiëren is niet toegestaan, je mag slechts een kopie maken die je in noodgevallen kunt gebruiken om het programma opnieuw te installeren, bijvoorbeeld na een harde-schijfcrash. Het is ook niet toegestaan om wijzigingen in de software aan te brengen.
Alles wat je wel en niet mag doen is neergelegd in een licentie-overeenkomst of gebruiksrechtovereenkomst, die bij elk pakket is bijgesloten. Als je het pakket installeert ga je expliciet akkoord met die overeenkomst; in een speciaal scherm wordt dat van je verlangd. Voor het gebruik in netwerken, waar op de aangesloten werkstations dezelfde pakketten worden geïnstalleerd, gelden speciale regelingen.
Een voorbeeld van een licentie-overeenkomst.
Bij het tegengaan van illegaal gebruik speelt ook het product-ID een rol. Bij de installatie moet je over het algemeen een unieke code invoeren, die alleen gebruikt kan worden door de eerste gebruiker van een legaal aangeschaft pakket.
Overzicht van allerlei gratis te downloaden programmas:
freeware-internet.startpagina.nl
www.downloadfreeware.nl
Bepaalde standaardapplicaties kennen een afwijkende licentievorm. We noemen hier freeware en shareware.
Freeware is software die vrij, dat wil zeggen gratis, kan worden gebruikt. Deze programmatuur mag zonder belemmering worden gekopieerd en doorgegeven aan derden. Er mag niet aan worden gesleuteld, want er rust wel copyright op. Een heel bekend freeware-programma is Internet Explorer 7. Ook ZoneAlarm, een beveiligingsprogramma, is een voorbeeld van freeware. Verder zijn diverse games zijn gratis te downloaden en te gebruiken.
Voor shareware moet wel betaald worden. De gebruiker heeft vaak de gelegenheid om het programma gedurende enige tijd uit te proberen; daarna wordt betaling verlangd. Handy Recovery, een programma om verloren gegane bestanden te herstellen, is een voorbeeld van shareware, evenals het anti-spam-programma SpamEater Pro.
De standaardapplicaties die door bedrijven en de overheid gebruikt worden, zijn voor het grootste deel afkomstig van Microsoft. Veel mensen zijn ontevreden over de alleenheerschappij van dit grote softwareconcern. Zij vinden dat ICT-specialisten hun kennis moeten delen in plaats van fors munt te slaan uit een monopoliepositie.
Deze opvatting heeft geleid tot de ontwikkeling van open source software, dat wil zeggen software waarvan de broncode openbaar is. De broncode is in een programmeertaal geschreven door een programmeur; met deze code komt een gebruiker normaal gesproken niet in aanraking. Bij open source software heeft iedereen die de broncode begrijpt de mogelijkheid om aanpassingen aan te brengen en zo die code uit te breiden of te verbeteren. Dit gebeurt dan ook op grote schaal, bijvoorbeeld bij het besturingssysteem Linux of de browser Mozilla Firefox.
Om te voorkomen dat de broncode oneigenlijk wordt gebruikt geldt ook bij open source software een licentie-overeenkomst. Hierin wordt geregeld wat je met de broncode mag doen. Open source software is óf gratis óf veel goedkoper dan commerciële software.
Ook voor de gebruikersvriendelijkheid van websites bestaan allerlei richtlijnen. De overheid heeft er zelfs een aparte site aan gewijd:
webrichtlijnen.overheid.nl
De gebruikersinterface is het onderdeel van een programma dat communiceert met de gebruiker. In de beginjaren van de pc bestond zon interface vooral uit groene of oranje letters tegen een zwarte achtergrond. Er werd dan ook gesproken van een tekstgeoriënteerde interface. Van werkbalken, taakbalken en taakvensters was geen sprake.
WordPerfect
Het tekstverwerkingsprogramma WordPerfect, dat in de jaren tachtig enorm populair was, beschikte destijds over een vrijwel leeg scherm. Handelingen als vet maken van tekst, zoeken en vervangen, inspringen voerde men uit met de functietoetsen van het toetsenbord. Een muis was vrijwel overbodig.
Het documentscherm van WordPerfect 5.1; het liggende streepje linksbovenin is de cursor.
GUI
Op dit gebied is er echter veel veranderd. De interfaces van de meeste moderne programmas zijn grafische interfaces: ze bevatten pictogrammen. Op deze symbooltjes hoef je maar te klikken om een bepaalde taak uit te laten voeren. Een grafische gebruikersinterface wordt ook wel eenGUI genoemd (spreek uit goewie).
Pictogrammen in Microsoft Word (boven) en Microsoft Excel (onder). De overeenkomsten zijn duidelijk.
De toepassingspakketten van één leverancier hebben interfaces die sterk op elkaar lijken. Het voordeel hiervan is dat je als gebruiker relatief snel met een nieuw programma uit de voeten kunt.
WYSIWYG
De komst van de grafische gebruikersinterface maakte ook het principe vanWYSIWYG mogelijk. Dit wil zeggen dat de tekst die je op het scherm ziet, er op papier precies zo uit komt te zien inclusief het gebruikte lettertype, vet en cursief en eventuele afbeeldingen. Bij de tekstgeoriënteerde interface was hiervan geen sprake; deze kon verschillende lettertypen niet afbeelden, laat staan plaatjes tonen.
Informatie over de genoemde programma's is te vinden op:
www.microsoft.nl
nl.openoffice.org
Voor veel computergebruikers is een pakket voor tekstverwerking de toepassing waarmee ze het meest werken, niet alleen op kantoor maar ook thuis. Een tekstverwerkingspakket is bedoeld voor het met behulp van de computer maken, opmaken en afdrukken van allerlei documenten. Hierbij kun je denken aan brieven, memos, rapporten, scripties, enzovoort.
De meeste gegevens worden ingevoerd via het toetsenbord, maar ook de muis is bij tekstverwerking een onmisbaar invoerapparaat. Deze heb je onder andere nodig om op de pictogrammen en knoppen te klikken. De opdrachten die je via de pictogrammen uitvoert, kun je vaak ook via het toetsenbord geven. Daarvoor bestaan toetsencombinaties. Vooral mensen met beperkt zicht of CANS-patiënten kunnen daar baat bij hebben.
Eenvoudige programmas - denk aan WordPad oftewel Kladblok, dat met Windows wordt meegeleverd - bieden voor de meeste gebruikers voldoende mogelijkheden. Toch zijn de meer geavanceerde programmas op het gebied van tekstverwerking populairder.
Informatie over de genoemde programma's is te vinden op:
www.microsoft.nl
nl.openoffice.org
Een andere veelgebruikte toepassing is een spreadsheetprogramma. Een spreadsheet, in het Nederlands wel rekenblad of werkblad genoemd, is een elektronisch rekenvel waarop je in rijen (horizontaal) en kolommen (verticaal) gegevens kunt invoeren. Een groot deel van de gegevens bestaat uit getallen, waarmee gerekend kan worden. De berekeningen zijn gebaseerd op formules, die volgens vaststaande regels worden ingevoerd in bepaalde gedeelten van het werkblad.
Kolommen worden in spreadsheetprogrammas aangeduid met een letter en rijen met een getal. Het snijpunt van een rij en kolom wordt een cel genoemd. De naam van een cel bestaat uit de kolomletter en het rijcijfer, bijvoorbeeld K42 of T8.
Voordeel
Het grote voordeel van een spreadsheet is dat een verandering in de getallen meteen terug te zien is in de nieuwe uitkomsten van de berekeningen. Stel je voor dat je in bepaalde cellen prijzen van artikelen exclusief btw hebt ingevoerd, in één cel het gebruikelijke btw-percentage en in andere cellen formules om de prijs inclusief btw te berekenen. Als nu het btw-percentage verandert, hoef je dat nieuwe percentage alleen maar in te voeren in die ene cel. Het programma rekent dan onmiddellijk alle nieuwe prijzen uit.
Deze handige functie geeft de mogelijkheid om zogenoemde wat als-analyses uit te voeren. Dit houdt in dat je gemakkelijk aan het programma kunt vragen wat er met je winstcijfers gebeurt als je je marketingbudget met 3% verhoogt. Of als je een dure kracht aanneemt. Of als je een extra bedrijfswagen aanschaft.
Grafieken
Ook prettig is dat je op basis van de cijfers uit het werkblad gemakkelijk diverse soorten grafieken op het scherm kunt zetten, waarmee de resultaten visueel ondersteund kunnen worden.
Informatie over de genoemde programma's is te vinden op:
www.microsoft.nl
nl.openoffice.org
Een presentatiepakket biedt de mogelijkheid om elektronische diashows te verzorgen bij presentaties. Meestal gebruikt men hiervoor een (laptop)computer en een beamer of een automatisch afspelende presentatie op een stand van een beurs.
Op de dias kun je allerlei informatie kwijt, waaronder afbeeldingen en grafieken. Daarbij kun je een mooie achtergrond opnemen, die bijvoorbeeld de huisstijl van het bedrijf weerspiegelt. Grafieken zijn gemakkelijk over te nemen uit een spreadsheetprogramma.
Met een databasepakket kan iedere computergebruiker een database aanleggen en hieruit gegevens sorteren en selecteren. Een databasebestand kan gegevens uit de privé-sfeer bevatten, zoals je cds of de namen, adressen en telefoonnummers van je vrienden en vriendinnen.
Natuurlijk wordt ook in het bedrijfsleven op grote schaal gebruik gemaakt van databases:
Een garagebedrijf heeft een database van alle onderdelen en van alle tweedehands autos die men in de verkoop heeft.
Een online computershop heeft achter zijn website een database met de hele voorraad en de klantgegevens, zodat je na inloggen gelijk herkend wordt en je je bestelgeschiedenis op het scherm kunt krijgen.
Een dierenartsenpraktijk heeft een database met alle klantgegevens en met alle medicijnen die men verkoopt
Een school heeft een database met alle leerlinggegevens en de bijbehorende cijfers.
Het meest gebruikte databaseprogramma is Microsoft Access. Ook de open source applicaties MySQL en Base
Het aantal computergames is niet te tellen. Er zitten echte klassiekers tussen, maar er zijn er ook die snel opkomen en weer verdwijnen. Sommige games zijn bedoeld om door één persoon gespeeld worden; andere kun je ook met twee of meer mensen spelen, bijvoorbeeld via het internet.
Spelletjes zijn er al voor heel jonge kinderen. Vaak hebben die programmas een educatief tintje. Voor oudere kinderen en volwassenen is de keus helemaal groot. Je kunt diverse categorieën onderscheiden, zoals: actiespellen, adventures, simulaties, wargames en denkspellen.
Op de website www.gamez.nl, vind je veel informatie over computergames.
Educatieve software
Naast programmas die bedoeld zijn voor entertainment bestaat er ook software waarmee je iets kunt leren: de educatieve software. Complete taalcursussen worden digitaal aangeboden, evenals typecursussen, EHBO-cursussen en cursussen waarmee je de theorie van het rij-examen onder de knie krijgt. Het is zelfs mogelijk om via de computer te leren golfen.
Desktop Publishing (DTP)
Informatie over de genoemde programma's is onder andere te vinden op:
www.microsoft.nl
www.adobe.com
www.quark.com
Een speciaal soort tekstverwerkingssoftware staat bekend onder de naam desktop publishing. Hiermee worden professionele programmas voor het opmaken van teksten bedoeld. Deze bezitten nog veel meer layout-mogelijkheden dan de gewone tekstverwerkers. In de grafische wereld gebruikt men ze voor het maken van bijvoorbeeld folders, tijdschriften en boeken.
Bekende namen in dit verband zijn:
Adobe InDesign
QuarkXPress
Voor de gewone computergebruiker is Microsoft Publisher verkrijgbaar.
Tekenpakket
Een grote verzameling te downloaden afbeeldingen:
cliparts.startpagina.nl
www.microsoft.nl
Informatie over de genoemde programma's is onder andere te vinden op:
www.microsoft.nl
www.adobe.com
www.corel.com
Voor grafisch ontwerpers, maar ook voor de thuisgebruiker, zijn er diverse pakketten waarmee je zelf afbeeldingen kunt tekenen. Deze tekenpakketten bieden ook vaak een hele reeks kant-en-klare afbeeldingen, die je mag gebruiken zonder dat je daarvoor hoeft te betalen. Dit wordt wel clipart genoemd.
Voorbeelden van tekenpakketten zijn Paint Shop Pro, CorelDRAW en Adobe Illustrator. Microsoft Visio is bedoeld voor het tekenen van schemas, diagrammen en overzichten.
Tussen de Bureau-accessoires van Microsoft Windows tref je Paint aan. Ook hiermee kun je eenvoudige afbeeldingen maken. Bij Windows levert Microsoft ook een beperkte galerie met cliparts.
Beeldbewerking
Informatie over de genoemde programma's is onder andere te vinden op:
download.chip.eu (Picasa)
download.chip.eu (PhotoFiltre)
www.adobe.com
www.corel.com
Met een gebrekkige foto hoef je geen genoegen te nemen. Dankzij de mogelijkheden van beeldbewerkingssoftware kun je rode ogen, moedervlekken, storende achtergronden, grijze luchten en krassen feilloos wegwerken. Incomplete klassenfotos zijn ook geen probleem meer: een leerling die afwezig was op de dag dat de foto werd gemaakt, kan achteraf moeiteloos toegevoegd worden.
Een foto die bewerkt is met beeldbewerkingssoftware.
Pakketten die hiervoor veel gebruikt worden, zijn Adobe Photoshop, Microsoft Photodraw en Paint Shop Pro. Picasa en PhotoFiltre zijn gratis alternatieven.
Webbrowsers
Download hier de nieuwste versie van Firefox:
www.mozilla-europe.org
Artikel van Computer Idee:
"Google Chrome-browser nu op derde plaats"
Artikel van Computer Idee:
"En de onveiligste browser is..."
Artikel van ZDNet:
"Populaire oude browser moet naar de stort"
Zoals je waarschijnlijk wel weet, heb je een webbrowser nodig om over het web te surfen. De populairste webbrowsers zijn:
Microsoft Internet Explorer
Mozilla Firefox
Google Chrome
Internet Explorer wordt meegeleverd met Windows. Mozilla Firefox en Google Chrome zijn open source browsers, die hun populariteit onder andere danken aan het feit dat velen Internet Explorer onveilig vinden. Zij hebben het idee dat Firefox en Chrome minder gevoelig zijn voor spyware en virussen dan IE.
Het logo van de browser Mozilla Firefox.
Webpublishing
Informatie over de genoemde programma's is onder andere te vinden op:
www.microsoft.nl
www.adobe.com
In de begintijd van het World Wide Web werd het maken van websites overgelaten aan de professionals. Zij beheersten HTML en konden met behulp van deze niet altijd eenvoudige opmaaktaal mooie websites ontwikkelen.
Tegenwoordig bestaan er echter veel gebruikersvriendelijker manieren voor het maken van websites. Diverse softwareproducenten hebben speciale programmas hiervoor ontwikkeld. Hierin kun je eenvoudig aan geven wat je wilt, volgens het principe van WYSIWYG, en het programma zorgt er vervolgens voor dat alles automatisch wordt omgezet naar HTML-code.
HTML betekent HyperText Markup Language.
Veel pakketten uit de Office-suites (zie verderop) beschikken over mogelijkheden om documenten om te zetten naar HTML, zodat ze geschikt zijn voor webpublishing. Andere, meer specialistische, pakketten op dit gebied zijn:
Microsoft Expression Web Designer
Adobe Dreamweaver
Sommige pakketten zijn bedoeld voor speciale deelgebieden bij het maken van websites. Adobe Flash en Fireworks gebruik je bijvoorbeeld voor speciale effecten: animaties, graphics en geluid op een website.
Het ontwerpscherm van Flash, ook wel de stage genoemd.
Personal Information Manager
Dit soort programmas, vaak afgekort tot PIM, wordt vooral gebruikt voor het bijhouden van agendas en het opstellen van planningen en taakoverzichten. Bovendien kun je er handig informatie over zakelijke en persoonlijke relaties mee beheren.
Bekende voorbeelden van dit soort programmas zijn Microsoft Outlook en Lotus Organizer.
Tegenwoordig vervult de mobiele telefoon voor velen de functies zoals hier omschreven; denk aan de iPhone en de Blackberry.
Groupware
Informatie over de genoemde programma's is onder andere te vinden op:
www.microsoft.nl
www.novell.com
www.ibm.nl
Software die mensen in staat stelt om met elkaar samen te werken binnen werkgroepen en teams, noemen we groupware. Deze programmatuur is er in soorten en maten. De meeste pakketten hebben echter een aantal voorzieningen gemeen: een groupware-pakket biedt mogelijkheden voor
e-mail
documentbeheer
televergaderen
gedeelde agenda's en
vaak een mechanisme waarmee de 'workflow' geregeld kan worden
Een groot voordeel van groupware is dat medewerkers tegelijkertijd en op een willekeurige plaats over dezelfde informatie kunnen beschikken.
Kenmerken
Samengevat zijn de kenmerken van groupware:
zeer flexibel in te zetten;
er is altijd een vorm van elektronische ondersteuning (databases, agendas);
geschikt voor een kantooromgeving.
De meest gebruikte groupwarepakketten zijn:
Lotus Notes
Microsoft Sharepoint
Novell GroupWise
Office Suites
Artikel van Computer Idee:
"OpenOffice.org 3.1 meer dan 20 miljoen keer gedownload'"
Artikel van Automatisering Gids:
"Office 2010 komt in juni"
Informatie over de genoemde suites is onder andere te vinden op:
www.microsoft.nl
nl.openoffice.org
www.ibm.nl
In veel kantooromgevingen maakt men standaard gebruik van een PIM en een tekstverwerkings-, spreadsheet- en presentatieprogramma, al dan niet aangevuld met een databaseprogramma. Voor de softwareproducenten was dit aanleiding om deze programmas gebundeld aan te bieden in een zogenoemde Office-suite.
De suite Microsoft Office heeft verreweg het grootste marktaandeel. Deze bevat:
Word
Excel
PowerPoint
Outlook
Meer uitgebreide versies beschikken ook over:
Access
FrontPage
Publisher
Visio
Een andere speler op deze markt is IBM met zijn Lotus SmartSuite. Verder worden StarOffice (van Sun Microsystems) en OpenOffice (open source) gebruikt.
Het grote voordeel van deze pakketbundels is niet alleen dat de programmas verhoudingsgewijs goedkoper zijn, maar ook dat ze onderling goed samenwerken en dat ze vergelijkbare interfaces bezitten.
Een bitmap-afbeelding, ook wel rasterafbeelding genoemd, is opgebouwd uit een groot aantal afzonderlijkepixels. Je kunt dit vergelijken met een borduurpatroon met evengrote kruissteken of een Ministeck-werkstukje. Daarbij zie je duidelijk dat deze opgebouwd zijn uit blokjes, wat hoekige randen oplevert. De blokjes zijn te vergelijken met de pixels in een bitmap-afbeelding.
Het woord pixel is samengesteld uit de beginlettergrepen van de woorden picture en element.
Het bootje in deze afbeelding is opgebouwd uit blokjes. Dit principe geldt ook voor de pixels van een bitmap-afbeelding.
Bij een bitmap-afbeelding is de opbouw van het beeld pixel voor pixel in kaart gebracht. Bij zwartwit is er voor elke pixel één bit nodig; bij kleur kost de vastlegging van elke pixel een aantal bits.
Met vier bits per pixel kunnen zestien grijswaarden of kleuren worden vastgelegd, omdat met vier bits zestien verschillende combinaties van nullen en enen zijn te maken.
Met acht bits per pixel zijn 256 grijswaarden of kleuren mogelijk.
De meeste programmas kunnen met 24 bits werken: elke getekende pixel neemt dan 24 bits in het geheugen van de computer in, waardoor er miljoenen variaties per pixel mogelijk zijn.
Alle gescande afbeeldingen en fotos zijn bitmaps. Dergelijke afbeeldingen worden meestal opgeslagen met een van de volgende extensies:
bmp
png
jpg
gif
Vervorming
Een bitmap is niet altijd gemakkelijk te vergroten (of verkleinen). Vergrotingen die geen exact veelvoud van het aantal puntjes zijn, leveren vervorming op. Soms verschijnt er dan een blokvormige rand, waardoor het effect van rafels ontstaat (Engels: jaggies). Wanneer die randen softwarematig worden verzacht spreekt men van anti-aliasing. Anti-aliasing ruimt het probleem van zaagtanden uit de weg door aan de randen tussentinten te maken. Hierdoor ontstaat een meer geleidelijke overgang van donker naar licht. De meeste teken- en beeldbewerkingsprogrammas beschikken over anti-aliasingvoorzieningen.
Vervorming bij het afdrukken ontstaat wanneer het raster van een afdrukeenheid niet spoort met de resolutie van de afbeelding of het font. Je kunt dan een vlekkerig resultaat krijgen, wat in vaktaal moiré wordt genoemd.
Een digitale foto; een gedeelte is uitvergroot, zodat de pixels duidelijk te zien zijn.
Bestandscompressie
Compressie
Meer over het compressieprogramma WinRar (shareware):
www.nederlandstaligesoftware.nl
Bekijk ook eens:
www.howstuffworks.com over bestandscompressie.
Hier vind je meer over jpeg en gif:
www.netadvies.nl
Het zal duidelijk zijn dat de opslag van een bitmap nogal wat schijfruimte vraagt. Je kunt dit enigszins beperken door bestandscompressie toe te passen. Bestandscompressie houdt in dat een bestand bewerkt wordt door een speciaal compressieprogramma (bijvoorbeeld WinZip), waarbij het als het ware samengeperst wordt. Na deze bewerking is het enorm veel kleiner geworden: het telt veel minder bytes dan het oorspronkelijke bestand.
Hoe compressie precies in zijn werk gaat, wordt toegelicht in de verdiepingsstof. In het kort komt een veelgebruikte methode erop neer dat gekeken wordt welke gegevens dubbel voorkomen. Die gegevens worden vervolgens op een speciale manier gecodeerd opgeslagen. Bij een afbeelding bijvoorbeeld, hoeven honderden gele pixels niet afzonderlijk opgeslagen worden. Het kan veel korter als er één pixel wordt opgeslagen met als het ware de kanttekening 227x geel. Bovendien wordt de lucht uit een bestand gehaald: spaties, witregels e.d.
Niet alleen afbeeldingsbestanden, maar ook gegevensbestanden (waaronder tekstbestanden) en muziekbestanden kunnen gecomprimeerd worden bewaard. Hoeveel er uiteindelijk aan schrijfruimte bespaard wordt, is afhankelijk van de aard van het oorspronkelijke bestand en van het gebruikte compressieprogramma. De verschillende programmas hanteren verschillende zogeheten compressiealgoritmen.
Geluidsbestanden
Je bent ongetwijfeld bekend met mp3-geluidsbestanden. Mp3 is een bekende compressietechniek voor geluid. Voorbeelden van compressietechnieken voor afbeeldingen zijn gif, jpeg en tiff, terwijl mpeg de omvang van bewegende beelden (sterk) kan verminderen. Met name bij het versturen en downloaden via het internet is het van belang dat bestanden niet onnodig groot zijn. Je treft in dat verband dan ook vaak mp3-, mpeg- en gif-bestanden aan.
MPEG betekent Moving Pictures Expert Group, terwijl MP3 staat voor MPEG Layer 3.
Vectorafbeeldingen worden door de computer op een heel andere manier behandeld dan bitmap-afbeeldingen. Van een getekende cirkel wordt niet het bitpatroon bewaard, maar een reeks getallen die de cirkel beschrijven. Als het gaat om een cirkel, zullen die getallen onder meer de straal, lijndikte, lijnkleur, vulling en coördinaten van het middelpunt aangeven.
Voordelen
Een voordeel van de vectorgeoriënteerde wijze van vastleggen is dat wijzigingen eenvoudig zijn aan te brengen. Bij vergroten of verkleinen wordt alleen de waarde die de straal aangeeft, gewijzigd. Daarna wordt het voorwerp opnieuw getekend. Vervormingen zoals die optreden bij het vergroten of verkleinen van bitmap-tekeningen, komen hierdoor niet voor.
Een tweede voordeel van vectorafbeeldingen is dat de componenten waaruit een afbeelding bestaat als componenten blijven bestaan. Als met behulp van twee cirkels een acht wordt gemaakt, lijkt dat voor het oog één geheel. Voor het programma blijven het twee cirkels die onafhankelijk van elkaar te wijzigen zijn.
Beeldbewerkingsprogrammas als Adobe Photoshop en Paint Shop Pro zijn in het algemeen bitmapgeoriënteerd.
De meeste tekenpakketten, waaronder CorelDRAW en Adobe Illustrator, leveren vectorafbeeldingen op.
De extensie BMP in een bestandsnaam duidt op een bitmap-bestand; de extensie SVG (Scalable Vector Graphic) op een vectorafbeelding.
Programma Structuur Diagrammen (PSDs) Er zijn verschillende schematechnieken waarmee je bruikbare schemas kunt opstellen. Een daarvan is het Programma Structuur Diagram, afgekort tot PSD.
Een Programma Structuur Diagram staat ook bekend onder de naam Nassi-Shneiderman Diagram.
Een PSD is een schema dat de samenhang de structuur van instructies binnen een programma weergeeft. PSDs bestaan uit:
rechthoeken driehoeken tekst Je moet ze beschouwen als voorbereiding op het coderen in een programmeertaal. Ze zijn programmeertaalonafhankelijk. Bovendien gelden er geen strenge taalregels; de probleemoplossing staat centraal.
Algoritme We spreken in dit verband wel van eenalgoritme. De algoritme om van een probleem tot een programma te komen, ziet er als volgt uit:
probleemstelling analyse schematische oplossing het maken van de sourcecode compileren Voor alle duidelijkheid: het schrijven van opdrachten in een programmeertaal is zo ongeveer de laatste stap in het systeemontwikkelingsproces. Eerst moet de programmeur op een gestructureerde wijze de oplossing van een probleem bedenken. PSDs vormen hierbij een hulpmiddel.
Het programma Struktograaf is een hulpmiddel voor het tekenen van PSD's: www.sichemsoft.nl
Hier vind je een freeware-programma met dezelfde functionaliteit als Struktograaf: eii.ucv.cl
Programma Structuur Diagrammen (PSDs) met Struktograaf Basisstructuren Bij PSDs zijn er slechts drie basisstructuren. Als deze op de juiste manier worden gecombineerd, kun je hiermee elk willekeurig computerprogramma schrijven. De basisstructuren zijn:
sequentie iteratie selectie Deze structuren worden ook wel aangeduid met de termen opeenvolging, herhaling en keuze. Bij de behandeling van deze structuren, gaan we uit van een eenvoudig probleem: het bakken van een ei. Niet voor niets wordt het ontwikkelen van een computerprogramma wel eens vergeleken met een recept uit een kookboek!
Sequentiële opdrachten worden van boven naar beneden één voor één uitgevoerd:
Het bakken van een ei kan in een PSD als volgt worden weergegeven:
Hoe gedetailleerd een schema is, hangt af van de gebruiker. Iemand die al vaker iets gekookt of gebakken heeft, zal voldoende hebben aan de handeling vuur aansteken. Voor iemand die dit voor het eerst doet, zouden we het schema zo kunnen uitbreiden:
Voorbeeld: ei bakken Vaak moeten in programmas bepaalde onderdelen herhaald worden. Iets dergelijks geldt bij het bakken van een ei. Stel dat er in de pan maar één gebakken ei past. Als je meer eieren wilt bakken, hoef je de eerste en de laatste stap uit het schema niet bij elk nieuw ei opnieuw te doen, maar de tussenliggende stappen moeten wel voor elk ei uitgevoerd worden. In het schema geef je dit aan door middel van een iteratie.
Er zijn twee soorten iteraties:
iteratie met controle achteraf iteratie met controle vooraf We geven beide vormen als volgt weer.
Controle vooraf
Controle achteraf
Controle vooraf In het voorbeeld van het gebakken ei kun je vooraf en achteraf controleren of je het gewenste aantal eieren gebakken hebt; we gaan even uit van drie stuks. Bij controle vooraf ontstaat het volgende PSD:
Controle achteraf Bij controle achteraf krijg je het volgende PSD:
Bij controle achteraf wordt de herhaling minstens één keer uitgevoerd. Dit is een verschil ten opzichte van de controle vooraf.
Een derde programmastructuur is de selectie. Dit houdt in dat het programmaverloop zich splitst op grond van de vraag of wel of niet aan een bepaalde voorwaarde is voldaan. Afhankelijk van het antwoord wordt gestuurd naar de ene serie opdrachten of naar de andere serie.
In een PSD geef je dit weer door middel van een driehoek. Deze wordt gevolgd door twee kolommen. In de ene kolom staat wat het programma moet doen als de voorwaarde wel geldt, in de andere wanneer deze niet geldt.
Voorbeeld: ei bakken Als je een ei gaat bakken kan het zijn dat het vuur niet meer aangestoken hoeft te worden. Je geeft dat als volgt weer:
Nu is dit natuurlijk een heel eenvoudig keuzevoorbeeld. Het is ook denkbaar dat er zich, nadat een keuze gemaakt is, weer een nieuw keuzeprobleem voordoet. Kijk eens naar het volgende voorbeeld.
Voorbeeld: toegangsprijs Het gaat om het bepalen van de toegangsprijs voor een pretpark. De normale prijs bedraagt tien euro. Kinderen tot twaalf jaar en ouderen vanaf zestig jaar betalen de helft. Er zijn dus twee keuzes te maken, zoals het volgende schema laat zien.
Ten slotte Je hebt nu voorbeelden gezien van de drie basisstructuren van PSDs. Het lijkt misschien onwaarschijnlijk, maar met deze structuren kun je in principe de werking van elk programma beschrijven, hoe ingewikkeld dat ook is. Dat komt doordat elke rechthoek van een structuur zelf weer uit andere structuren mag bestaan:
in het gedeelte dat herhaald wordt, mag een keuzediagram voorkomen; de vakken van een keuzediagram mogen nieuwe keuzen bevatten; enzovoort.
Om inzicht te krijgen in de werking van een PSD en om te controleren of het schema juist is, is het noodzakelijk om de opdrachten na te lopen. Daarbij worden de opdrachten stuk voor stuk uitgevoerd. Dit heeft uiteraard alleen zin als je dat nauwkeurig doet. Je moet daarbij alle opdrachten in de juiste volgorde uitvoeren en elke verandering in waarden op papier bijhouden. (Denk bijvoorbeeld aan het aantal te bakken eieren.)
Ooggetuigenverslag Zon controle wordt wel een ooggetuigenverslag genoemd. Het doel is tweeledig:
Als de werking van het PSD bekend is: controleren of het PSD juist is. Als de werking van het PSD onbekend is: onderzoeken wat het PSD doet. Om de controle uit te voeren is het niet nodig dat je de werking van het PSD al van tevoren doorgrondt. Als voorbeeld nemen we het volgende PSD, waarvan nog niet bekend is wat het doel ervan is.
Dit is een vrij eenvoudig PSD, maar het gaat om het principe. Je ziet eerst twee sequentie-opdrachten. Het blijkt dat het hierbij gaat om iets wat op het scherm afgedrukt moet worden:
een waarschuwing dat een bestand al onder een bepaalde naam op schijf aanwezig is de vraag of deze naam desondanks gehandhaafd moet blijven Daaronder staat een iteratie met een controle achteraf. Het programma moet als het ware herhaaldelijk wachten totdat de gebruiker een J of een N indrukt.
Het PSD eindigt met een selectie: drukt de gebruiker op de J-toets, dan kan worden overgegaan tot opslaan. In alle andere gevallen gebeurt er niets. Dit betekent dat de gebruiker uitsluitend op de J kan drukken om het bestand onder dezelfde naam op te slaan. Dit is de beste methode om te voorkomen dat het bestand ongewild overschreven wordt.
Artikel van Automatisering Gids: "Vrouwen programmeren beter"
Programmeertalen worden wel ingedeeld in vijf hoofdcategorieën. Deze indeling geeft niet alleen de chronologische volgorde weer, maar ook een toenemende gebruikersvriendelijkheid. We onderscheiden:
Machinecode Assembleertalen Hogere programmeertalen Vierde-generatietalen Objectgeoriënteerde talen Hoewel de eerste twee categorieën vandaag de dag voor de gemiddelde gebruiker geen grote rol spelen omdat ze voor hem verborgen blijven, gaan we hier toch even op in.
De kleinste geheugeneenheid is de bit. Een bit is een binair getal (binary digit), dat twee waarden kan hebben: 0 of 1. Alles in het interne geheugen, maar ook op externe geheugenmedia, wordt binair vastgelegd. Dit betekent dus dat ook een programma in binaire vorm wordt opgeslagen. Dit noemen we de machinecode. Elk type processor heeft een eigen manier, de instructieset, om de machinecode te lezen.
De allereerste computers werden in machinecode geprogrammeerd. Het bedieningspaneel van de computer bevatte een lange reeks schakelaars. De programmeur voerde de opdracht in door de juiste schakelaars omhoog of omlaag (dat is een 1 of een 0) te zetten, waarna de opdracht in het geheugen werd opgeslagen. Dat was eentonig werk, waarbij bovendien gemakkelijk fouten werden gemaakt.
De bedieningspanelen van de ENIAC.
In die begintijd stelde een programma weinig voor, de programmas waren nog niet zo omvangrijk. Bovendien waren ze sterk gekoppeld aan de computer waarvoor ze waren geschreven. Een programmeur was al apetrots als hij de computer zo in kon stellen dat die de vierkantswortel van een getal van vijf cijfers ging berekenen
Machinetalen zijn programmeertalen van de eerste generatie. Ze worden tot de lagere programmeertalen gerekend. Lager wil in dit geval zeggen: dicht bij de processor.
Een opdracht in machinetaal om twee getallen op te tellen, kan als volgt luiden:
Veel informatie over assembler: webster.cs.ucr.edu
Ook assembleertaal is een lagere programmeertaal. Het verschil met machinecode is dat er gebruik wordt gemaakt van gemakkelijker te onthouden lettercodes in plaats van nullen en enen. Een speciaal vertaalprogramma, assembleerprogramma genaamd, dient dan om de lettercodes om te zetten in machine-instructies. Dat blijft onder alle omstandigheden nodig, want uiteindelijk is dat voor een computer de enige verstaanbare taal.
Overigens is gemakkelijker te onthouden maar betrekkelijk. Je moet denken aan combinaties die uit enkele letters bestaan, bijvoorbeeld:
LIR zou kunnen staan voor load into register (haal waarde vanuit het geheugen in het rekenregister), AC voor add constant (tel constante op) PIM voor put into memory (zet inhoud van rekenregister op een geheugenplaats) Een voorbeeld van programmacode in assembler.
Een opdracht in assembleertaal om twee getallen op te tellen, kan als volgt luiden:
LOD Y ADD Z STR X
Geheugenplaatsen Een bijkomend voordeel voor de programmeur is dat hij niet langer geheugenplaatsen hoeft bij te houden. Het vertaalprogramma regelt de plaatsing van de variabele in het geheugen. De programmeur hoeft alleen maar de naam te noemen en niet het nummer van de geheugenplaats.
Assembleertaal is een taal van de tweede generatie. Ondanks het feit dat assembleertaal verder van de processor af staat dan machinetaal, spreken we nog wel van een machinegeoriënteerde taal.
Het schrijven van programmas in assembleertaal is een zeer tijdrovende aangelegenheid, die meestal lange, onoverzichtelijke programmas oplevert. Er wordt daarom alleen gebruik gemaakt van een assembleertaal als het programma afgestemd moet worden op de specifieke kenmerken van een processor, bijvoorbeeld in embedded systems. Je moet dan denken aan de processors (microcontrollers) in apparaten als koffieautomaten en thermostaten. Dit is een veelvoorkomende toepassing van een assembleertaal.
De volgende grote stap in de ontwikkeling van programmeertalen werd gezet toen het mogelijk werd om verschillende machinetaalopdrachten te combineren in één programmaopdracht. Deze programmaopdracht benadert al veel meer de menselijke taal dan assembleertaal.
Bij hogere programmeertalen programmeertalen van de derde generatie hoeft de programmeur geen kennis te hebben van de eigenschappen van de processor. De programmeur schrijft stapsgewijs de procedure (regels) voor die de computer moet volgen om het programma uit te voeren. We spreken daarom ook wel van procedurele talen.
Ook bij deze hogere programmeertalen worden de instructies uiteindelijk weer vertaald naar machinecode. Hiervoor dient een speciaal vertaalprogramma, compiler geheten.
Compiler Een compiler is kort gezegd een vertaalprogramma dat de programmaregels (de zogeheten sourcecode of broncode) omzet in machine-instructies (de objectcode of doelcode).
De programmaopdrachten in een programmeertaal van de derde generatie zijn machine-onafhankelijk. In het ideale geval kan dezelfde broncode zonder aanpassingen worden gebruikt op een computer met een andere processor. De compilers voor de desbetreffende taal zijn wél machine-afhankelijk. Ze zetten de broncode om in opdrachten voor een bepaalde processor of een bepaald besturingssysteem.
Voorbeelden Er zijn tientallen derde-generatietalen. Ze werden vaak ontwikkeld voor een bepaald toepassingsgebied. De bekendste zijn:
Artikel van Computable: "Cobol is nog lang niet afgeschreven"
FORTRAN, ontwikkeld voor technische en wetenschappelijke publicaties.
COBOL, vroeger een populaire programmeertaal voor administratieve toepassingen. In de bank- en verzekeringswereld zijn overigens nog steeds veel COBOL-programmas in gebruik.
C, een nog altijd veelgebruikte taal voor het ontwikkelen van systeem- en applicatiesoftware; het besturingssysteem UNIX is ontwikkeld in C.
Pascal, een taal die helpt bij het ontwikkelen van goed gestructureerde programmas. Een voorbeeld van een statement in Pascal.
De opdracht in COBOL om twee getallen op te tellen, luidt:
In talen van de vierde generatie (4GL) worden de programmaopdrachten steeds krachtiger. De meeste talen van deze generatie zijn niet-procedureel; ze zijn eerder probleemgericht. Dit wil zeggen dat de programmeur moet aangeven welk doel hij voor ogen heeft en dat de computer daarbij bepaalt welke reeks instructies daarvoor nodig zijn. Deze talen zijn weer een stap verder verwijderd van de computer.
De hoge verwachtingen die men had van vierde-generatietalen zijn niet uitgekomen. Een algemeen toepasbare vierde-generatietaal levert onhandelbaar grote programmas op, omdat de software veel ballast bevat. De vierde-generatiesoftware die het programma maakt, begrijpt natuurlijk niet echt wat er moet gebeuren en neemt voor de zekerheid allerlei opdrachten en voorzieningen op. Een menselijke programmeur zou een meer afgewogen keuze maken.
Hulpmiddelen Om deze reden beperkt men zich liever tot vierde-generatiehulpmiddelen. Met deze hulpmiddelen (Engels: tools) kan men snel een toepassing of een bepaald gedeelte van een toepassing genereren. Een voorbeeld van zon hulpmiddel is een schermgenerator, waarmee op eenvoudige wijze de layout van invulschermen kan worden bepaald. Verder zijn er rapportgeneratoren, waarmee men aan de hand van gegevens uit een database snel een overzicht kan produceren.
Ook macros die in applicaties als Microsoft Word en Excel gemaakt kunnen worden en vraagtalen alsSQL worden tot de vierde-generatiehulpmiddelen gerekend.
Met SQL kun je onder meer gericht selecties maken in een database.
Artikel van Infoworld: "25 fatale programmeerfouten"
Procedurele talen Programmas die geschreven worden in procedurele talen (van de derde generatie), zoals Pascal, voeren bewerkingen uit op afzonderlijke gegevens. Het komt regelmatig voor dat in programmas bepaalde handelingen op meerdere plaatsen uitgevoerd moeten worden, bijvoorbeeld het sorteren van getallen. Voor die handelingen kunnen aparte programmaatjes worden gemaakt: procedures.
Doordat in een programma naar een procedure kan worden verwezen, is het niet nodig om de afzonderlijke opdrachten telkens opnieuw uit te schrijven. Omvangrijke programmas blijven door het gebruik van procedures dus veel overzichtelijker.
OO-talen Objectoriëntatie, vaak afgekort tot OO, is een techniek die voortbouwt op de techniek van het werken met procedures. Bij OO wordt uitgegaan van de gegevens als kern. De verschillende verschijningsvormen van het gegeven worden eraan gekoppeld; deze zijn afhankelijk van het gebruik (het proces). De processen worden in gang gezet naar aanleiding van boodschappen van andere objecten. Zo ontstaat een object, waarin gegevens en bijbehorende instructies zijn samengevoegd.
Voor het gebruik van een object in een programma hoeft een programmeur niet te weten hoe het object werkt. Bij gebruik van het object hoeft hij alleen de rol te kennen die het object binnen het programma kan spelen. Binnen het programma functioneert het object als een soort black box. Veel meer dan bij de procedurele software-ontwikkeling wordt een programma dus beschouwd als samenhangende zelfstandige eenheden.
Een voorbeeld van het object leerling met een aantal methoden.
Een beschrijving van de OO-techniek wordt algauw tamelijk abstract. We zullen proberen de theorie met een voorbeeld te verduidelijken.
Voorbeeld:leerlingenadministratie Neem de leerlingenadministratie van een school eens in gedachten. Daar werkt men met zaken als vak, docent, leerling, les en toets. De administratie beschikt per leerling over een aantal gegevens:
naam adres geboortedatum rapportcijfers, enzovoort Bovendien voert de administratie regelmatig bewerkingen op de leerlinggegevens uit: de namen moeten afgedrukt worden, de adresgegevens moeten gewijzigd kunnen worden, enzovoort. Objecten bestaan uit een set gegevens (naam, adres, geboortedatum) en een serie handelingen die op de gegevens uitgevoerd kunnen worden. Dit is dus de hiervoor besproken combinatie van data en bijbehorende instructies.
In de terminologie van OO spreken we over methoden (methods) in plaats van over handelingen.
Voordelen
Als voordelen van objectoriëntatie kunnen we noemen:
snellere ontwikkelingstijd door hergebruik van programmamodules; minder fouten in programmacode; betere onderhoudbaarheid van programmas doordat duidelijker is wat elk deel van de software doet; betere uitwisselingsmogelijkheden als gevolg van vastgestelde standaards.
Problemen
Helaas verloopt de ontwikkeling van objectgeoriënteerde programmas in de praktijk niet zonder problemen. Een paar belangrijke hindernissen bij de ontwikkeling van dit soort programmas zijn:
Omzetten is moeilijk De praktische onmogelijkheid om procedurele programmas om te zetten naar OO-programmas. Dit betekent dat veel programmas opnieuw geschreven zouden moeten worden in een objectgeoriënteerde versie. Omdat er nog zeer veel programmas in omloop zijn die zijn geschreven in procedurele talen, zou het verwijderen van deze programmas een enorme kapitaalvernietiging betekenen.
Tekort aan programmeurs De geringe beschikbaarheid van programmeurs met voldoende OO-kennis.
Sun Developer Network: java.sun.com Tekort aan hulpmiddelen Het ontbreken van voldoende hulpmiddelen die programmeurs kunnen ondersteunen bij hun werk. Bovendien is er lange tijd geen geschikte systeemontwikkelingsmethodiek voorhanden geweest. Zonder deze methodiek is het heel lastig om complexe programmas te maken. Met de komst van Java zijn enkele van deze knelpunten opgelost. Sinds de introductie van Java (in 1995) heeft de ontwikkeling van objectgeoriënteerde programmas dan ook een duidelijke impuls gekregen. Bij grote softwarehuizen zien we de laatste tijd een toename in de ontwikkeling van OO-softwareprojecten voor commerciële doeleinden.
Tot op heden is de klassieke programmatuur (geschreven in COBOL, Pascal, en dergelijke) in omvang nog steeds in de meerderheid. Dit heeft mede te maken met de verrassende vitaliteit van sommige oude talen als COBOL. Van COBOL is overigens ook een OO-versie verschenen.
In het dagelijks leven komen we objecten in allerlei vormen tegen. Een huis, een stofzuiger, een school en een auto zijn voorbeelden van objecten. Ook meer abstracte zaken zoals verslagen, rekeningen, onderdelen van een gebruikersinterface (bijvoorbeeld vensters, knoppen, pictogrammen en menus bij Windows) zijn objecten. Hierbij vormen samenhangende gegevens én de opdrachten die erop uitgevoerd worden, een onlosmakelijk geheel.
Het gebruik van objecten in een programma heeft als voordeel dat het niet nodig is om te weten hoe het object technisch in elkaar zit. Het is alleen van belang om te weten hoe het object gebruikt moet worden. Objecten zijn te onderscheiden op basis van eigenschappen, bij OO noemt men die eigenschappen attributen.
Voorbeeld: auto attributen van het object Auto kunnen zijn:
het hebben van wielen bestuurbaar zijn merk type kleur bouwjaar cataloguswaarde
Klassen
Een object is altijd een vertegenwoordiger van een klasse; klassen zijn rechtstreeks verbonden aan objecten. Men zegt wel dat een object een instantie van een klasse is. In de klasse wordt een lijst beschreven van alle attributen en methoden van het object.
Voorbeeld: auto We hebben daarnet een auto een object genoemd. Er zijn diverse typen autos:
stationwagens cabrios SUVs bestelwagens, enzovoort Alle bestelwagens behoren tot de klasse van autos. Een klasse bestaat dus uit objecten met een aantal gemeenschappelijke attributen. Elke individuele bestelwagen die uit de fabriek komt, is een object van de klasse Auto.
Het is niet altijd gemakkelijk om onderscheid aan te brengen tussen een klasse en een object. Men gebruikt deze begrippen soms door elkaar.
Methoden
Methoden worden gebruikt om te communiceren met andere objecten en met de buitenwereld. De methoden verzorgen het gedrag van het object. Elke methode heeft een unieke naam waarmee deze aangeroepen wordt.
Voorbeeld: auto Methoden bij het object auto kunnen zijn:
verkopen repareren overspuiten
Inkapseling
Onder inkapseling wordt verstaan: het in een object insluiten van alle zaken die het object nodig heeft om te functioneren, in het bijzonder de methoden en de data. Door inkapseling zijn de methoden en de data voor de gebruiker onzichtbaar.
Overerving
Objecten kunnen attributen en/of methoden van andere, vergelijkbare, objecten overnemen; we spreken dan van overerving. Dankzij deze mogelijkheid hoeven niet van alle objecten alle eigenschappen steeds opnieuw beschreven te worden. We zeggen dan wel dat de klasse de attributen van de erboven gelegen klasse erft. Ook methoden kunnen geërfd worden.
Voorbeeld: auto Een klasse Bestelwagen kent grotendeels dezelfde attributen als de klasse Auto. Immers, ook bij elke bestelwagen is er sprake van Merk, Type, Kleur, Bouwjaar, Cataloguswaarde.
C C is zoals gezegd een derde-generatietaal, een gestructureerde procedurele taal die veel wordt toegepast voor het ontwikkelen van besturingssystemen en applicatiesoftware. C wordt beschouwd als een erg compacte en efficiënte taal die dicht bij machinecode staat. Dit maakt dat C snel is, maar het is ook foutgevoelig en niet echt gebruikersvriendelijk.
C++ De objectgeoriënteerde opvolger van C is C++. Het draait in C++ om het OO-begrip klasse en om data-hiding. Dit laatste wil zeggen dat een object niets weet van afzonderlijke gegevens, maar uitsluitend uitgaat van klassen. Als deze techniek goed toegepast wordt, levert dit kortere programmas op, die eenvoudiger te doorgronden en te onderhouden zijn.
C++ is in 1980 ontworpen door Bjarne Stroustrup, een medewerker van AT&T. De naam C++ is als een woordspeling bedoeld. In C betekent C++ namelijk dat C vervangen wordt door zijn opvolger, dus C++ wil zeggen dat het om een volgende versie van C gaat.
Artikel van Computerworld: "Java, een blik in de toekomst"
Java is een objectgeoriënteerde programmeertaal, die wel wat overeenkomsten heeft met C++. Het bijzondere van Java is dat het platformonafhankelijk is.
Java is ontwikkeld door de firma Sun en bestaat uit drie onderdelen:
De programmeertaal Java Deze wordt beschouwd als een veelzijdige, overzichtelijke, betrouwbare en zuiver objectgeoriënteerde taal. De taal is gemaakt om op kleine computers te kunnen draaien en wordt dan ook gebruikt in bijvoorbeeld PDAs en mobiele telefoons.
De JDK DeJDK is een uitgebreide bibliotheek van programmacomponenten. Deze maakt Java tot een soort kist vol handige onderdelen waarmee het leuk programmas bouwen is.
De Java Virtual Machine (JVM) Dit is een vertaler die zogeheten bytecode omzet naar een machinetaal die geschikt is voor het platform waarop het Java-programma wordt uitgevoerd. De bytecode draait op alle platforms waarvoor een JVM bestaat. Het laatstgenoemde punt maakt Java wezenlijk anders dan zijn voorgangers. Bij de programmeertalen die voor de komst van Java gebruikt werden, wordt het geschreven programma vertaald naar de machinecode die de computer begrijpt. Daarvoor wordt een vertaalprogramma gebruikt, de al eerder genoemde compiler. Om het programma voor een ander besturingssysteem (een ander platform) geschikt te maken moet het aangepast worden, waarna het opnieuw gecompileerd moet worden.
Sun Developer Network: java.sun.com Bytecode Bij Java vertaalt de compiler naar een vorm die geen machinecode is van een bestaand besturingssysteem, maar naar een tussenliggende vorm, de zogenoemde bytecode. Voor de uitvoering van die bytecode is het vervolgens noodzakelijk die bytecode om te zetten naar de machinetaal van die machine. Dit gebeurt door de Java Virtual Machine (JVM). Deze virtuele machine moet wel speciaal geschreven zijn voor het betreffende besturingssysteem. Dus is er voor elk besturingssysteem een eigen JVM nodig.
Overigens draait Java onder alle populaire 32-bits besturingssystemen en een aantal 64-bits systemen.
De compiler zet een Java-programma om in platformonafhankelijke bytecode.
Hoewel wij de naam Java vooral associëren met een Indonesisch eiland, is de taal genoemd naar de koffie die de ontwikkelaars dronken (en die hen wakker moest houden). Vandaar dat in het logo van Java ook een kopje koffie te zien is
De Delphi-pagina van Codegear (voorheen Borland): www.codegear.com
Delphi is een visuele, objectgeoriënteerde programmeeromgeving van Borland, die gebaseerd is op de taal Pascal. In Delphi vind je alle bijzonderheden van OO programmeren terug.
Je werkt in Delphi in deIDE. De IDE biedt de mogelijkheid om
tekst op te maken; een programma te compileren (omzetten naar machinetaal); een programma te laten uitvoeren; de fouten uit een programma te halen (te debuggen).
Als een programma een fout bevat, spreken we van een bug. Het zoeken naar fouten wordtdebuggen genoemd. Volgens de overlevering werd een van de eerste gemelde fouten in een computerprogramma ook daadwerkelijk veroorzaakt door een insect: tussen de mechanische onderdelen van de computer was een mot terechtgekomen. Daardoor werkte het apparaat niet naar behoren.
Een van de sterke punten van Delphi is deVCL, een bibliotheek met objecten die klaar zijn voor gebruik.
Delphi leent zich goed voor programmeren voor de Windows-omgeving.
Een programmeertaal van Microsoft isVisual Basic.NET. Voorheen heette deze taal Visual Basic, maar vanaf versie 7 van Visual Basic heeft Microsoft gekozen voor een nieuwe naam (2002). VB.NET maakt deel uit van een groter geheel, dat Microsoft het .NET-platform heeft genoemd.
Met VB.NET kun je onder meer applicaties voor de Windows-omgeving schrijven. De gebruikersinterface staat daarbij centraal. Deze wordt ontworpen met alle voorzieningen die kenmerkend zijn voor Windows-applicaties, zoals:
knoppen dialoogvensters keuzemenus selectievakjes Daarna wordt de bijbehorende programmacode eraan verbonden. Ook het schrijven van webapplicaties behoort tot de mogelijkheden.
Platformonafhankelijk VB.NET heeft meer kenmerken van objectoriëntatie dan zijn voorganger: in Visual Basic was bijvoorbeeld de mogelijkheid van overerving nog niet ingebouwd, in VB.NET wel. Het maakt bij het compileren van de programmacode gebruik van een tussentaal, vergelijkbaar met de bytecode van Java. Dit maakt dat .NET evenals Java platformonafhankelijk is.
VBA De populaire Office-pakketten bevatten een vereenvoudigde versie van VB.NET, dieVBA wordt genoemd. Hiermee kun je niet alleen macros voor de betreffende programmas ontwikkelen, maar ook volwaardige programmas.
Een macro is een programmaatje waarmee bepaalde handelingen in een toepassingspakket geautomatiseerd kunnen worden. Een macro bestaat net als elk programma uit een reeks instructies.
De klassieke programmeertalen schieten over het algemeen tekort op het gebied van webapplicaties. De opkomst van het web heeft dan ook een aantal nieuwe en vernieuwde talen opgeleverd, die in deze paragraaf ter sprake komen. Bij de indeling van deze talen speelt het client/server-model een rol.
Toegepast op het internet bestaat het client/server-model uit verschillende componenten:
De client is de computer van de surfer, waarop een browser draait. Via dit programma bezoekt de surfer websites, bijvoorbeeld door de URL in de adresbalk te typen of op hyperlinks te klikken. De aanvraag voor een webpagina wordt verzonden naar een server waarop de website opgeslagen is. De server stuurt de gevraagde pagina naar de client. Populaire sites zoals Google en MSN kunnen duizenden clients per seconde bedienen. Een schematisch voorstel van het client/server-model: de clients doen een aanvraag voor een webpagina bij een server; de server verzendt de gevraagde pagina via internet.
Zowel voor de server als voor de client zijn programmeertalen ontwikkeld.
De client-sided programmeertalen worden uitgevoerd op de computer van de gebruiker. De server-sided talen worden uitgevoerd op de server die de websites bevat.
HTML dient voor het beschrijven van de structuur van webpaginas. Als je HTML gebruikt, plaats je besturingscodes in teksten en daarmee geef je aan hoe die tekst door een browser afgebeeld moet worden op het beeldscherm. Deze codes zelf, tags genaamd, beeldt de browser natuurlijk niet af.
Er zijn talloze verschillende codes, bijvoorbeeld voor het vet, cursief en onderstreept maken van tekst, voor het maken van grote en minder grote koppen, voor het opnemen van afbeeldingen, voor het kiezen van kleuren, noem maar op. De codes staan tussen punthaken: < en >. Over het algemeen bestaan ze uit een begin- en een eindcode, bijvoorbeeld:
<h1> om een hoofdkop aan te geven </h1> om het einde van deze kop aan te geven De browser geeft koppen van niveau 1 in grote en vette letters weer.
De opmaak van de webpagina wordt verzorgd door zogeheten stylesheets; HTML brengt structuur aan in het document.
Een van de belangrijkste kenmerken van HTML is de mogelijkheid om documenten aan elkaar te koppelen via hyperlinks. Met behulp van HTML geef je hyperlinks de juiste code, zodat ze ook daadwerkelijk fungeren zoals ze bedoeld zijn.
Het is niet zo heel moeilijk om HTML te leren (zeker niet als je het vergelijkt met het leren van een echte programmeertaal), maar het wordt steeds minder noodzakelijk om deze taal te beheersen. Er verschijnen namelijk steeds meer programmas waarmee je op een eenvoudige wijze webpaginas ontwerpt.
HTML-code:
Webpagina:
Voorbeeld van een stukje HTML-code met de resulterende webpagina.
In HTML kun je kleine Java-programmas opnemen, die applets worden genoemd. Applets draaien op de client.
XHTML XHTML is een nieuwere variant van HTML, die striktere eisen aan de codering stelt dan HTML. Zo is het bij voorbeeld verplicht dat alle tags worden afgesloten. Hierdoor kan er bij het afbeelden van webpaginas minder fout gaan.
(X)HTML werkt samen met een techniek dieCSS wordt genoemd. Via CSS is de opmaak van webpaginas zeer nauwkeurig in te stellen.
JavaScript is ontwikkeld door onder meer Netscape Communications Corporation. Het is een opdrachttaal die fungeert als uitbreiding op HTML: er kunnen opdrachtregels aan een webpagina mee worden toegevoegd. De browser interpreteert de JavaScript-opdrachten als de pagina op het scherm geplaatst wordt.
Java en JavaScript worden nogal eens door elkaar gehaald. Het grootste verschil tussen beide talen is dat Java een volwaardige programmeertaal is, terwijl JavaScript is bedoeld als uitbreiding op HTML. JavaScript is eenvoudiger, maar daardoor ook beperkter: het wordt uitsluitend toegepast voor webapplicaties. De toepassingsmogelijkheden van Java zijn veel breder. Je kunt er bijvoorbeeld complete tekstverwerkers in programmeren.
In tegenstelling tot Java is JavaScript geen volledige programmeertaal. De opdrachten zijn beperkt tot de objecten van de webbrowser. Met JavaScript kan een ontwerper webpaginas meer interactiviteit geven. Via het script kan hij reageren op eigenschappen van de browser en de computeromgeving.
Event De gebruiker voert een bepaalde handeling uit: hij tikt gegevens in, kiest een mogelijkheid uit een menu, klikt op een knop of vult een veld in, waarna JavaScript-opdrachten voor een passende reactie zorgen. We zeggen dan dat JavaScript reageert op een event; de handeling van de gebruiker heet in programmeertaaljargon een event of gebeurtenis. Een reactie zou kunnen zijn dat er een aangepaste tekst wordt getoond, die betrekking heeft op de gemaakte keuze.
mouseOver en mouseOut Een voorbeeld van een toepassing is het laten oplichten van een plaatje of tekst als de gebruiker er met de muisaanwijzer overheen gaat. Dat is een visueel signaal dat er op die plaats geklikt kan worden. Er worden in dat geval twee plaatjes gemaakt, een donkere en een lichte versie. De pagina bevat JavaScript-opdrachten die reageren op de event mouseOver en ervoor zorgen dat de lichte versie van het plaatje verschijnt. Bij de event mouseOut (de muisaanwijzer verlaat het gebied) wordt de donkere versie weer teruggezet.
Niet alle browsers begrijpen JavaScript. Ontwikkelaars van een website moeten rekening houden met zulke browsers. Gelukkig komt er geen foutmelding of iets dergelijks. Een browser die geen JavaScript kent, slaat de opdrachten over.
Andere scriptingtalen zijn VBScript en Flash ActionScript.
Moderne websites zijn vaak dynamisch. Ze bevatten allerlei functies die met HTML niet aangebracht kunnen worden. Denk aan een gastenboek, een mogelijkheid om elektronisch te betalen, een discussieforum, een fotoalbum of een gepersonaliseerde website. Om deze functies mogelijk te maken zijn er aanvullingen op HTML ontwikkeld, waarvan PHP de bekendste is.
Andere technieken zijn:
ASP JSP Coldfusion
De syntaxis van PHP vertoont overeenkomsten met die van C, Java en Perl. De betekenis van de afkorting PHP heeft in de loop der tijd een verandering ondergaan. In eerste instantie betekende het Personal Home Page Tools, maar tegenwoordig wordt meestal de aanduiding PHP: HyperText Preprocessor gebruikt. PHP-documenten hebben meestal de extensie .php.
Een preprocessor voert eerst een bewerking uit op een webpagina voordat hij naar de browser wordt gestuurd.
HTML-bestand Overigens merkt de bezoeker van een website niet of er naast HTML ook PHP in de website is verwerkt. Het resultaat dat naar de browser op de client wordt gestuurd, is namelijk een HTML-bestand. Vaak zijn de gegevens afkomstig uit een database. PHP is goed in staat gegevens uit een database te halen en deze op te nemen tussen de HTML-code die naar de client wordt gestuurd. Dit is ook het dynamische aspect van PHP: afhankelijk van wat de internetgebruiker wil, worden verschillende gegevens uit de database geselecteerd.
Zoekmachine Denk bijvoorbeeld aan het gebruik van een zoekmachine: zonder PHP zou dit niet mogelijk zijn. Op basis van de ingevoerde zoekterm wordt het overzicht van websites samengesteld, afkomstig uit een immense database.
Omdat PHP een aanvulling op HTML is, is kennis van HTML voor de PHP-programmeur een vereiste.
PHP is ontwikkeld als open source product. Dit betekent dat de broncode vrij is verspreid en aangepast mag worden (net als bijvoorbeeld Linux).
Hieronder staat een voorbeeld van PHP-code, waarbij duidelijk te zien is dat er tussen de HTML-code een PHP-blok is opgenomen. De resulterende webpagina is in de figuur eronder zichtbaar.
Het resultaat van het PHP-blok is de datum van vandaag.
Charles Babbage wordt beschouwd als de grondlegger van de computer. Hij ontwierp in 1833 een mechanische rekenmachine, de Difference Engine, die kon optellen. In werkelijkheid heeft de Difference Engine overigens nooit gewerkt.
De rekenmachine van Babbage.
In 1880 vond er in de VS een volkstelling plaats. Men ging op zoek naar mogelijkheden om de resultaten hiervan zo efficiënt mogelijk te verwerken. In het kader hiervan vond Herman Hollerith de ponskaart uit, waarmee men op een relatief gemakkelijke manier gegevens kon invoeren.
Het bedrijf dat Hollerith in 1896 oprichtte, bestaat nog steeds! Sinds 1924 is het bekend onder de naam International Business Machines Corporation, oftewel IBM.
Een ponskaart is een kaart waarin op bepaalde plaatsen gaatjes geponst zijn. Via deze gaatjes werden aan de computer instructies gegeven.
Een ponskaart.
Weliswaar is de ponskaart uitgevonden vóór de eerste generatie computers, maar de kaart heeft tot begin jaren tachtig dienst gedaan. Dat betekent dat hij ook werd gebruikt bij de volgende computergeneraties.
In de tweede helft van de twintigste eeuw kwam de ontwikkeling van de computer pas goed op gang. Als gevolg van de vorderingen op het gebied van de techniek en de elektronica kwamen er steeds meer mogelijkheden, met als uiteindelijke resultaat de computer zoals wij die nu kennen. We kunnen de computers indelen in zogenoemde computergeneraties.
Eerste generatie: radiobuizen
De eerste generatie computers dateert uit de tijd van 1940 tot ongeveer 1955 en was gebaseerd op elektronenbuizen (radiobuizen) als schakeleenheden. Wanneer je een radio uit grootmoeders tijd openmaakt, zie je deze zelfde 'lampen' zitten. De computers van de eerste generatie hadden de afmeting van een flink klaslokaal. De snelheid en de prestaties waren voor die tijd geweldig, maar vergeleken met de eerste pcs minimaal.
Ter vergelijking: het aantal instructies per seconde bedroeg ca. 102 (nu meer dan 109) en het geheugen 10 KB (nu enkele gigabytes).
De eerste generatie computers werkte met elektronenbuizen.
Tweede generatie: transistors
Artikel van Automatisering Gids:
"Misser in transistortheorie blokkeert miniaturisering"
Transistors deden hun intrede rond 1955; ze vervingen de radiobuizen. Een transistor heeft twee voordelen boven een radiobuis: hij is kleiner en vraagt minder energie.
De eerste grootschalige toepassing van transistors was in draagbare radio's. Voor een radio met radiobuizen moest je de energie van het elektriciteitsnet betrekken, met een draagbare transistorradio had je aan een aantal batterijen genoeg. Computers van de tweede generatie maakten gebruik van transistors. Ze zijn sneller en kleiner dan die van de eerste.
Een transistor.
Derde generatie: IC's
De computers van de derde generatie (vanaf midden jaren 60) konden flink kleiner worden doordat de schakeleenheden opnieuw sterk verkleind werden. Het zogeheten integrated circuit (IC) deed zijn intrede. Dit is een andere term voor de chip: een dun schijfje siliciumoxide van enkele vierkante millimeters, met daarop zeer kleine schakelingen van transistoren. Deze zijn erop gedampt en dus geïntegreerd.
Vierde generatie: microprocessorchips
Halverwege de jaren 70 doet de microprocessorchip zijn intrede en hiermee wordt een nog verdere verkleining bereikt. Hierdoor is het mogelijk op één chip een complete processor te realiseren. Als je een computer van de vierde generatie openmaakt, zie je dat de elektronica maar een klein gedeelte van de inhoud beslaat. De opkomst van de personal computer, vanaf 1981, werd mogelijk dankzij deze voortschrijdende verkleining. De computers van eerdere generaties waren namelijk allesbehalve persoonlijk. Dit zorgde voor een grote verandering in de wijze waarop computers gebruikt werden.
Een illustratie van de voortschrijdende verkleining: een microprocessor naast enkele punaises.
heel veel informatie over de geschiedenis van de computer.
Naast de verschillende generaties kunnen we vier soorten computers onderscheiden: de supercomputer, het mainframe, de minicomputer en de microcomputer, oftewel de pc. Elk van deze computers heeft zijn specifieke eigenschappen en mogelijkheden, die we hierna kort bespreken.
Supercomputers
Waarvoor wordt de snelste computer ter wereld gebruikt?:
www.howstuffworks.com
Top 500:
www.top500.org
Artikel van Automatisering Gids:
"De petaflops-barrière is doorbroken"
Artikel van Computer Idee:
"Supercomputer net zo krachtig als 2 miljoen laptops"
Supercomputers zijn de krachtigste en snelste computers die gemaakt worden. Ze worden vooral gebruikt voor gecompliceerde berekeningen. Hierbij moet je denken aan:
ruimtevaartprojecten
wetenschappelijk onderzoek
weersvoorspellingen
Dit betekent dat je zulke computers vooral aantreft bij universiteiten, meteorologische instituten en multinationals. In Nederland zijn maar weinig van dit soort computers aanwezig, naar schatting minder dan tien.
Supercomputers kunnen miljarden instructies per seconde uitvoeren. Bovendien maken ze gebruik van zogeheten parallelle verwerking. Hierbij vinden op hetzelfde moment verschillende bewerkingen naast elkaar plaats, die stuk voor stuk vaak een enorme rekencapaciteit vergen.
In plaats van parallelle verwerking wordt ook wel de termMPP gebruikt. MPP is mogelijk wanneer de computer over een groot aantal processors beschikt.
Mainframes zijn eveneens zeer krachtige en snelle computers. Ze zijn in staat om verschillende programmas tegelijkertijd uit te voeren. Tenminste, dat lijkt zo: in werkelijkheid krijgen de programmas na elkaar een kort moment toegewezen om een bewerking uit te voeren, zodat honderden gebruikers op hetzelfde moment op een mainframe kunnen werken.
We spreken in dit verband van time sharing: de processor verdeelt zijn tijd over een groot aantal gebruikers en programmas. Er wordt korte tijd aandacht aan een programma besteed, waarna een volgend programma aan de beurt is.
Een mainframe van IBM uit de jaren 60.
Mainframes zijn ontworpen om grote hoeveelheden gegevens snel te verwerken. Banken gebruiken bijvoorbeeld een mainframe voor het bijhouden van de gegevens van bankrekeningen. Deze computersystemen worden meestal toegepast in organisaties waar de klantenbestanden een belangrijk bedrijfskapitaal vormen. De betrouwbaarheid van deze computers en hun besturingssystemen zorgt ervoor dat bedrijven als banken en verzekeringsmaatschappijen in deze systemen blijven investeren.
In veel bedrijven worden de mainframes met de erop draaiende software beschouwd als zogeheten legacy-systemen. Hiermee wordt bedoeld: verouderde systemen die men niet probleemloos kan moderniseren omdat dan het risico bestaat dat essentiële bedrijfsgegevens verloren gaan.
Minicomputer
Minicomputers, ook wel bekend onder de naam midrangecomputer, zijn kleiner en minder krachtig dan een mainframe. Het aantal mensen dat tegelijk op een minicomputer werkt, blijft meestal beperkt tot enkele tientallen. Minicomputers worden bijvoorbeeld gebruikt bij procesbesturing in fabrieken. Dit type computer wordt ook vaak als netwerkserver ingezet. De kans is groot dat de administratie van jouw school er ook mee werkt.
Microcomputer
Een microcomputer, beter bekend onder de naampc, wordt veel gebruikt voor tekstverwerking, boekhoudprogrammas, tekenprogrammas, surfen op het internet, enzovoort. Programmas worden in de systeemeenheid van de pc verwerkt. Vaak worden de gegevens ook op die pc opgeslagen. Als de pc deel uitmaakt van een netwerk, kunnen gegevens ook centraal opgeslagen worden.
Door verbetering van de technische mogelijkheden worden microcomputers steeds sneller en nemen de toepassingsmogelijkheden toe. Als gevolg hiervan worden ze steeds vaker gebruikt op plaatsen waar voorheen een minicomputer of mainframe ingezet werd.
Gordon Moore, een van de oprichters van chipsfabrikant Intel, stelde in de jaren 60 dat het aantal transistors dat op een chips geplaatst kan worden iedere achttien maanden verdubbelt. Dit houdt in dat ook de capaciteit van de processor iedere anderhalf jaar verdubbelt. Tot nog toe heeft Moore gelijk gekregen. Dit principe staat bekend als de Wet van Moore.
Niet alleen in het bedrijfsleven is de pc populair, ook in de meeste huishoudens treffen we er een of meer aan.
Notebook (laptop)
Artikel van Computable:
"De negen nadelen van een notebook"
Artikel van ZDNet:
"Een op de vijf laptops is een netbook"
Artikelen van Webwereld:
"Laptop viert verjaardagsfeestje"
"Laptops nu wereldwijd beter verkocht dan desktops"
Een bijzondere variant van de pc is de draagbare computer: de notebook (ook bekend onder de naam laptop). Een notebook weegt zon 2 tot 4 kilo. Met behulp van oplaadbare batterijen (accus) wordt het apparaat van stroom voorzien.
Op veel kantoren kan de notebook op het computernetwerk worden aangesloten, zodat er gegevens uitgewisseld kunnen worden.
PDA
Een nog kleinere computer is dePDA, die de grootte heeft van een forse mobiele telefoon en vaak ook gebruikt kan worden als mobiele telefoon. Je komt ook wel de term handheld tegen. Enkele populaire toepassingen van zon apparaatje zijn:
agenda- en relatiebeheer
beperkt tekstverwerken
als rekenmachine
Als er een draadloze verbinding met het internet mogelijk is, kan met een PDA ook e-mail worden gelezen en worden gesurft. PDAs hebben soms een piepklein toetsenbordje en in andere gevallen werken ze met een aanraakscherm.
Omdat het apparaat zo klein is, zijn het geheugen en de capaciteit van de harde schijf natuurlijk beperkter dan bij een pc. Er wordt ook een ander besturingssysteem gebruikt, voorbeelden zijn Symbian en Windows CE.
Bij vrijwel alle PDAs is het mogelijk om te synchroniseren met de gegevens op pcs. Dit houdt in dat je veranderingen in bijvoorbeeld je agenda kunt doorvoeren op de agenda van de gewone pc. Dit kan via een zogenoemd docking station plaatsvinden, maar ook draadloos.
Stel je voor dat je op een computer een autorace-spel speelt. De computer moet dan veel rekenwerk verrichten. De processor moet uitrekenen waar de puntjes op het scherm moeten worden gezet om de auto af te beelden. Als je naar links of naar rechts stuurt, moet hij weer opnieuw beginnen. Ondertussen moet hij ook berekenen hoe de andere autos rijden en ook die moeten op het scherm weergegeven worden. Ook het publiek, de achtergronden en geluidseffecten moeten berekend worden. Al met al heeft de processor het aardig druk.
Geheugen is daarbij om twee redenen noodzakelijk:
De processor kan niet zelf verzinnen wat hij moet doen. Het programma in dit geval het spelprogramma bevat een lijst met duizenden of zelfs miljoenen opdrachten die de processor moet uitvoeren. Er staat in wat er moet gebeuren als je naar links stuurt, als je niets doet, als je botst, enzovoort. De processor moet deze instructies kunnen lezen.
De processor moet kunnen zien wat de uitkomsten van eerdere berekeningen waren. Als door een botsing de auto beschadigd raakt, moet de processor weten dat deze nu minder goed stuurt. Op het moment dat je naar links stuurt, moet de processor weten waar op dat moment de auto is.
Kortom: bij verwerking van gegevens zijn de processor en het (interne) geheugen erg belangrijk.
Nodig voor verwerking
Uit dit voorbeeld blijkt dat voor het verwerken van invoer minstens het volgende nodig is:
Een programma, met opdrachten die de computer moet uitvoeren.
Een processor, om de opdrachten uit te voeren.
Geheugen, om het programma en de gegevens tijdens de verwerking tijdelijk in op te slaan.
In dit gedeelte van de theorie behandelen we de twee rode vlakken: het interne geheugen en de centrale verwerkingseenheid.
Hoe weet de computer wat er bedoeld wordt als je bijvoorbeeld een A op het toetsenbord indrukt? Iedere toets die ingedrukt wordt, genereert een combinatie van acht stroomstootjes. Zo'n stroompje kan van een hoge spanning zijn of van een lage spanning:
De hoge spanning geven we voor het gemak aan met een 1.
De lage spanning geven we aan met een 0.
Iedere 0 of 1 wordt eenbit genoemd. Een combinatie van 8 bits noemen we een byte. Ieder teken dat de computer verstuurt of opslaat omvat één byte.
Sinds de eerste computers worden acht bits bij elkaar gegroepeerd. Per acht is in het Engels by eight. Als je dat snel uitspreekt, begrijp je waarom we van byte spreken
Code
Voor het versturen van gegevens en opdrachten is er een code nodig. Het volgende voorbeeld illustreert dat.
Stel dat we beschikken over acht lampjes waarmee we getallen willen laten zien. De gemakkelijkste manier is: 0 (alle lampjes uit) tot en met 8 (alle lampjes aan).
Dit zouden van boven naar beneden de getallen 0, 3 en 8 zijn.
Op deze manier kun je slechts de getallen 0 tot en met 8 weergeven. Als je grotere getallen wilt afbeelden, heb je meer lampjes nodig. Het is daarom veel slimmer om combinaties te maken. In feite spreek je hiermee een code af.
Bijvoorbeeld:
De getallen 1 t/m 8 en het getal 100 in een code.
Het wel of niet branden van een lampje, met andere woorden wel of geen stroom, kun je ook aangeven met 1 of 0. Het getal 6 kun je volgens de afgesproken code dan ook noteren als: 00000110.
Onderdelen van een computer en computers onderling communiceren met een soortgelijke code.
Als er stroom door een draad loopt, beschouwt de computer dit als een 1.
Loopt er geen stroom door, dan beschouwt de computer dit als een 0.
Met een groep van acht bits kun je 256 verschillende combinaties van nullen en enen maken. Deze 256 combinaties worden gebruikt voor:
de getallen 0 tot en met 9;
de letters a tot en met z;
de letters A tot en met Z.
Dan houd je er nog 256102626 = 194 over voor allerlei andere tekens zoals + , ).
De afgesproken codering staat bekend als deASCII-code. Het is de standaardcode voor het uitwisselen van gegevens. Het maakt niet uit of die uitwisseling binnen één computersysteem of tussen computersystemen gebeurt.
ASCII-tabel
Welke code bij welk teken hoort, kun je aflezen in een ASCII-tabel. In zo'n tabel is een teken gekoppeld aan een bepaalde decimale waarde. Om de binaire code van een teken te vinden moet je het decimale ASCII-getal omrekenen naar het overeenkomstige binaire getal.
Hieronder zijn enkele tekens uit de ASCII-set afgebeeld. Je ziet het desbetreffende teken, gevolgd door de binaire waarde en de decimale waarde.
A: 0100 0001 (=65)a: 0110 0001 (=97)
B: 0100 0010 (=66)b: 0110 0010 (=98)
C: 0100 0011 (=67)c: 0110 0011 (=99)
Ä: 1100 0100 (=196)ë: 1110 1011 (=235)
ASCII is van oorsprong een 7-bits code met 128 verschillende mogelijkheden (27). De meeste computers werken echter met bytes, dus 8-bits codes. In diverse landen bestond behoefte aan extra tekens, bijvoorbeeld aan letters met accenten en valutatekens. (In het overzichtje hierboven bijvoorbeeld Ä en ë). Door ook het 8e bit te gebruiken kon men het aantal mogelijkheden verdubbelen tot 256.
Zo ontstonden de zogeheten extended ASCII-tekensets. Helaas zijn er diverse uitbreidingen ontwikkeld en is 'extended ASCII' niet één bepaalde standaard.
ASCII is wel de meest gangbare, maar niet de enige codering. Doordat veel karakters door de beperking van 256 tekens niet weergegeven kunnen worden denk alleen al aan alle Chinese karakters heeft men een veel uitgebreidere codeset ontwikkeld. Dit werdUnicode.
Unicode biedt ruimte aan honderdduizenden verschillende karaktertekens, waarvan er zon 40.000 zijn vastgesteld. Met dit aantal kunnen alle geschreven talen bestreken worden, evenals bijvoorbeeld wiskundige symbolen en valutatekens. Met Unicode kunnen ook verschillende schriftsoorten in één document worden opgenomen, iets wat ASCII niet toelaat.
Bij ASCII geldt dat één byte één karakter vertegenwoordigt, maar bij Unicode is hiervan geen sprake. Hoeveel bytes een code inneemt, is niet vastgelegd. Wel bestaan er standaarden om de karaktersets in series bytes op te kunnen slaan (zoals UTF-8 en UTF-16).
Overigens zijn nog lang niet alle computers en software in staat Unicode te begrijpen.
In het interne geheugen van de computer wordt de waarde van de bits opgeslagen en als wij daarvoor opdracht geven, wordt deze ook in het externe geheugen (bijvoorbeeld een harde schijf) vastgelegd. In het interne en externe geheugen kunnen miljoenen bytes worden opgeslagen.
SI-stelsel: verouderd!
Meer over tera, giga, mega e.d.:
www.nmi.nl
Net zoals we grote afstanden niet in centimeters of meters uitdrukken, drukken we de capaciteit van geheugens niet in bytes uit, maar in kilobytes of nog gebruikelijker in megabytes of gigabytes. In de tabel zie je om hoeveel bytes het daarbij gaat. Deze tabel is gebaseerd op het zogeheten SI-stelsel.
Computers werken met nullen en enen en daardoor heb je te maken met het binaire of tweetallige stelsel. Getallen worden uitgedrukt in machten van 2. Zo is 1024 bytes gelijk aan 210 bytes (2x2x2x2x2x2x2x2x2x2). Omdat 1024 en 1000 zo dicht bij elkaar liggen, zeggen we meestal dat 1024 bytes gelijk is aan 1 kilobyte (1 KB). Hetzelfde geldt voor de andere eenheden (zie de tabel).
Dit spraakgebruik blijkt echter voor steeds meer verwarring te zorgen omdat niet duidelijk is of de precieze grootte bedoeld wordt, of de afgeronde SI-getallen. Het RAM-geheugen in een computer wordt bijvoorbeeld in megabytes van 1024×1024 byte aangegeven, maar de capaciteit van harddisks wordt in gigabytes van 1000×1000×1000 byte opgegeven.
Om aan deze onduidelijkheid een einde te maken heeft men aan het eind van de vorige eeuw een nieuwe standaard in het leven geroepen. Deze is ontwikkeld door deIEC.
Men heeft besloten dat de bestaande voorvoegsels kilo, mega, giga en tera gebruikt worden voor machten van 10. Een megabyte is daarmee 1.000.000 bytes (106). Een hoeveelheid van 1024x1024 (220) bytes wordt nu mebibyte genoemd. De letters 'bi' duiden op 'binair'.
Bekijk hier een video over de inhoud van de systeemkast:
howstuffworks.com
Gegevens zijn voor een computer niets anders dan afzonderlijke reeksen van enen en nullen. Wat komt er allemaal kijken bij de verwerking van die enen en die nullen? We nemen een kijkje in het inwendige van een computer om te ontdekken welke rol de diverse onderdelen spelen bij de verwerking.
Een geopende systeemkast van een towermodel.
Intern geheugen
In het interne geheugen van een computer worden gegevens en instructies voor de verwerking bewaard en deze worden doorgegeven aan de processor. De processor vormt het hart van een computer, maar de processor kan alleen wat doen als hij instructies krijgt. Deze instructies krijgt hij in de vorm van programmas. Voordat de processor deze instructies kan verwerken, moeten de programmas in het geheugen worden geladen.
Het interne geheugen bestaat uit twee soorten geheugenchips:
ROM
RAM
ROM
Meer over het BIOS:
www.howstuffworks.com
Het zogeheten Read Only Memory is een gedeelte van het interne geheugen waarin gegevens staan die alleen gelezen (read only) kunnen worden. Het ROM speelt een grote rol tijdens het opstarten van de computer. Er wordt bijvoorbeeld aan de computer opgedragen om een aantal hardwaretests uit te voeren. Ook het instellen van de belangrijkste onderdelen, zoals de harde schijf en de grafische kaart, gebeurt met behulp van instructies uit het ROM. Verder wordt opdracht gegeven tot het laden van de eerste onderdelen van het besturingssysteem.
De gegevens in het ROM-geheugen worden niet gewist, ook niet als de pc wordt uitgezet.
EEPROM
De chips die je in het ROM aantreft, zijn meestalEEPROM's. Net als de USB-stick is een EEPROM een vorm van flashgeheugen: door middel van elektrische spanning kunnen gegevens gewist worden en nieuwe gegevens toegevoegd. Als je de harde schijf vervangt of het interne geheugen uitbreidt, moeten de EEPROMs aangepast worden. Op die manier kan de computer op de hoogte gebracht worden van bijvoorbeeld een geheugenuitbreiding of een nieuwe harde schijf. Bij het opstarten is dit natuurlijk van belang.
Het lijkt tegenstrijdig: read-only geheugen dat wel gewist en aangepast kan worden. Het read-only aspect heeft echter vooral betrekking op het feit dat de computer bij het opstarten alleen leest uit het ROM. Als de nieuwe hardware door middel van flashen eenmaal bekendgemaakt is aan de EEPROMs, blijven deze tijdens het opstarten onveranderd; dit in tegenstelling tot het RAM.
Een EEPROM op het moederbord.
BIOS (Architectuur)
Belangrijke zaken die via het ROM worden bewaard of uitgevoerd, zijn:
BIOS. Dit omvat de gegevens die de computer nodig heeft om met de belangrijkste randapparaten (harde schijf, toetsenbord en dergelijke) te kunnen werken.
POST. Wanneer de computer opstart, worden de processor, het geheugen en een aantal andere zaken getest. Deze tests worden samen POST genoemd. Het POST-programma wordt in gang gezet door het BIOS.
Setup. Door tijdens het opstarten van de computer een bepaalde toets of toetsencombinatie in te drukken kom je in de Setup: een programma dat allerlei menus op het scherm weergeeft. Met deze menus kun je de gegevens in het BIOS op een eenvoudige manier veranderen. De nieuwe instellingen kunnen vervolgens naar de EEPROM worden weggeschreven.
De naam van de chip waarin de BIOS-gegevens opgeslagen worden, is CMOS. Dat staat voor Complementary Metal Oxid Semiconductor. Die naam slaat op het materiaal waarvan de chip gemaakt is en is eigenlijk nogal onzinnig: de meeste andere chips zijn van hetzelfde materiaal gemaakt.
BIOS aanpassen
Er zijn dus twee mogelijkheden om de gegevens in het BIOS aan te passen:
Via het Setup-programma. Hier kun je instellingen aanpassen. De keuze uit de instellingen ligt vast in het BIOS; je kunt dus alleen kiezen wat aangegeven is.
Door middel van flashen. Het kan voorkomen dat de keuze die jij wilt maken niet in de Setup wordt aangeboden. In dat geval moet je de software van het BIOS geheel vervangen.
RAM
Geheugenmodules en geheugenbanken (Architectuur)
Random Access Memory is het gedeelte van het interne geheugen waarin tijdelijk gegevens en instructies worden opgeslagen. Het wordt ook wel het werkgeheugen van de computer genoemd. Er zijn twee belangrijke verschillen met ROM:
De gegevens die in het RAM staan, veranderen doorlopend.
De gegevens in het RAM gaan verloren als de pc wordt uitgezet. Dus ook als de stroom uitvalt! Ben je op dat moment ergens mee bezig zonder dat er tussentijds iets opgeslagen is, dan ben je het gemaakte werk kwijt. We noemen het RAM dan ook een vorm van vluchtig geheugen; het ROM is niet-vluchtig, oftewel persistent.
In het dagelijkse spraakgebruik is het interne geheugen synoniem met het RAM.
Capaciteit
De capaciteit van het interne geheugen wordt uitgedrukt in gigabytes. De grootte van het interne geheugen is belangrijk: hoe meer gegevens daarin opgeslagen kunnen worden, hoe sneller de computer kan werken.
Als het interne geheugen te klein is, zal de processor de benodigde gegevens van en naar de harde schijf moeten halen en brengen. Dat kost meer tijd omdat de toegangstijd van de harde schijf veel groter is dan van het geheugen.
De pcs van tegenwoordig worden hoofdzakelijk als towermodel geleverd. Aan een van de zijkanten van een towermodel bevindt zich een grote printplaat. Hierop is een doolhof van chips, koperen leidingen en aansluitpunten voor onderdelen aangebracht. Deze plaat wordtmoederbord genoemd.
De belangrijkste functie van het moederbord is dat het alle andere onderdelen met elkaar verbindt. De processor, het geheugen, de harde schijf, het diskettestation en de cd/dvd-speler worden niet direct met elkaar verbonden, maar worden op de bedrading van het moederbord aangesloten.
Een foto (van boven) en een schematische weergave van een moederbord.
Alle onderdelen waarvan de computer gebruik maakt, moeten (direct of indirect) met het moederbord verbonden zijn. Anders kan de processor ze niet besturen. De uitgangen aan de achterkant van de computer (waarop de monitor, het toetsenbord en andere apparaten aangesloten kunnen worden) zijn dus de stopcontacten van het moederbord.
De Central Processing Unit is het hart van de pc: deze bestuurt het hele computersysteem. Als Nederlandse term hoor je wel eens 'centrale verwerkingseenheid' (CVE).
Tegenwoordig is de CPU een zogeheten multicore processor. Het Engelse woord 'core' betekent 'kern'; de processor bestaat dus als het ware uit diverse kernen, die apart instructies kunnen verwerken. Hierdoor kan multitasking een stuk sneller verlopen. Momenteel zijn processors met vier kernen gangbaar; deze worden quad core genoemd.
Twee voorbeelden van quad core processors:
Intel Core 2 Quad
AMD Opteron 64
De AMD Opteron 64.
Bij een mini, mainframe of supercomputer zijn er doorgaans verschillende processors die voor de verwerking zorgen. We spreken dan van multiprocessorsystemen. Dit is niet hetzelfde als een multicore processor!
Een processor uitrusten met meerdere kernen heeft als voordeel dat er tegen geringe kosten behoorlijk wat snelheid gewonnen kan worden. Je kunt een oude processor gemakkelijk vervangen door een nieuwe met meer kernen. Daardoor wordt een computer voor relatief weinig geld een stuk sneller. Wel is het zaak de warmteontwikkeling in de systeemkast in de gaten te houden, want een multicoreprocessor verbruikt veel meer energie.
Ook moet erop gelet worden dat het besturingssysteem quad core ondersteunt.
Taken van de CPU
De CPU regelt alle gegevensverwerking in de pc. Daarmee zorgt de processor voor de besturing van de computer én voor het uitvoeren van berekeningen.
In feite kun je de CPU splitsen in:
een besturingsorgaan
een rekenorgaan
De processor als grote regelaar.
De taken van de processor zijn bijvoorbeeld:
het ophalen van instructies en gegevens uit het interne geheugen;
het laten uitvoeren van berekeningen door het rekenorgaan;
het opslaan van resultaten in het computergeheugen;
het regelen van de uitvoer van gegevens, bijvoorbeeld naar beeldscherm of printer.
Snelheid van een processor
Artikel van Webwereld:
"IBM stopt waterkoeling in de processor"
Of een processor snel genoemd kan worden, heeft te maken met de snelheid waarmee hij gegevens verwerkt: deverwerkingssnelheid. Deze heeft betrekking op de hoeveelheid instructies die een computer in één seconde kan verwerken. Daarom wordt deze snelheid uitgedrukt inmips.
Behalve over de verwerkingssnelheid kun je bij een computer ook spreken van de kloksnelheid. Deze wordt bepaald door de klokchip, die een vast aantal malen per seconde een puls aan de processor geeft om (als een dirigent) alle verwerkingsstappen synchroon te laten lopen. Het aantal pulsen per seconde, dus de kloksnelheid, drukken we uit in Hertz (Hz).
De verwerkingssnelheid is dus iets anders dan de kloksnelheid. Voor het uitvoeren van een instructie zijn namelijk vaak meerdere pulsen van de klok nodig. Om hoeveel pulsen dit gaat, is afhankelijk van het type processor en het type instructie.
De kloksnelheid van moderne pcs bedraagt meer dan 3 GigaHertz, dat wil zeggen 3.000.000.000 pulsen per seconde.
Ter vergelijking: de eerste consumenten-pc, die een 8088-processor bezat, had een kloksnelheid van 5-8 MHz!
Cachegeheugen
De producenten van computers zijn voortdurend op zoek naar manieren om een processor sneller te maken. De toepassing van dual core, die hierboven genoemd is, is een methode om dit te bereiken. Ook de aanwezigheid van cachegeheugen draagt bij aan een snellere gegevensverwerking.
Het ophalen van instructies en gegevens uit het interne geheugen kost tijd. Die tijd kan verkort worden door de instructies en gegevens op te slaan in extra snel werkgeheugen, dat de processor rechtstreeks kan gebruiken en dat dicht bij die processor (of zelfs erin) zit. Dit noemen we het cachegeheugen van de processor. Door gebruik van het cachegeheugen worden de prestaties van de computer sterk vergroot. Het is wel een stuk duurder dan het gewone werkgeheugen.
Pipelining
Het uitvoeren van een instructie kan aanmerkelijk versneld worden als de instructie wordt gesplitst in deelinstructies die elk in één klokpuls uitgevoerd kunnen worden. Deze deelinstructies worden sequentieel door een onderdeel van de processor uitgevoerd. Door nu de processor te voorzien van de mogelijkheid om deze deelinstructies parallel uit te voeren, neemt de efficiëntie per klokpuls toe.
Deze techniek wordt pipelining genoemd. Het onderdeel van de processor waar de instructies worden uitgevoerd heet pipeline stage.
Branch prediction
Als een instructie in de ene pipeline stage moet wachten op de uitkomst van een andere pipeline stage, is pipelining niet zo effectief. Dit wordt opgelost door middel van branch prediction. Dit houdt in dat de processor vast bedenkt welke instructie er volgt en deze ook vast uitvoert.
Als de voorspelling juist is, werkt de processor efficiënter.
Is de voorspelling niet correct, dan moet de processor de verkeerde instructie en de bijbehorende gegevens verwijderen en dat kost natuurlijk tijd.
Toch hoeft dit laatste niet zo vaak te gebeuren, want in zon 90% van de gevallen blijkt de voorspelling juist te zijn.
Om gegevens van het interne geheugen naar de processor of de randapparatuur te brengen, moet er een verbinding tussen die onderdelen zijn. Zon verbinding noemen we een bus. Zonder bus kunnen de onderdelen van de computer niet met elkaar communiceren. Wanneer je bijvoorbeeld via je toetsenbord een e-mailtje invoert, gaan de aanslagen (in de vorm van nullen en enen) via de bus naar de processor.
Een bus is dus een fysieke verbinding
tussen de processor en het interne geheugen óf
tussen de processor en de randapparatuur.
Systeembus en I/O-bussen
I/O, IRQ en DMA
De belangrijkste bus is de systeembus, ook wel local bus of front side bus (FSB) genoemd. Deze verbindt de processor met het interne geheugen. De andere bussen, die de communicatie tussen de randapparaten verzorgen, worden de I/O-bussen genoemd
Binnen de FSB (en ook binnen de I/O-bussen) onderscheiden we drie verschillende bussen:
de databus
de adresbus
de controlbus
Twee vormen
Bussen komen in twee vormen voor:
Als voorgedrukte bedrading op een printplaat. Deze vormt bijvoorbeeld de verbinding tussen het interne geheugen en de processor.
Als een losse kabel, meestal een lintkabel. Hierdoor worden bijvoorbeeld intern en extern geheugen (harde schijf, cd/dvd) met elkaar verbonden.
Snelheid
Voor de snelheid van de verbinding zijn twee zaken van belang:
De lengte van de verbinding (in centimeters). Hoe korter de bus, hoe sneller de verbinding.
De busbreedte. Hieronder verstaan we het aantal bits dat tegelijk door de bus getransporteerd kan worden: 8, 16, 32 of meer.
Databus
Over de databus worden de te verwerken gegevens verstuurd tussen de processor, het geheugen en andere apparaten. De snelheid waarmee de gegevens op de databus worden gezet, hangt af van de klokchip. Daarnaast geldt hoe breder de databus, hoe meer bits tegelijkertijd verstuurd kunnen worden en hoe sneller de computer werkt. De databus wordt ook wel processorbus genoemd.
De bus die momenteel het meest wordt toegepast isPCI-Express. Dit is een snelle verbinding die busmastering en plug-and-play ondersteunt:
Busmastering is de techniek waarbij gegevens van de ene kaart naar de andere worden verzonden zonder hulp van de processor.
Plug-and-play wil zeggen dat een aangesloten apparaat herkend wordt door het besturingssysteem zonder dat de gebruiker iets aan de instellingen hoeft te veranderen.
Oudere bustypen die je ook nog steeds tegenkomt zijn:
PCI Dit is de tragere voorganger van PCI-Express.
ISA en EISA DeISA-bus is een verouderde bus voor uitbreidingskaarten. Er zijn verschillende uitvoeringen verschenen. EISA, waarbij de E staat voor Extended, was de opvolger van ISA, maar ook deze standaard is verouderd.
Let op: aan het einde van een bus zit een slot, waarin de kaart gestoken wordt. Een PCI-kaart stop je dus in het PCI-slot van de PCI-bus.
PCI-E-slots.
Controlbus
Via de controlbus die ook wel besturingsbus wordt genoemd worden de aanwijzingen verstuurd hoe de gegevens van de databus verwerkt moeten worden, dus wat de processor ermee moet doen. De klokchip bepaalt de snelheid waarmee deze aanwijzingen worden gegeven.
Adresbus
Wanneer via de databus gegevens verzonden worden, moet het moederbord weten waar deze gegevens naartoe moeten. Via de adresbus wordt het adres van de geheugenplaats meegestuurd. De breedte van deze bus is bepalend voor het maximale aantal plaatsen in het RAM dat geadresseerd kan worden en daarmee voor de maximale hoeveelheid geheugen die gebruikt kan worden.
Uitbreidingen op bussen
SCSI en AGP zijn te beschouwen als uitbreidingen op de busstructuur. Beide zijn op dit moment wel verouderd.
SCSI
EenSCSI-kaart wordt op de bestaande busstructuur in de computer aangesloten. Op deze kaart kunnen vervolgens weer andere apparaten (vooral opslagmedia) worden aangesloten. De SCSI-kaart bevat een kleine processor, die de besturing van die aangesloten apparaten regelt en zorgt dat ze onderling kunnen communiceren.
AGP
DeAGP-bus is een uitbreiding die was bedoeld om afbeeldingen sneller op het beeldscherm te laten verschijnen. Deze bus biedt plaats aan een videokaart die AGP ondersteunt. AGP is grotendeels verdrongen door PCI-Express.
Hier vind je informatie over de werking van de CPU:
electronica.infonu.nl
Logische schakelingen
Vrijwel alle bestaande computers werken volgens het Von Neumann-principe. Dit houdt in dat er een scheiding is tussen de verwerkingseenheid en het geheugen voor de opslag van instructies en gegevens. John Von Neumann was een Hongaarse wis- en natuurkundige die leefde in de eerste helft van de 20e eeuw.
Een computer doet niets zonder een programma. Een computerprogramma bestaat uit een groot aantal instructies die gedetailleerd beschrijven wat een processor moet doen. Een instructie kunnen we beschouwen als een nauwkeurig beschreven stap in een totaal van uit te voeren handelingen.
Een voorbeeld: wanneer we willen dat de computer twee getallen optelt, moeten deze getallen uit het interne geheugen worden opgehaald en via de bussen naar de processor worden gebracht. Het resultaat van de optelling moet uit de processor naar het interne geheugen worden overgebracht.
Twee soorten instructies
De processor verwerkt daarvoor twee soorten instructies:
Rekeninstructies
Hierbij gaat het niet alleen om rekenkundige bewerkingen zoals wij die kennen (optellen, aftrekken, vermenigvuldigen, enzovoort), maar ook om logische bewerkingen zoals vergelijken (is groter dan, is gelijk aan). De CPU is voortdurend aan het rekenen en vergelijken als hij bij het sorteren van een gegevensbestand bijvoorbeeld moet bepalen of mevrouw K.P. Oosterhof vóór de heer J.G. Miedema moet komen.
In- en uitvoerinstructies
In- en uitvoerinstructies vallen onder de besturingstaak van de CPU. Hierbij moet je denken aan het doorvoeren van gegevens van en naar het geheugen, bijvoorbeeld het opslaan van een document op de harde schijf.
Gezien deze twee soorten instructies is het goed te verklaren dat de CPU uit twee hoofdonderdelen bestaat:
het rekenorgaan, ook wel aan geduid met de termALU
het besturingsorgaan
Verder bevat de CPU speciale schakelingen, waaronder snelle registers voor tijdelijke opslag van instructies en gegevens.
Registers
De belangrijkste registers in de CPU zijn:
het instructieregister, waarin de instructie staat die in behandeling is;
de program counter met het geheugenadres van de eerstvolgende instructie;
de rekenregisters, met getallen die voor berekeningen nodig zijn.
Deelinstructies
Als de CPU een instructie uitvoert, kunnen we de volgende deelinstructies onderscheiden:
De uit te voeren instructie wordt opgezocht in het interne geheugen, in het instructieregister.
De eerstvolgende instructie wordt aangewezen en de program counter wordt verhoogd.
De instructie uit het instructieregister wordt geanalyseerd.
De instructie uit het instructieregister wordt uitgevoerd.
Het resultaat van de instructie wordt opgeslagen.
Schematische voorstelling van de uitvoering van een instructie door de CPU.
Instructiecyclus
Deze vijf stappen noemen we de instructiecyclus. Deze cyclus wordt steeds herhaald totdat alle instructies van het programma zijn afgewerkt. De deelinstructies worden door middel van pipelining via het volgende schema afgewerkt:
Stage 1 1.1 1.2 1.3 1.4 1.5 5.1 5.2 5.3 5.4 5.5
Stage 2 2.1 2.2 2.3 2.4 2.5 6.1 6.2 6.3 6.4
Stage 3 3.1 3.2 3.3 3.4 3.5 7.1 7.2 7.3
Stage 4 4.1 4.2 4.3 4.4 4.5 8.1 8.2
Op deze wijze is de processor, als er vier pipeline stages zijn, op een gegeven moment met vier instructies tegelijkertijd bezig. Een probleem kan ontstaan als bijvoorbeeld instructie 7 afhankelijk is van het resultaat van instructie 4. Door middel van branch prediction wordt geprobeerd zoveel mogelijk te voorkomen dat onnodig aan een instructie wordt begonnen.
Uitbreidingskaarten of interfacekaarten zijn kaarten met daarop chips en leidingen, die zich grotendeels in de systeemkast bevinden (zie onderstaande figuur). Bij uitbreidingskaarten moet je bijvoorbeeld denken aan de netwerkkaart, waar de netwerkkabel in past. Op het moederbord zitten speciale gleuven waar deze kaarten in passen. Dit zijn deuitbreidingsslots.
Een geopende systeemkast van een towermodel.
Het begrip interface ken je waarschijnlijk uit de term 'grafische interface'. Het woord kent echter een ruimere betekenis; het is de gemeenschappelijke grens tussen twee systemen, bijvoorbeeld tussen een computer en de randapparatuur of tussen een computer en de gebruiker.
In dat laatste geval kan er sprake zijn van een grafische gebruikersinterface, maar dat hoeft niet.
Veel functionaliteit die vroeger in een uitbreidingskaart zat, is bij moderne computers ingebouwd op het moederbord (oftewel on board). Toch worden er nog veel losse uitbreidingskaarten toegevoegd. Ze hebben als voordeel dat ze eenvoudig vervangen kunnen worden. Bovendien zijn ze kwalitatief vaak beter dan de ingebouwde standaardvoorziening.
Voor veel computergebruikers is de standaard ingebouwde grafische voorziening vaak niet voldoende om het beeld snel genoeg te laten opbouwen. Zij rusten hun computer dan uit met een extra grafische kaart. Zon grafische kaart, ook wel videokaart geheten, zorgt voor de gegevensstroom naar het beeldscherm. De aansluiting op deze kaart is zichtbaar aan de achterkant van de computer: hierop sluit je de monitor aan.
De kwaliteit van het beeld en de snelheid waarmee het beeld wordt opgebouwd, is sterk afhankelijk van de grafische kaart. Een nieuwe grafische kaart, met meer geheugen, kan de prestaties van de pc vaak aanzienlijk verhogen. Vrijwel elke computer is uitgerust met eenSVGA-kaart, met meer of minder mogelijkheden om gecompliceerde beeldopbouw van de CPU over te nemen.
Geluidskaart
Ook de ingebouwde mogelijkheden om geluid voort te brengen worden niet door iedereen als voldoende beschouwd. Vandaar dat er nog regelmatig geluidskaarten in een uitbreidingsslot worden geplaatst, zeker door mensen die computerspellen spelen of vaak audio-cds afspelen. Op een geluidskaart worden de luidsprekers aangesloten. Hoe de geluidskwaliteit uiteindelijk is, is natuurlijk mede afhankelijk van de speakers.
Twee uitbreidingskaarten (onderop een grafische kaart, bovenop een geluidskaart).
Netwerkkaart
Hoewel ook deze voorziening tegenwoordig vaak on board wordt aangetroffen, bestaan er nog steeds netwerkkaarten. Zon kaart zorgt voor de verbinding tussen de pc en het netwerk indien de pc is opgenomen in een netwerk of aangesloten op het internet.
PCMCIA-kaart
Hoewel dit type zijn langste tijd heeft gehad, noemen we hem nog wel. De PCMCIA-kaart, ook wel PC Card geheten, is speciaal voor laptops ontwikkeld en kan aan de buitenkant in de computer worden gestoken. Er zijn onder meer kaarten verkrijgbaar die als modem werken, of als extra geheugen.
De opkomst van het draadloze netwerk, de inbouw van netwerkkaarten en het gebruik van de USB-stick hebben deze kaart overbodig gemaakt.
Naast de processor zijn er enkele ondersteunende chips nodig om de computer vlot te laten werken. Deze chips horen bij elkaar en worden daarom chipset genoemd. De chipset speelt een belangrijke rol in het regelen van het verkeer over de bussen.
De chipset bestaat doorgaans uit twee aparte chips: de North bridge en de South bridge.
De North bridge regelt het verkeer tussen de snelle onderdelen van een computer: tussen de CPU en het interne geheugen en de grafische kaart.
De South bridge zorgt voor communicatie met de relatief tragere componenten: het toetsenbord, de harde schijf, het diskettestation, de USB-poort en de PCI-E-slots.
Het onderstaande schema verduidelijkt een en ander. Hierin is tevens te zien dat de Front Side Bus de verbinding vormt tussen de CPU en de chipset.
De chipset bestaat uit de North bridge en de South bridge.
Op elk moederbord zijn jumpers aanwezig. Vroeger moest je deze schakelaartjes met de hand omzetten, bijvoorbeeld als je een snellere processor had geplaatst. Tegenwoordig herkennen moederborden doorgaans zelf een nieuwe processor. Bovendien kunnen veel instellingen in het BIOS via een setup-programma in de CMOS-EEPROM worden aangepast.
Het handmatig omzetten van jumpers is dus steeds minder noodzakelijk. Ze worden nog wel gebruikt voor het instellen van de harde schijf.
Een jumper; door het blokje over de twee pinnetjes te schuiven zorg je ervoor dat deze met elkaar worden verbonden.
Hier vind je informatie over 'pinouts' van een groot aantal connectors:
pinouts.ws
Op de systeemkast vind je een aantal aansluitingen waarop randapparaten aangesloten kunnen worden. Deze aansluitingen worden connectors genoemd. Zo zijn er connectors voor de printer, voor communicatieapparatuur, voor muis en toetsenbord, voor een microfoon, enzovoort.
De USB-aansluiting (Universal Serial Bus)
Een video over USB:
www.howstuffworks.com
USB
USB-standaard
Hoewel de aanduiding 'Universal Serial Bus' de indruk wekt dat we met een bus te maken hebben, behoort de USB-aansluiting toch echt bij het onderwerp 'Connectors' besproken te worden. Het gaat om een platte, rechthoekige aansluiting waaraan diverse randapparaten tegelijk gekoppeld kunnen worden, zoals een printer, scanner, camera, toetsenbord of muis.
Bekend is natuurlijk ook de USB-stick of memory stick: een extra geheugenmedium dat rechtstreeks op de USB-connector kan worden aangesloten.
Een groot voordeel van USB is dat het apparaat gekoppeld kan worden zonder dat het systeem opnieuw gestart hoeft te worden, de poort is wat we noemen hot-pluggable. De USB-kabel kan het aangesloten apparaat van stroom voorzien.
Links een USB-poort; in het midden een USB-plug en rechts een USB-stick.
Lees hier meer:
www.usb.org
Artikel van Automatisering Gids:
"USB 3.0 begin 2010 in massaopslag"
USB 2.0
De snelste uitvoering van USB is versie 2.0, die inmiddels de verouderde versie 1.1 goeddeels heeft verdrongen. USB 2.0 ondersteunt in tegenstelling tot versie 1.1 hi-speed. Hi-speed apparaten zijn bijvoorbeeld een MP3-speler, een scanner of externe harde schijf. Deze apparaten hebben regelmatig veel data te versturen of te ontvangen, en krijgen dan een groot deel van de beschikbare capaciteit op de bus toegewezen.
Als er via deze poort één byte wordt verstuurd, gaan de bits één voor één (achter elkaar oftewel in serie) door de poort. We spreken daarom van een seriële poort.
On-the-Go
USB On-the-Go is een aanvulling op USB 2.0. Dankzij deze technologie kunnen mobiele apparaten via de USB-poort verbinding maken met pc's en randapparaten. Draagbare apparaten die voorzien zijn van OTG kunnen bovendien direct data overbrengen naar een ander randapparaat zonder verbinding te hoeven maken met een pc.
LPT-poort
Voor de komst van USB, halverwege de jaren negentig, diende de LPT-poort voor het aansluiten van een printer. Deze printerpoort staat ook wel bekend als parallelle poort omdat er meerdere signalen tegelijk (parallel aan elkaar) verzonden kunnen worden.
Door de parallelle poort kunnen acht bits tegelijk (naast elkaar oftewel parallel) verstuurd worden. Dit betekent dat er steeds één hele byte tegelijkertijd de printerpoort verlaat. Dat lijkt snel, maar de snelheid waarmee de bits tegenwoordig achter elkaar door een USB-aansluiting gaan ligt nog veel hoger.
Op de LPT-poort wordt een brede connector aangesloten, die 25 gaatjes bevat. Hierin passen dus 25 pinnetjes.
COM-poort
Deze seriële aansluiting bestaat (aan de computerkant) meestal uit negen en soms uit 25 pinnetjes. Zij werd gebruikt voor veel verschillende randapparaten, zoals muizen, scanners, modems en zelfs voor sommige printers, maar tegenwoordig beschikken deze apparaten vrijwel allemaal over een USB-connector.
De COM-aansluiting wordt ook wel genoemd naar zijn standaard: RS-232.
Misschien vraag je je af waarom een seriële aansluiting over maar liefst 25 pinnen beschikt. Een groot aantal hiervan wordt in beslag genomen door besturingssignalen.
Andere aansluitingen
Miniplug-connectors zijn meestal te vinden op de geluidskaart. Ze zijn bedoeld voor stekkers zoals die van een koptelefoon en luidspreker. Vaak staan er merktekens bij om aan te geven wat er in moet.
Andere connectors zijn bedoeld voor het toetsenbord en de muis (als deze niet op de USB-poort worden aangesloten), het netsnoer, een netwerkkabel en een telefoonkabel.
Een ander onmisbaar onderdeel van een computer is de voeding met de bijbehorende ventilator.
De voeding voorziet een pc van stroom. De voeding zit samen met de ventilator in een afgesloten kastje: de voedingseenheid. Dit kastje vind je achter in de pc, zodat het netsnoer aan de achterkant in de daarvoor bestemde connector kan worden gestoken. Bij laptops werkt het anders: hier wordt de ingebouwde batterij via een extern voedingsblok, een adapter, van stroom voorzien.
De voeding en de ventilator.
Overigens produceren de snelle processors van tegenwoordig zoveel warmte dat de standaardkoeling van de pc onvoldoende is. Er wordt daarom een extra koelvoorziening ingebouwd om te voorkomen dat de CPU oververhit raakt.