Я пытаюсь учиться на экзамене... и я нашел этот пример, но не могу понять, как они получили ответ. Может кто-нибудь объяснить это пожалуйста?
Вопрос:
Рассмотрим двумерный массив A: int A [] [] = new int [100] [100]; где A [0] [0] находится в местоположении 200 в системе с постраничной памятью со страницами размером 200. Небольшой процесс, который манипулирует матрицей, находится на странице 0 (местоположение от 0 до 199). Таким образом, каждый выбор команды будет со страницы 0. Для двух страничных фреймов количество ошибок страницы генерируется следующими циклами инициализации массива, используя замену LRU и предполагая, что первый кадр страницы содержит процесс, а другой изначально пуст?
А:
for (int j=0;j<100;j++)
for (int i=0; i<100; i++)
A[i][j] = 0;
В:
for(int i=0; i<100; i++)
for (int j=0; j<100; j++)
A[i][j] = 0;
Правильный ответ: a: 100 x 50 = 5000 b: 50
Я несколько понимаю первую часть. Всего 50 страниц. (10000/200 = 50), и каждый раз, когда j изменяется, возникает ошибка страницы. В общей сложности 100 ошибок страницы... но почему это умножается на 50? и почему вторая - 50?
Спасибо!!