Выравнивание памяти и виртуальное адресное пространство - PullRequest
0 голосов
/ 17 марта 2019

Хотелось бы узнать связь между выравниванием виртуальной и физической памяти.

Допустим, у меня есть такая структура:

struct s {
    int16_t a;
    int32_t b;
    int64_t c;
};

Это, вероятно, заложено как:

|aa..bbbb|
|cccccccc|

И его размер в памяти составляет 16 байт. Его самый большой член равен c (8 байт), поэтому предположим, что он будет выровнен на 8 байт.

Это выравнивание применяется как в пространстве виртуальной памяти, так и в пространстве физической памяти?

Мне интересно, не имеет ли вообще никакого значения выравнивание в виртуальном адресном пространстве - если виртуальные адреса фактически отображаются в выровненную физическую память.

...