Когда массив 2 D объявлен статически, мы получаем огромный непрерывный кусок виртуальных адресов. Эти адреса не должны сопоставляться со смежными адресами памяти на физических адресах. То же самое происходит для массива 1 D? Являются ли адреса отдельных элементов в массиве 1D смежными в физическом адресном пространстве или могут быть сопоставлены адресам на разных физических страницах?Отображение массивов с виртуального адреса на физический адрес
0
A
ответ
1
Виртуальное адресное пространство не имеет ничего общего с массивами в программировании на С (я предполагаю, что вы используете C).
Когда у вас есть 2D-массив, последнее измерение просто виртуально. За кулисами компилятор имеет один длинный 1D-массив, и когда вы хотите достичь одного конкретного узла, он будет быстро умножать первый индекс и длину выполнения столбца перед добавлением второго индекса.
Смежные вопросы
- 1. Перевод виртуального адреса на физический адрес
- 2. Карта виртуального адреса назад на физический адрес
- 3. преобразования виртуального адреса в физический адрес
- 4. Каково значение отображения виртуального адреса на физический адрес?
- 5. Перевод с логического адреса на физический адрес. Логические адреса: hex
- 6. Как QEMU поддерживает перевод с гостевого виртуального адреса на гостевой физический адрес?
- 7. преобразование логического адреса в физический адрес
- 8. Виртуальный адрес на физический адрес
- 9. memcpy принимает виртуальный адрес или физический адрес?
- 10. преобразование виртуального адреса ядра
- 11. перевести виртуальный адрес на физический адрес
- 12. java.nio.MappedByteBuffer виртуальный/физический адрес
- 13. Как перевести адрес виртуальной памяти на физический адрес?
- 14. Линейный адрес и физический адрес
- 15. Сопоставление виртуального адреса с физическим адресом
- 16. __get_free_page, физический адрес и своп
- 17. Как виртуальный адрес таблицы страниц преобразуется в фактический физический адрес?
- 18. Физический адрес в JAVA
- 19. Автоматическое преобразование виртуального адреса в адрес памяти?
- 20. Виртуальный адрес виртуального адреса Linux 3/1
- 21. Как получить адрес DRAM вместо виртуального адреса
- 22. Как получить физический (MAC) адрес IP-адреса с помощью C#?
- 23. Как определить максимальное количество промахов в кеше, которые происходят при переводе виртуального на физический адрес?
- 24. Что такое больший логический адрес или физический адрес?
- 25. Перевод логических на физические адреса для виртуального адреса
- 26. Как преобразовать виртуальный адрес в физический адрес?
- 27. Как Асесс физический адрес в пространстве ядра
- 28. Физический адрес для GeoLocation UK
- 29. Как получить физический путь виртуального каталога
- 30. Как получить физический путь для виртуального каталога
Да. Но это виртуальные адреса? Фактическое место, где оно будет сохранено, то есть физические адреса зависят от сопоставления виртуальных адресов с физическими адресами TLB. Итак, в такой ситуации элементы массива 1D будут отображаться в смежные области памяти или могут быть сопоставлены с физическими адресами на разных страницах? –
Нет. Виртуальные адреса и TLB не нужны для 2D-массивов. Из вида памяти 2D-массив и 1D-массив выглядят одинаково. –
Виртуальные адреса и TLB не отображаются для пользовательского процесса. Все это происходит в операционной системе, что позволяет каждой программе иметь uniqe-память и не нужно знать о свопинге и т. Д. –