Бытует мнение, что у собак очень хорошая память, способность к обучению и дрессировке. Вполне возможно эти качества и привели к тому, что сегодня многие из собак вступили в прочные мутуалистические отношения с людьми, чего не сказать о динго. Существует теория, что динго некогда (около 3500 лет назад) были завезены в Австралию переселенцами в качестве домашних питомцев [ Fillios, M. A., & Taçon, P. S. C. (2016)], но спустя время совершенно забыли о своей одомашненности.
Именно поэтому Динго Обломинго решил обратить особое внимание на запоминающие устройства в ЭВМ.
Память или запоминающие устройства — это компонент компьютера, в котором хранятся программы и данные.
Прежде чем Обломинго нырнет в чертоги памяти, хотелось бы обговорить некоторые моменты, которые так или иначе могут касаться этой тематики.
Вершина пирамиды
Компьютеры способны хранить большие объемы информации. Для рационального распределения разного рода информации, память в компьютере имеет иерархическую структуру. На вершине этой иерархической пирамиды находится дорогостоящая, быстрая память с небольшим объемом (регистры, кэш-память (сверхоперативная)). Такая память, например, мало подходит для долгосрочного хранения информации, которая, к тому же может редко использоваться. Зато такая память отлично подходит для временного хранения небольших наборов данных, участвующих в каких либо процессах и, потому, имеет значение скорость передачи этой информации.
Основная память компьютера представляет собой энергозависимую оперативную память (ОЗУ). В ней располагаются данные, которые используются процессором для их обработки (например, в процессе выполнения программ). Так как данные в оперативной памяти постоянно обновляются, изменяются, реализован механизм записи и чтения данных на дисковые устройства. В случае, если процессор не находит необходимых данных для обработки в оперативной памяти, эти данные загружаются с дискового устройства (например, жесткий диск (HDD)) в оперативную память. Такой механизм ложится в основу виртуальной памяти компьютера, позволяющей загружать и обрабатывать программы большего размера нежели размер физической (оперативной) памяти. Участки информации загружаемые в оперативную память называются страницами, а сам способ организации памяти называется страничным. Понятие виртуальной памяти является абстракцией уровня операционной системы и, потому в рамках данной темы подробнее рассматриваться не будет. 😭
Another Brick in the Wall
Основной единицей хранения данных в памяти является двоичный разряд, который называется битом. Бит может содержать 0 или 1. Биты информации хранятся в ячейках памяти, у каждой из которых имеется свой собственный адрес. С помощью адреса компьютер может обратиться к любой из этих ячеек. Ячейки могут содержать в себе один и больше битов. Чаще всего ячейки вмещают в себя 8 бит, такие ячейки называются байтами. Байты группируются в слова. В компьютере с 32-разрядными словами на каждое слово приходится 4 байт, а в компьютере с 64-разрядными словами - 8 байт. Слово, как отдельная единица бывает необходимым, так как многие команды в компьютере совершают операции над целыми словами.
Порядок — прежде всего
Байты в слове могут нумероваться слева направо или справа налево. Первый вариант это память с прямым порядком следования байтов (big endian), второй — память с обратным порядком следования байтов (little endian).
Чтобы понять разницу, рассмотрим пример. 4-байтное целое число 0x01020304 (форма записи чисел в 16-ричной системе счисления (hex)) будет сохранено в памяти системы big endian следующим образом:
Та же самая величина, которая будет храниться в памяти системы little endian, разместится в противоположном порядке:
Знание о разнице системы устройства памяти может понадобиться в случаях, когда происходит обмен данными между двумя машинами, работающими на основе разных систем.
Если вы очень сильно хотите узнать какая система работает в вашем компьютере Обломинго предлагает использовать народный метод:
Кстати, термины little endian и big endian заимствованы из книги Д.Свифта "Путешествия Гулливера", в сюжете которой начинается гражданская война между теми, кто предпочитает разбивать вареные яйца на большом конце (big-endians), и теми, кто предпочитает разбивать их на маленьком конце (little-endians).
Храним данные
Для долгосрочного хранения данных используются разновидности магнитных дисков и твердотельные накопители (энергонезависимая флэш-память). Одной из разновидностей устройств, использующих в своей основе магнитные диски, являются винчестеры (или жесткие диски). В винчестерах несколько магнитных пластин (носителей информации в количестве от 1 до 12) расположены друг над другом и вращаются на шпинделе. Каждая поверхность диска снабжена считывающей головкой. Во время вращения дисков подвижные считывающие головки считывают информацию с определенных участков диска. Диски могут вращаться с различной скоростью: 5400, 7200, 10800 оборотов в минуту, что может в значительной степени влиять на скорость считывания информации.
Информация на магнитном диске находится в виде битов, последовательно записанных на дорожках (кольцо намагниченного материала) в круговом порядке, так, что каждая дорожка формирует отдельную окружность. Дорожки разделены на секторы фиксированной длины. В секторах записываются отдельные порции информации (обычно около 512 байт). Перед данными располагается преамбула, которая позволяет считывающей головке синхронизироваться перед чтением или записью. Между соседними секторами находится межсекторный интервал. Совокупность дорожек, расположенных на одном расстоянии от центра, называется цилиндром.
***
Хотя это и не все возможные носители информации, с таким количеством устройств Динго уже может не беспокоиться о большом количестве информации, которую приходится держать в голове и тогда он сказал: "Зачем мне что-то запоминать, когда я могу легко посмотреть это в книге." Этим Динго был Альберт Эйнштейн.
Подписывайся на канал, чтобы вместе с Динго погружаться в мир интересных фактов из мира науки. У нас бывает интересно!