Informatica Bart Steger February 4, 2004
1
Computerarchitectuur
1.1
Busarchitectuur
= een verbinding tussen functionele eenheden. Elke bus(of draad) kan 1 bit verplaatsen. 1.1.1
Adres-, data- en controlebus
• Transport→via databus • Adresbus→geeft aan waar de gegevens vandan komen en waar ze naartoe moeten. • Besturings- of controlebus→bevat overige signalen zoals het signaaal dat aangeeft of gegevens geschreven of gelezen moeten worden
1
1.1.2
Blokschema van een computer
controlebus MEMORY
CPU
I/O
databus adresbus 1.2 1.2.1
Bouwstenen Geheugen
• Capaciteit=aantal bits per geheugenmodule • Berekening: bits op een geheugenplek X met het aantal geheugenplekjes per module. • Het aantal geheugenplekjes is bepaald door het aantal adreslijnen. Een module met n adreslijnen bevat 2n afzonderlijk aan te wijzen geheugenplaatsen. • Op zo’n plek kan er dan weer 1, vier of acht bits (of meer of minder) per adres staan. • Een CPU met x adreslijnen en y datalijnen kan normaal 2x geheugenlocaties van ieder y bits adresseren.
2
databus 8 D0 A0 256 x 8-bit
A7
R/W
D7
CS
VMA R/W
controlebus
8 Adresbus
1.3
RAM, ROM
• RAM = Random Access Memory: kan alleen maar uit gelezen worden, gegevens blijven behouden bij het uitschakelen van de pc. • ROM = Read Only Memory
1.3.1
Verschilldende types van ROM
• ROM: frabrikant heeft bij het maken de data in de chip vastgelegd. • PROM(programmable rom): hetzelfde als een ROM-module, maar kan 1maal beschreven worden. • EPROM(erasable programmable rom): zelfde als PROM, maar kan gewist worden door speciaal utraviolet licht.
3
• EEPROM: dit kan ook gewist worden maar door een elektrisch signaal.(=flashmemory)
1.3.2
Verschillende types van RAM
• SRAM (statische RAM): deze chip onthoudt de opgeslagen data zolang de spanning aanwezig is. • DRAM (dynamische RAM): deze chip verliest zijn data na een tijdje en moet geregeld gerefresht worden. (bv. na 2 sec) Op een chip met DRAM kan 4 maal meer geheugen dan een chip met SRAM.
1.4
CPU
• Registers: deze worden gebruikt bij allerlei bewerkingen zoals optellen, schuiven van bits, enz... • Program counter: deze bevat het adres van de uit te voeren instructie, de inhoud wordt tijdens het uitvoeren van een instructie ingesteld op het adres van de volgende instructie. • Stack pointer: bevat ook een adres van een instructie • Instructieregister: Instructies die uit het geheugen worden gehaald komen hierin terecht.
1.4.1
Stack Pointer
Bij het aanroepen van een subroutineaanroep, verdwijnt de huidige instructie, omdat de program counter al naar de volgende instructie wijst. Dus in de Stack Pointer wordt de vorige instructie opgeslagen, zodat als de subroutine is afgehandeld dat deze terug kan keren naar de vorige instructie en alles kan afwerken.
4
1.5 1.5.1
I/O Interrupts
Een interrupts is een signaal dat wordt aangeboden via de controlebus aan de CPU. De CPU gaat al zijn huidige en volgend werk stoppen en gaat eerst de interrupt uitvoeren. Ondertussen zet hij de de instructies waar hij mee bezig is, in de stack pointer en laadt in de program counter een vast adres op een voor de interrupt gereserveerde geheugenplek.
1.5.2
Exceptions
Soorten Interrupts: • Hardware interrupts: signalen afkomstig van externe apparaten. • Interne problemen bij het afhandelen van een instructie: (traps) bv.: delen door nul of een instructie niet kunnen thuisbrengen. • Software Interrupt: dit is hetzelfde als bij hardware interrupts, maar nu met machinetaal. 1.5.3
Interrupt levels
• Interrupt polling: Elk irq heeft een schakelaar. Als alle schakelaars open zijn, dan staat er 5V, sluiten 1 of meer schakelaar zich dan daalt de spanning naar 0V. Dan is het active-low signaal geactiveerd. De CPU zoekt dan alle statusregister af om te zien wie er een interrupt heeft gestuurd. • Interrupt vectoring: De CPU geeft een interrupt-acknowledge signaal terug om te zeggen dat hij de interrupt gezien heeft. Als reactie hierop gaat het device een unieke code via de databus naar de CPU sturen. Deze weet dan welk apparaat er bedoeld wordt. • Interrupt controller: Deze bus heeft meestal een aantal in- en uitgangen. Op elke uitgang gaat de CPU luisteren of er een signaal binnenkomt. Ineens weet de CPU welk device het is. Als er nu meerdere signalen binnenkomen, gaat hij het eerste (en belangrijkste) signaal eerst behandelen en daarna de andere (onderliggende en minder belangrijke) signalen afhandelen. Hij is in feite ’doof’ voor andere signalen. Dit heet interrupt mask. 5
1.5.4
Non-maskable interrupt
Dit zijn interrupts die worden gebruikt voor noodsituaties. Zoals bij een hardwareprobleem of bij een wegvallende voedingsspanning. Ook als je op reset duwt:)
1.6
Systeembussen
Systeembussen zijn redelijk stabiel en zijn voor een langere levensduur ontworpen. De CPU-bus daarintegen is sterk onderhevig aan veranderingen. Bij elke nieuwe processor worden er wel nieuwe signalen geintroduceerd. 1.6.1
SCSI-bus
Aan een SCSI-bus kunnen 7 apparaten hangen. Deze SCSI-bus heeft een eigen intelligente processor aan boord die bepaalde taken van de computer processor overneemt zoals data zoeken op de harde schijf en data verwerken, enz...
2
input en output
2.1 2.1.1
Type I/O-poorten Seriele datacommunicatie
• UART: Universal asynchronous receiver and transmitter. • USART Universal asynchronous and synchronous receiver and transmitter. • ACIA: asynchronous communciation interface adapter. • SIO: serial input output. 2.1.2
Parallelle I/O
worden/komen meer bits naar/van de buitenwereld gezonden. • PPI: Parallel periferal interface. • PIA: Parallel interface adapter. • PIO: Parallel input and output. 6
2.1.3
Timer
Dit is de real-time clock en bevat naast de informatie over de tijd ook informatie over de datum. Deze chips hebben een kleine batterij om de werking te garanderen als de pc wordt afgezet! Dit is dus niet hetzelfde als de CPU-klok! 2.1.4
dedicated I/O-chips
• chips die de disk I/O verzorgen. • LAN (local area network) controllers. • SCSI-controllers. • CRTC: cathode ray tube controller: levert signalen voor de grafische output van het beeldscherm. • GCC: graphic controller chips: deze leveren ondersteuning voor beeldschermaansturing. • DMA-controllers: deze voeren direct memory acces-taken uit ter ondersteuning van een andere I/O-chip, vooral bij harde schijven.
2.2 2.2.1
Analoge I/O Invoer van analoge signalen
Sampling De conversie van de AD-omzetter is bepalend voor de maximale somplingfrequentie. Deze legt de maximale frequentie van het ingangssignaal vast. Werkgebied We moeten ook de maximale hoogte van de spanning van het signaal kennen. Dit komt dan overeen met de grootste binaire waarde die de ADC kan produceren. Analoge signalen zijn meestal wisselspanningen die het ene moment positief en het andere moment negatief zijn. Om deze om te zetten gebruiken we meestal de 2-compliment methode. Uitvoer van analoge signalen De binaire data van het computersysteem wordt aan een DA-converter aangeboden.
7
2.3 2.3.1
Randapparatuur Pointing device
= de muis 2.3.2
Beeldscherm
Een beeld is dus opgebouwd uit lijnen, die dan weer opgebouwd zijn door puntjes of picels, dots. Als een computerscherm alle pixels afzonderlijk kan aansturen, spreken we van een grafische display. Bij een tekstscherm kan het systeem alleen vaste groepen van puntjes activeren. → veel minder tekens. Bij een kleurenscherm zijn er meerder bits per pixel, nl 8. Daardoor kunnen we 256 kleurencombinaties kiezen + wit + zwart. Bij 24 bits per pixel hebben we 16 miljoen kleurencombinaties. 2.3.3
Printer
• Matrixprinters: kleine hamertjes of naaldjes kloppen tegen een inktlint en dan tegen een blad. Ze zijn goedkoop, maken erg veel lawaai. • Inkjetprinters: spuiten door haarfijne buisjes op het papier druppeltjes inkt. Voor kleur gebruiken ze de 3 basiskleuren. • Laserprinters: er wordt een elektrostatisch beeld op een cilinder gemaakt en daarop komt fijn zwart poeder te liggen.
3
Datacommunicatie
3.1
Simplex, duplex
• simplex: communicatie in 1 richting maar mogelijk • half duplex: communccatie in 2 richtingen mogelijk, maar niet tegelijk! • full duplex: communicatie in 2 richtingen mogelijk, zelfs tegelijk!
3.2
Protocol, serieel, parallel, snelheid, efficientie
• Communicatieprotocol: vaste afgesproken regels om een verbinding tussen 2 systemen tot stand te brengen. • Protocol: is een verzameling van regels om informatie uit te wisselen tussen 2 systemen op een ordelijke manier. 8
• Seriele communicatie: bits die in de tijd, na elkaar verzonden worden. • Parallelle communicatie: een aantal bits worden tegelijkertijd verzonden. • Snelheid: wordt uitgedrukt in bits per seconde(bps)→ baudx2 log n • Efficientie: is de verhouding van het aantal echte databits dat overgestuurd wordt ten opzichte van het totaal aan overgestuurde bits. Het totaal aantal bits dat overgestuurd moet worden, wordt bepaald door het protocol.
3.3
Serieel datatransport
3.3.1
Synchroon datatransport
Bits worden met een vaste kloksnelheid over de lijn gestuurd. Er wordt ook een zendkloksignaal meegestuurd. Aan de ontvangerszijde is er dan een schakeling die uit het overgestuurde singaal het kloksignaal uithaalt. Als er geen data verzonden wordt, dan wordt er een SYN signaal tussengevoegd. Bij binaire data gaat er altijd een DLE signaal aan vooraf. 3.3.2
Asynchroon datatransport
Eerst worden er een aantal klokpulsen doorgestuurd zodat de 2 pc perfect gesynchroniseerd zijn. Op de 8e bit gaat de pc zijn data binnen halen. De data wordt afgesloten met 1 stopbit.
3.4
Modem
• MODEM: samentrekking van modulator en demodulator. • Bij het begin krijgen we een soort HANDSHAKING: ze gaan kijken welke MNP normen beide modems ondersteunen.
3.5
V.24 of RS-232
Een 25-polige sub-D-connector is eigenlijk een parallelle kabel. Een 9-polige sub-D-connector is een seriele poort (zoals com1, com2 ...)
9
3.6 3.6.1
RS-423, RS-422, RS-485 RS-422
We hebben 2 verbindingen die hetzelfde versturen. Deze signalen hebben een verschillende polariteit en de ontvanger kijkt naar het verschil in beide signalen. Zodat eventuele storingen op beide lijnen geen effect meer hebben. = point-to-point-verbinding. 3.6.2
RS-485
Alle uitgangen worden in de zogenaamde tri-state gebracht. Dit is dat de uitgang van de zender steeds actief is. dus de niet zendende systemen staan altijd op tri-state. 3.6.3
RS-485: Master/Slave
Er is 1 master-systeem in het netwerk. Deze gaat het verkeer lijden en gaat zeggen welk slave-systeem gegevens mag sturen.
3.7
Centronics interface
is een parallelle simplex-interface om printers aan te sturen. Deze interface maakt gebruik van handshaking en de snelheid wordt bepaald door de snelheid van de printer. Normaal is dit een simplex verbinding, maar kan ook half duplex zijn zoals voor tapestreamers en removable disk units...
4
Disks
4.1
Optische disks
• CD-Rom: de informatie is in spiraalvormige sporen in putjes opgeslagen. snelheid: N-speed drive: N x 150kb/s • WORM-disks: herschrijfbare media, bv schrijfbare cdrom’s • de herschrijfbare disks: bv harde schijven of rewritable cd’s
4.2
Magnetische disks
Dit zijn typen disks die we kunnen meepakken en uit de pc halen zoals floppy-disks, zip-drives, harddisks om mee te nemen...
10
4.3
Harddisks
• ST506 en ST412 hebben een snelheid van 5Mbit/seconde • IDE en ESDI-interface hebben een snelheid van 10Mbit/seconde • SCSI schijven halen meestal 640 Mbit/sec, dit is een theoretische snelheid
5
systeemprestatie
5.1
Cachetechnologie
Caching is een techniek om gebruikte gegevens beschikbaar te houden zodat ze de volgende keer sneller kunnen opgeroepen worden. De meeste besturingssystemen houden van diskblokken kopieen bij in het werkgeheugen dat we bufferchache of blockcache noemen. Dit is een vorm van softwarecache. CPU’s draaien meestal in programmalussen. In het cachegeheugen kan zo 1 lus makkelijk gekopieerd worden en is dan heel snel toegankelijk voor de CPU Als we deze programmalussen uit het geheugen zouden moeten halen, dan zou dit veel langer duren en zou de CPU in zogenaamde wait-states terecht komen. Dit noemen we een hardwarecache. Eigenschappen: • De cache is transparant voor de eindgebruiker. • Als een gevraagd item in de cache aanwezig is→ cache hit. • Als een gevraagd item niet in de cache aanwezig is → cache miss. • Hit rate: verhouding van cache hits t.o.v. de totale hoeveelheid keren dat er data wordt opgevraagd. Meestal in % • Cache flush: Het cache geheugen wordt leeggemaakt en er wordt iets helemaal anders ingestoken. 5.1.1
Hardwarecache
3 Typen: • instructiecache: de machinecodes worden gecached. • datacache: de data wordt gecached. • zowel instructies als data worden in de dezelfde cache bijgehouden. 11
Levels • interne registers van de CPU • level 1-cache: in de CPU • level 2-cache: buiten de CPU • werkgeheugen • achtergrondgeheugen (disk) • back-up op tape of (schrijfbare) cd-rom
5.2 5.2.1
RISC versus SISC RISC-filosofie
CISC = Complex instruction set CPU Dat zijn CPU met een enorm complexe instructieset aan boord. RISC = reduced instruction set CPU Deze CPU heeft een beperkt aantal instructies aan boord en kan die instructies sneller uitvoeren. Er moeten wel meer instructies worden uitgevoerd. Kenmerken RISC • Alle instructies zijn evengroot. • Er is geen uitgebreide keuze aan adresseer-modes • Er zijn veel interne registers beschikbaar • Er zijn geen instructies die bewerkingen op het geheugen uitvoeren. Dit wordt alleen gedaan met LOAD(geheugeninhoud ophalen en opslaan in register) en STORE(register wegschrijven naar extern geheugen). 5.2.2
Pipelining
bv. een instructie neemt 4 basis cycles in beslag.. fetch, decode, execute en store. Een normale CPU gaat dus 4 momenten nodig hebben om deze instructie uit te voeren. Een Pipelining-CPU gaat deze cycles door deeleenheden laten afwerken zodat deze instructie in 1 momment kan worden afgewerkt. Problemen? pipeline gevuld krijgen enz... 12
5.2.3
Superscalaire architectuur en superpipelining
Superscalaire wil zeggen dat er meerdere functionele eenheden meervoudig worden uitgevoerd zodat ze parallel kunnen werken. Superpipeline wil zeggen dat er 3 instructies worden uitgevoerd tegelijkertijd, maar dat er maar eentje voltooid wordt.
6
Operating Systems
6.1
Taken van het OS
• regelt de communicatie met de randapparaten. • Het verdeeld, regelt en organiseert de systeem-resources • Het biedt de gebruiker de mogelijkheid op een hardwareonafhankelijke manier van het systeem gebruik te maken.
6.2
Kernel, device drivers
Het hardwareonafhankelijke deel van een OS is de kernel. Om met randapparatuur te communiceren worden aan de kernel bepaalde devices drivers toegevoegd.
6.3
Proces
= wanneer een programma gestart is. Een proces ontstaat bij het opstarten van een programma en verdwijnt bij het afsluiten van een programma.
6.4
Geheugenmodel van een proces
Het codegedeelte van ee programma bestaat alleen maar uit machine-instructies. Het datasegment bestaat uit gegevens die worden ingelezen en weggeschreven, bv in het stacksegment. De program counter zal tijdens het uitvoeren van een proces adressen van de instructies in het codesegment bevatten. Via de stack pointer worden allerlei tijdelijke gegevens zoals return-adressen van subroutines van en naar de stack getransporteerd. De programmavariabelen beginven zich in het datasegment.
13
6.5
System calls
Dat is een aanroep van een speciale routine uit het besturingssysteem om een bepaalde taak gedaan te krijgen dat het niet zelf kan doen, zoals een bestand van een harde schijf lezen. Zo moet je geen kennis hebben van de specifieke hardware.
6.6
User- en kernel mode
Bepaalde CPU’s kennen een user en kernel mode. Een deel van het besturingssysteem draait in kernel mode, andere processen zoals programma’s draaien in user mode om te voorkomen dat bv dat proces geen blokken op de harde schijf gaan overschrijven. Een user-proces kan bv alleen maar door gebruik te maken van system calls een bestand wegschrijven.
6.7
Proces-management bij beperkt geheugen
Oplossingen als het geheugen vol raakt • Het OS laat geen nieuwe processen toe. Pas als er nieuwe processen klaar zijn of verdwemen, kan er een nieuw proces gestart worden. • Het OS gaat zoeken naar een proces dat al een hele tijd niets doet (bv omdat het zit te wachten op I/O) en schrijft de objectcode van dit proces tijdelijk naar de HD. Dit heet swapping. • Gebruik maken van een ingewikkelde memory-management unit en een CPU die demand paging ondersteunt. Bij deze laatste oplossing worden alle processen in zogenaamde pages ingedeeld. Als het werkgeheugen vol zit, worden dan bepaalde delen naar de HD geschreven en kan er een nieuwe page worden geplaatst. Als deze page is afgewerkt, wordt dit gesignaleerd en worden de pages op de HD teruggehaald en in het geheugen gestoken. Voordelen van MMU en demand paging • Er moeten geen hele processen worden weggeschreven, maar enkel pages. Dit is dus sneller. • Pages van code die in uitzonderlijke situaties nodig is, zullen meestal niet in het werkgeheugen worden opgeslagen?
14
• Het is mogelijk om processen te verwerken die helemaal in het geheugen passen. • Het probleem van een het zoeken naar een passend aaneensluitend stuk geheugen zoals bij swapping het geval was, is hier niet nodig.
6.8
6.8.1
OS uit de praktijk
Windows 95 en 98
deze versie heeft een nieuw filesystem zoals FAT32. Dit laat toe om grotere partities te maken en minder ruimte te verspillen. De grafische interface is beter ontwikkeld en grondig herzien.
15
6.8.2
Windows NT
U S E R
Win32 Process
object manager
I/O manager
virtual local security process manager manager procedure memory call(LPC) manager
window manager
kernel hardware abstraction layer(HAL)
graphic device drivers
Eigenschappen: • Windows NT is een multi-usersysteem in engere zin. Elke gebruiker moet met eigen username en password inloggen en krijgt daardoor een aantal recht toegewezen. Maar je kan niet met meerdere gebruikers tegelijk inloggen. • Maakt gebruik van virtueel geheugen en paging. • Processen kunnen via een aantal interprocess-communicatiesmechanismen data uitwisselen. • Voor processen zijn verschillende priority levels beschikbaar. De gebruiker kan bepaalde processen meer of minder processortijd toekennen. • Er kunnen meerdere protocollen voor netwerken worden gebruikt. • Kent Threads. 16
K E R N E L
• Er is een beperkte mogelijkheid om MSDOS programma’s te draaien.
7
Digitale besturingen
7.1
PLC - Programmable Logic Controller
• Programmable: De PLC is programmeerbaar. Deze wordt gestuurd door software die zich in het programma geheugen bevindt. Deze programmatuur kunnen we veranderen naargelang de toepassing. • Logic: De signalen zijn meestal binair. Sommige PLC’s kunnen ook overweg met analoge signalen dmv een ADC of DAC. • Controller: PLC is een besturigns- en regelssysteem. PID(een regelaar die de regelactie op 3 wijzen laat afhangen van het stuursignaal, namelijk een proportionele, een integrerende en een differentierende actie) , fuzzy-regelaar(een regelkring die volgens fuzzy-regels acties uitvoert)
7.2
opbouw van een PLC
Ingangen PLC hebben een aantal ingangen (aangeduid met E1 of I1). Het kan ook zijn dat de ingangen worden aangeduid als bits in een register. Het eerste nummer(bv 9.2) is dan bit nummer 2 van ingangsregister 9. De ingangen zijn volledig gescheiden van het processor gedeelte. 2 systemen om stoorsignalen buiten te houden:
RC-netwerk LPF: signalen met een hoge frequentie worden niet doorgelaten... Hysterese systeem Een logische 0 is alleen maar bij een ingang tussen 0 en 8V daarboven is het een logsiche 1. Uitgangen Hetgeen de processor genereert wordt op de uitgangen gezet. De uitgangen zijn volledig gescheiden van het processor gedeelte. Relais - uitgangsrelais Spanningen tot 250V en 100mA.
17
transistor Wordt meestal gebruikt bij schakelingen op gelijkspanning. de schakelfrequentie ligt veel hoger dan bij relaisuitgangen, maar de toegelaten spanning is maar 24V Solid State gebruikt bij wisselspanning en vereist bij hoge schakelfrequenties. I/O-mogelijkheden De binaire waarden die binnenkomen worden als 1 getal behandeld, meestal wordt de BCD-code toegepast! Het kan voorkomen dat de PLC te traag is voor sommige signalen. Dit wordt opgelost met een hardwarematig iets. Een binaire counter telt de signalen en het resultaat van de telling wordt door de PLC verwerkt.
CPU zie vb in boek p.219:) geheugen programmageheugen Hierin wordt het gemaakt programma bewaard die gaat reageren om binnengekomen signalen. Datageheugen Hierin worden de tussenresultaten en toestanden van de tellers enzo tijdelijk opgeslagen. 7.2.1
Visualisatie en interfacing
De PLC kan gebruikt worden voor een hele waaier aan toepassingen. Meestal hebben we dan randapparatuur nodig. Aan de PLC kunnen we een display, printer, toetsenbord en zelfs een computer aankoppelen. Dit kan gaan via de binaire in- en uitgangen, maar ook via meer geavanceerde bussen die op de PLC aanwezig zijn.
7.3
DCS
Een DCS is een alternatief voor diverse meet- en regelsystemen. Het voordeel is dat er verschillende systemen in werken en dat deze onafhankelijk van elkaar werken. Meerdere dingen kunnen gemonitord worden, maar als er 1 uitvalt dan kunnen de andere verder werken.
18
8 8.1
Computernetwerken Bustopologie
Alle computers zijn parallel met elkaar verbonden via 1 lijn. Er kan maar 1 pc iets versturen, de andere moeten wachten.
8.2
Head-end-topologie
Verbonden via 2 lijnen, 1 bedoeld voor te zenden, 1 bedoeld voor te ontvangen.
8.3
Stertopologie
1 mainframe en zal dit naar alle andere systemen sturen.
8.4
Ringtopologie
Alle pc hangen aan elkaar. De communicatie is meestal simples of duplex.
19