Процесс всегда отслеживает, сколько байтов использует его программа с полем sz в структуре proc. Обладая этими знаниями, легко рассчитать, какая последняя запись таблицы страниц и какая запись каталога страниц были использованы.
Например, если в данный момент программа использует 8000 байт (то есть sz = 8000):
В XV6 каждая страница памяти имеет размер 4096 байт (PGSIZE), и в каждой записи каталога страниц содержится 1024 записи таблицы страниц. поэтому каждая запись каталога страниц может указывать на 4096 * 1024 байта (4 МБ), а каждая запись таблицы страниц может указывать на 4096 байт (4 КБ).
Это означает, что запись каталога последней страницы процесса: sz / 4 МБ (округлено в меньшую сторону).
и что таблица последней страницы процесса в каталоге последних страниц имеет размер: sz / 4 КБ (округлено в меньшую сторону). В примере sz = 8000 это означает: запись каталога страниц 0 (первая) и запись таблицы страниц 1 (вторая).