В чем разница между размером адресного пространства и «границей» при использовании базы и границ? - PullRequest
0 голосов
/ 06 августа 2020

Используемый инструмент: 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...