|
||||||||||||
ultima problemă
grupă: mică
sursă: OMI 2016 ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
|
Se considera
un calculator ce are o memorie RAM cu o capacitate de K
pagini de memorie si un proces ce se afla in executie pe acest calculator. Se
stie ca orice proces are un spatiu de adrese in memoria virtuala, care are,
de obicei, o dimensiune mai mare decat memoria RAM. Se cunosc cele N
pagini de memorie virtuala accesate de proces, in ordinea in care ele sunt accesate.
De fiecare data cand procesul acceseaza o pagina avand un numar X,
sistemul de operare verifica daca pagina respectiva se afla in memoria RAM.
Daca sistemul de operare gaseste pagina in memoria RAM, pagina poate fi accesata
imediat de catre proces. Daca pagina X
nu se afla in RAM, atunci ea trebuie adusa de pe disc intr-una dintre cele K
locatii din memoria RAM, aceasta operatie fiind foarte costisitoare din punct
de vedere al timpului de executie. In cazul in care exista deja K
pagini de memorie virtuala in memoria RAM, una dintre aceste pagini trebuie
scrisa pe disc si eliminata din memorie, pentru a aduce in locul ei pagina X
accesata. Date de intare Pe prima linie a fisierului vmem.in se afla numerele intregi N si K, separate printr-un spatiu. Pe urmatoarea linie se afla N numere intregi, reprezentand numerele paginilor de memorie accesate de catre proces. Paginile sunt date in ordinea in care sunt accesate. Date de iesire In fisierul de iesire vmem.out veti afisa o singura linie pe care va fi scris numarul minim necesar de operatii de aducere a unei pagini de memorie de pe disc in memoria RAM. Restrictii si precizari 1 <= N <= 100 000 Exemplu
As.drd.ing.
Mugurel Ionut Andreica propunător: Prof. Emanuela Cerchez emanuela.cerchez@gmail.com Articole recomandate
Probleme recomandate
|
|||||||||||
surse trimise | ajutor |