Mäluhaldus

Üheks operatsioonisüsteemi ülesandeks on arvuti mäluhaldus. Iga programm, mis masinas käivitatakse, vajab oma tööks mingit hulka mälu. Mälu on vajalik nii programmis leiduvate operatsioonide täitmiseks kui ka muutujate ja vahetulemuste salvestamiseks.
Seega toimub arvuti töö käigus pidevalt mälu reserveerimine, vabastamine ja uuestireserveerimine. Sääraste operatsioonide tulemusena tekib mälus olukord, kus vabad piirkonnad, mis kokku võivad moodustada väga suure mäluhulga, paiknevad väikeste tükikestena hajali üle kogu mälu. Antud olukorda nimetatakse mälu fragmenteerumiseks. Iga järgneva mälutellimisoperatsiooni käigus tuleb sellisel juhul otsida vaba mälupiirkond, mis ei ole väiksem kui tellitava mälu hulk ning see reserveerida.

Ülesanne

  1. Tekstifailis tähistab iga rida ühte mälupesa. Kui rida on tühi, on mälupesa vaba. Kui antud rida ei ole tühi, on mälupesa hõivatud.
  2. Kirjutada programm, mis analüüsib antud tekstifaili ja leiab sealt vabade mäluplokkide arvu ja pikkused.
  3. Programm peab käivitamisel küsima tellitava mälu suurust.
  4. Programm peab leidma vabade mäluplokkide hulgast suurima ning reserveerima selle algusest nii palju mäluplokke kui oli tellitud.
  5. Ekraanile tuleb väljastada uus mälupilt, kus tellitud mäluplokke ja nende asukohta oleks võimalik eristada.
  6. Kui mälu ei ole võimalik reserveerida, tuleb väljastada sellekohane teade.
  7. Programm peab sisaldama elementaarset veatöötlust (veateade kuvatakse, kui mälu suurust pole sisestatud, kui sisestatud mälu hulk ei ole numbrilisel kujul, kui tekstifaili ei saa avada, kui mälu pole võimalik reserveerida jne.).