Подравняване на структури от данни

от Уикипедия, свободната енциклопедия

Под подравняване на структури от данни в компютърните науки се разбира начина, по който данните са подредени в компютърната памет. Състои и се от две отделни, но в същото време свързани концепции: подравняване и запълване на структура от данни. Когато модерен компютър пише или чете от основната памет, той го прави като използва парчета от данни с големина на машинната дума (например 4 байтови парчета при 32 битова система, с други думи големина на машинната дума от 4 байта). Подравняване на структура от данни означава поставянето на данните в паметта на адрес, който е кратен на големината на машинната дума. Това повишат производителността на системата, поради начина, по-който централният процесор (CPU) обработва паметта. За подравняване на данните, може да е необходимо и да се добавят някои безсмислени байта между края на последната структура от данни и началото на следващата. Този процес е известен в литературата като подравняване на структура от данни.

Например, когато размерът на машинната дума на компютъра е 4 байта (байтът е 8 бита за повечето изчислителни машини, но може да бъде различен за някои системи), данните, които ще се четат трябва да бъдат в паметта на адреси, които са кратни на 4. Когато това не е случаят, например адресът на структура от данни в паметта започва от 14-ия байт, вместо от 16-ия байт, компютърът трябва да прочете две парчета по 4 байта всяко и допълнително да направи някои изчисления преди исканите данни да бъдат прочетени. Въпреки че предишната структура от данни завършва на 13-и байт, следващата структура от данни трябва да започне на 16-ия байт. Два байта за запълване са вмъкнати между двете структури от данни, за да се приведе в съответствие следващата структура на данни и началният и адрес да е 16-ия байт.

Въпреки че подравняването на структурите от данни е основен проблем за всички съвременни компютри, много компютърни езици и компютърни езиковите реализации се справят с подравняването автоматично. Ada, Ada,[1][2] някои C and C++ имплементации, D,[3] и assembly language и асемблер позволяват поне частичен контрол върху подравнявеното на структурите от данни от програмистите, което може да бъде полезна практика в някои особени обстоятелства.

Източници[редактиране | редактиране на кода]

  1. Ada Representation Clauses and Pragmas // Архивиран от оригинала на 2011-05-23. Посетен на 2011-01-11.
  2. Шаблон:Cite manual
  3. Attributes – D Programming Language: Align Attribute // Посетен на 2012-04-13.