Computerarchitectuur en systeemsoftware

Ga naar: navigatie, zoeken

Samenvattingen

Klik hier om de samenvattingen te bekijken

Inleiding

CASS is een vak dat gegeven wordt bij onze beste vrienden de Burgerlijk Ingenieurs, en dat dus zeer weinig winezen volgen. Het is een verplicht vak voor wiskunde en fysica afstudeerrichting informatica.

Het examen bestaat uit 2 delen: het eerste stuk is open boek en bestaat uit oefeningen, het tweede stuk is gesloten boek en is theorie.

Voor de oefeningen is er te weinig tijd. Werk dus door en stel uw prioriteiten. Voor de theorie is er veel schrijfwerk (reken op een 10 bladzijden tekst die je moet schrijven), en moet je alles uit de cursus kunnen combineren.

Zie ook (in examens in de liefde is alles toegestaan) de VTK-site: https://www.vtk.be/wiki/vak/H01P5A/Examenvragen/

24 januari 2011

Theorie

  • Bespreek pipelining. Leg uit wat het is, hoe het werkt, wa de voor-/nadelen ervan zijn (op het gebied van performantie), welke methoden verder bouwen op pipelinen etc.
  • Leg 5 van de 6 begrippen uit:
    • Mark I (historisch perspectief)
    • IEEE 745 standaard
    • Cluster
    • South bridge
    • Pre-emptive Shortest Job First
    • Multilevel cache

Oefeningen

  • Gegeven een 32 bit IEEE745 floating point getal, zet om naar decimaal getal.
  • Een oefening op het berekenen van het aantal bits van tags en totaal aantal bits nodig om een cache te representeren.
  • Bij een gegeven C-code programma laten zien hoe de stack eruit ziet op een punt A
  • Een gegeven C-code programma vertalen in MIPS assembly

26 januari 2010

Theorie

  1. Bespreek het belang van geheugenhierarchie op de performatie van programma's. (Uitgebreid: leg eerst uit wat die hierarchie is, pas het dan toe op programma's. Geef voldoende concrete voorbeelden)
  2. Leg 5 van de 6 begrippen uit:
    1. Memory Mapped I/O
    2. System call
    3. RAMAC / Winchester disk (uit historisch perspectief)
    4. Floating point presentatie
    5. Performantievergelijking
    6. Virtuele machines

Oefeningen

  1. Gegeven een 32bits hexadecimaal getal. Geef de binaire, octale en decimale representatie (te interpreteren als een IEEE754 single floating point)
  2. Een gegeven C-programma (met een syntaxfout, btw :P) vertalen naar MIPS ASM
  3. Een gegeven C-functie om strings op gelijkheid te testen vertalen naar x86 ASM.

15 januari 2009

Oefeningen

Dit bestand stond op de Toledopagina van CASS als voorbeeldexamen voor de examens in januari 2010: Media:exam2_do_1501_nm.pdf

17 januari 2008

Theorie

  1. Leg in detail uit hoe virtueel geheugen in elkaar zit. Wat heeft virtueel geheugen te maken met multiprogrammatie en met scheduling? Geef ook jouw definitie van multiprogrammatie en scheduling.
  2. Leg uit (5 van de 6): ENIAC, frame pointer, microprogrammatie, 2-complement voorstelling, data hazard en SATA

Oefeningen

OEFENING 1:

  • Give the binary representation of the following numbers: 654,1024,47,1492
  • Represent the following in 16 bits two's complement: 512, -256, 1238, 95, -96 en -321
  • Represent the following number in IEEE 754, 32 bit precession: 203,15625 (10 %)

OEFENING 2:

  • Consider a direct-mapped cache with a 5-words block size and a total size of 20 words that is initially empty. Consider the following sequence of addresses, given as word addresses: 0,7,2,3,25,8,26,26. Label each of these addresses as a hit or a miss.
  • Consider a 2-way set-associative cache with a 3-word block size and a total size of 24 words that is initially empty. The cache uses a LRU strategy. Consider the following sequence of addresses, given as word adresses: 0,13,2,7,12,8. Label each of these addresses as a hit or a miss. (10%)

OEFENING 3:

  • Translate the following code to MIPS assembly. The alloc function allocates a chunk of memory of size byes in the heap. "void * " is the type of an address in memory. (10 %)
void * top_heap = 0x10010000;

void * alloc(unsigned int size) {
   void * temp = top_heap;
   top_heap += size;
   return temp;
}

OEFENING 4:

  • Typical translation of object file into an executable file (15 %)

OEFENING 5:

  • Translate the following program into MIPS assembly (55 %)
int random_seed = 10;

int myRand(){
   random_seed = random_seed * 1103515245 + 12345;
   return (unsigned int)(random_seed /  65536) % 32768;
}

int strlen(char * string){
  int len = 0;
  while(string[len] != 0){
     len++;
  }
return len;
}

void mixName(char * name){
   int i = 0;
   for(i=0; i < strlen(name); i++){
      int dest = myRand() % strlen(name);
      char temp = name[dest];
      name[dest] = name[i];
      name[i] = temp;
    }
}


int main() {
   char *name = "raymond";

   mixName(name);
   printf("%s", name);
 
  return 0;
 }

24 januari 2007, 13u

Oefeningen

  1. Geef de toestand van de stack bij het begin van de volgende methodes. Er waren een aantal verschillende gevallen, zoals declaratie van lokale variabelen (int, char), character arrays, pointers naar globale character array, ...
  2. Zeg bij elk van volgende opeenvolging van memory reads of de cache een hit of een miss zal geven. Dit was opgesplitst in 3 stukken: een direct mapped cache met blokken van 1 word, een direct mapped cache met blokken van 2 words en een 3-way set associated cache met blocks van 2 words.
  3. Gegeven 2 object files (een main en een hulpmethode), vul in een tabel in met het uiteindelijke gelinkte programma. Analoog aan boek pagina 109, 'linking object files'.
  4. Een C methode (merge voor mergesort) is gegeven, zet om in MIPS. Dit was de grootste vraag en stond op de meeste punten.
  5. Gebruik de methode uit de vorige vraag om een volledige mergesort te schrijven (hierbij kwam dus nog eens recursiviteit kijken). De C code was gegeven.

Theorie

  1. Waarom is computerarchitectuur belangrijk voor een softwareontwerper? Geef uitgebreid antwoord, geef concrete voorbeelden, blabla, betrek heel de cursus in het antwoord.
  2. Verklaar 5 van de volgende 6 begrippen. Wees volledig: waar wordt het gebruikt, wanneer, voor-/nadelen, alternatieven, enz : lader, data hazards, interrupt, capacity miss bij caches, RAID 3, shortest job first.