Stżrikerfi I
09.12.41


Lokapróf 18. desember 1996


Öll skrifleg hjįlpargögn leyfileg.



1. [10%] Fyrirtęki nokkurt framleišir hylki sem eiga aš taka viš af disklingurm. Hvert hylki inniheldur tvęr plötur og getur geymt 1GB. Snśningshrašinn er 5400 sn/mķn og gefiš er upp aš hęgt sé aš lesa allt aš 10MB/sek. ķ stuttan tķma.

a) Hvaš segir žetta okkur um gagnamagn į hverjum sķvalningi (cylinder) og hversu margir eru sķvalningarnir? (Fjöldi sķvalninga er jafn fjölda spora į hverri plötu).

b) Nś er lķka gefiš upp aš hįmarksleshraši ķ lengri tķma er 6.6MB/sek. Hvaš segir žaš okkur um fęrslutķma milli ašliggjandi spora og hver er mešalleitartķmi hylkisins?


2. [10%] Žokkalegur geislaprentari prentar 300 dpi (dots per inch). Hversu mikiš skjįminni žarf til aš fį sömu upplausn į 15 tommu tölvuskjį (ž.e. 9 x 12 samkv. Pythagoras), i) fyrir 256 liti eša ii) fyrir 24 bita lit? Ef uppfęrsluhrašinn (refresh rate) er 75 Hz, hversu mikill er gagnaflutningshrašinn śr skjįminninu (fyrir bįšar litagerširnar)?



3. [10%] Skošiš C forritsbśtinn hér aš nešan:
	float x = 0.1;
	double y = 0.1;
	if ( x == y )
	   /* A */
	else
	   /* B */
Hvaša nišurstöšu hefur samanburšurinn ķ if-setningunni? Hvers vegna? Skiptir mįli hvort viš notum annan fasta, t.d. 0.5 ķ breytunum x og y?



4. [20%] Žiš eigiš aš skrifa quicksort stef ķ 8086 smalamįli, kallanlegt śr Borland C++. Hér aš nešan er qsort stefiš ķ C++. Žiš megiš gera rįš fyrir aš stefiš split sé til og aš žaš hafi veriš skrifaš ķ Borland C++.
         // Notkun:	split(f, a, b, k);
         // Fyrir:	f[a..b-1] er svęši ķ f
         // Eftir:	f[a..k-1] < p og f[k..b-1] ³ p, meš f[k] = p, žar 
         //		 sem p er upphaflega f[a]
        void split( int f[], int a, int b, int& k );


        // Notkun:	qsort(f, a, b);
        // Fyrir:	f[a..b-1] er svęši ķ f
        // Eftir:	Bśiš aš raša f[a..b-1] ķ vaxandi röš
        void qsort( int f[], int a, int b ) {
           int k;
           if( b-a < 2 ) return;
           split( f, a, b, k );
           qsort( f, a, k ); qsort( f, k+1, b );
       }


5. [10%] Skošiš eftirfarandi 8086-smalamįlsbśt:
                clc
        upp:    mov     ax, [si]
                adc     [di], ax
                inc     si
                inc     si
                inc     di
                inc     di
        loop    upp
Svariš eftirfarnadi spurningum um kódann:

a) Lżsiš hvaš bśturinn gerir (meš oršum eša saušakóda).

b) Hvers vegna er skipunin inc notuš til aš hękka si og di, ķ staš žess aš leggja 2 viš meš skipuninni add?


6. [10%] Segiš hvort eftirfarandi fullyršingar eru sannar eša ósannar. Rökstyšjiš. Athugiš aš sanngildi fullyršinganna getur fariš eftir žeim forsendum sem žiš gefiš ykkur, žiš veršiš žvķ aš taka žęr fram.

a) Ašgangur ķ einstök bęti er hrašvirkari į "big-endian" gjörvum en į "little-endian".

b) Meiri hrašaaukning gjörva heldur en minnis er helsta įstęšan fyrir minnisstigveldi (memory hierarchy).

c) Žaš tekur 5 nanósek. aš framkvęma eina ADD-skipun ķ 200MHz Pentium gjörva.

d) Endurbęttur Hamming kódi leišréttir ašeins villur ķ gagnabitunum, en ekki ķ varbitunum sjįlfum.


7. [15%] Žżšiš eftirfarandi forritsbśt ķ C yfir ķ i) 8086 smalamįl og ķ ii) PA-RISC smalamįl.
	switch ( k ) {
	    case 0:  r--;  break;
	    case 1:  c++;  break;
	    case 2:  r++;  break;
	    case 3:  c--;
	}
Žiš megiš nota breytunöfnin sem nöfn į gistum ķ PA-RISC forritinu (t.d. %k fyrir k), en veršiš aš śthluta sjįlf gistum ķ 8086 forritinu. Reyniš aš hafa kódann eins hrašvirkan og mögulegt er ķ bįšum tilfellum (en aušvitaš fyrst og fremst réttan!).



8. [15%] Tölva hefur tveggja laga skyndiminni. Žaš innra er 16KB meš 128 mengi og 4 lķnur ķ hverju žeirra. Ytra skyndiminniš er 2MB og notar beina vörpun meš lķnustęrš 512 bęti.

a) Lżsiš skyndiminnunum nįnar og sżniš hvernig tilvķsun ķ vistfangiš 4A68C508 yrši mešhöndluš ef viš gerum rįš fyrir aš žaš sé hvorki ķ innra né ytra skyndiminni.

b) Geriš grein fyrir hverskonar minnisašgangur er slęmur (ž.e. kastar śt žeim lķnum sem į aš nota nęst) fyrir innra skyndiminni og einnig hverskonar ašgangur er slęmur fyrir ytra skyndiminniš.

c) Lżsiš gróflega minnisašgangi sem vęri slęmur fyrir bęši innra og ytra skyndiminni. Er lķklegt aš slķkur ašgangur komi upp, og žį ķ hvernig forritum?