Tehtävä 1: Levyoperaatioiden kesto

Otaksumme levyn toiminnasta seuraavaa:

Levyn pyörimisnopeus on 7200 rpm ja siinä on yksi luku/kirjoituspää per levypinta.

Sylintereiden (uraa per levypinta) lukumäärä on 2000, joka uralla on 50 sektoria ja sektorin koko on 0.5 kB.

Hakuvarren siirtoaika on lineaarinen urien lukumäärän suhteen, joten se on 0.02 ms per ura.

Luettavan tiedoston jokaisen sektorin sijainti on täysin satunnainen levyllä, joten sektorista toiseen siirryttäessä joudutaan ylittämään keskimäärinen 667 uraa. (Urien määrä saadaan todennäköisyyslaskennalla)

Tiedosto luetaan levyltä yksi sektori kerrallaan.

Kauanko kestää 333.33 kB tiedoston lukeminen levyltä keskimäärin? Entä 24 MB tiedoston lukeminen?

Selitä mitä tietoa välitetään ja miten

a) ohjelman ja käyttöjärjestelmän laiteriippumattoman tason välillä,
b) käyttöjärjestelmän laiteajurin ja laiteohjaimen välillä,
kun ohjelma kirjoittaa tavuja tiedostoon (oletetaan, että ohjain pystyy DMA-siirtoon).

Miten pitäisi kovalevyn ajurin reagoida, jos levyohjain ei vastaa ollenkaan - koska se puuttuu tai on epäkunnossa?

Nimen sidonta
Ohjelmassa käytetyn nimen sidonta sen lopulliseen arvoon voi tapahtua ainakin seuraavien tapahtumien yhteydesssä: ohjelman kirjoitusaikana, käännösaikana, linkityksen aikana, latauaaikana, kantarekisterin (tai muun KJ-rekisterin) asetuksen aikana tai konekäskyn suoritusaikana. Milloin seuraavisen esimerkkien nimien sidonta tapahtuu? Perustele.

operaatio nimet

a) ADD R1, parX (FP) R1?, ParX? FP? ADD?

b) XX DC 456789 XX?

c) CALL SP, IO.Print Print?

d) DD EQU 65 DD?

e) locX = 3456789; locX? c-kielen muuttuja

Kussakin tapauksessa perustele, miksi sidonta ei voisi tapahtua aikaisemmin tai myöhemmin.

Java-ohjelmia (tavukoodia) voidaan suorittaa (ainakin) neljällä eri tavalla: tulkitsemalla, tavallisella käännöksellä, Just-In-time -käännöksellä tai suoraan Java-suorittimella.

Anna esimerkkejä tilanteesta, jolloin tulkitseminen olisi parempi kuin muut vaihtoehdot. Perustele, miksi muut tavat olisivat huonompia.

Anna vastaavat esimerkit ja perustelut tilanteista, jolloin muut e.m. vaihtoehdoista olisivat parhaita vaihtoehtoja.

Mikä olisi paras vaihtoehto (Java) ohjelmoinnin harjoitustyön suorittamiseen? Miksi?

Mitä prosesseja järjestelmässä tarvitaan ohjelman suoritushetkellä, jos Java ohjelmaasi MyProg suoritetaan 1) tulkitsemalla, 2) tavallisella käännöksellä, 3) Just-In-Time -käännöksellä tai 4) suoraan Java-suorittimella?

Kertausta ohjelman suorittamisesta (kokeessa usein kysyttyä)

Kuvaa prosessorin rekistereiden tasolla, miten tehdään käskynouto.

Esitä prosessorien rekisterien tasolla, miten suoritetaan käskyt:

LOAD R2, =100

COMP R2, @10(R2)

JNLES away

....

away ....

Jos muistipaikkoihin 100-300 on talletettu ko. muistipaikan osoite eli paikassa 100 on luku 100, paikassa 101 luku 101 jne, niin hypätäänkö ohjelmassa osoitteeseen away vai ei?

Kertausta tiedon esitysmuodoista.

Muuta luku 109.625 binäärimuotoon.

Esitä luku -42 kahden komplementtimuodossa.

Mitä desimaalilukua 32-bittinen IEEE:n standardin mukainen liukulukuesitys 0xC1600000 (heksadesimaaliluku) tarkoittaa?

Kertausta aliohjelmista.
Kokonaislukuarvoinen taulukko T[40] on määritelty pääohjelmatasolla. Taulukossa on siis 40 alkiota (alkiot 0,...,39).

Anna taulukon T määrittely.

Tee funktio Laske(S, N), joka palauttaa arvonaan N-alkioisen taulukon S positiivisten alkioiden lukumäärän. Noudata suositusten mukaista aliohjelmien (funktioiden) toteutustapaa ja kutsumekanismia. Parametri S on viiteparametri ja parametri N on arvoparametri.

Anna ttk-91 symbolisen konekielen konekäskyt, joilla em. funktiota käyttäen tulostetaan (muualla, pääohjelmatasolla määritellyn) 40 alkioisen taulukon T positiivisten alkioiden lukumäärä. Noudata suositusten mukaista aliohjelmien kutsumekanismia. Parametri S on viiteparametri ja parametri N on arvoparametri.

Miten funktiota Laske tulisi muuttaa, jos se palauttaisikin taulukon S positiivisten alkioiden lukumäärän sijaan taulukon S parittomien alkioiden lukumäärän.

Piirrä aktivointiotietuepino kohdan b) aliohjelman kutsun jälkeen ja juuri ennen aliohjelmasta paluuta

2005-06-03T14:32:16