Используемый инструмент: relocation.py
Из домашнего задания главы 15 - Три простых элемента Операционные системы (последняя страница):
Запускается с этими флагами: -s 1 -n 10 -l 100. Какое максимальное значение может быть установлено для base, чтобы адресное пространство по-прежнему полностью умещалось в физической памяти?
При запуске ./relocation.py -s 1 -n 10 -l 100
я получаю следующий результат:
ARG seed 1
ARG address space size 1k
ARG phys mem size 16k
Base-and-Bounds register information:
Base : 0x00000899 (decimal 2201)
Limit : 100
Virtual Address Trace
VA 0: 0x00000363 (decimal: 867) --> PA or segmentation violation?
VA 1: 0x0000030e (decimal: 782) --> PA or segmentation violation?
VA 2: 0x00000105 (decimal: 261) --> PA or segmentation violation?
VA 3: 0x000001fb (decimal: 507) --> PA or segmentation violation?
VA 4: 0x000001cc (decimal: 460) --> PA or segmentation violation?
VA 5: 0x0000029b (decimal: 667) --> PA or segmentation violation?
VA 6: 0x00000327 (decimal: 807) --> PA or segmentation violation?
VA 7: 0x00000060 (decimal: 96) --> PA or segmentation violation?
VA 8: 0x0000001d (decimal: 29) --> PA or segmentation violation?
VA 9: 0x00000357 (decimal: 855) --> PA or segmentation violation?
For each virtual address, either write down the physical address it translates to
OR write down that it is an out-of-bounds address (a segmentation violation). For
this problem, you should assume a simple virtual address space of a given size.
На выходе я вижу ARG address space size 1k
и Limit : 100
, что меня смущает ..
Я даже не уверен, о чем спрашивается.
Я вижу, что физическая память составляет 16 КБ, должна ли максимальная база быть 16 КБ - 1 КБ, чтобы процесс имел максимальный адресный адрес 16 КБ? Но в этом случае я считаю, что максимально допустимый адрес будет 16k - 1k + 100, так как предел равен 100 ...
Есть ли в адресном пространстве место, которое нельзя адресовать? Это означает, что мне разрешено обращаться только от base
до адреса base + bound
, не больше и не меньше, но на самом деле адресное пространство находится от местоположения x
до местоположения y
, где x <= base && y >= base + limit
?