developing.ru - клуб программистов Здесь может быть и ваша реклама.
developing.ru >технология COM >
Михаил Безверхов
aspid@developing.ru

Память – что это такое?

Каждый программист знает, что такое "память" – умение обращаться с нею приходит буквально с первой же программы. И каждый инженер-электронщик тоже знает, что такое "память", это теперь совершенно необходимый радиоэлектронный компонент. Но, если говорить точно, это – разные "памяти", поскольку оба специалиста имеют дело лишь с какой-то, удобной в данной области, моделью, представляющей оперативное запоминающее устройство (ОЗУ) – именно так оно "официально" называется. При этом модель программиста – очень проста, ему нет надобности работать с более сложной моделью в которой память как-то организована, модель инженера по аппаратной части – сложнее, но она почти совершенно игнорирует важные для программиста аспекты. Иногда эти модели где-то и пересекаются, а тогда перед программистом выдвигается требование, наподобие "данные должны быть выровнены на границу слова"...

Программисту, работающему на языке высокого уровня практически никогда не приходится задумываться о том, как же именно организована память. Для него вся память – большая непрерывная строка байтов. Она начинается с адреса 0 и кончается каким-то большим адресом N. Поскольку распределением памяти занимается операционная система, то просто так использовать память нельзя – её сначала нужно у операционной системы "попросить". Система вернёт адрес, с которого "к памяти обращаться можно", а если обращаться к ней вне запрошенного фрагмента – можно что-то разрушить и программа, а то и система, зависнут. Вот и вся модель - она справедлива как для пишущих на ассемблере, так и для пишущих на Visual Basic. Всё просто.

Тем не менее, на самом-то деле всё обстоит значительно сложнее! Огромный пласт промежуточного программного и аппаратного обеспечения просто создаёт у программиста иллюзию его простой и удобной в программировании модели обращения с памятью, а "на самом деле" всё сделано совсем не так! Чтобы понять по какой причине и с какой целью архитектура памяти устроена именно так, как она ... устроена давайте вкратце рассмотрим её от самого начала – от аппаратной части.

назадсодержаниедальше
Авторские права © 2001 - 2004, Михаил Безверхов
Публикация требует разрешения автора

разделы сайта

форум

технология COM

оптимизация сайтов


© 2000-2004 Клуб программистов developing.ru