Оперативная память современных ЭВМ массового производства способна считывать и записывать данные примерно каждые 2 наносекунды (нс., 1нс = 10-9 сек.), а центральный процессор может выполнить машинную машинную операцию над содержимым своих регистров примерно за 1нс.
На современных ЭВМ проблема несоответствия скорости работы оперативной памяти и центрального процессора решается в совокупности несколькими способами. Так как главным тормозом в работе является оперативная память, эту па-мять стали делать таким образом, чтобы за одно обращение к ней она выдавала не по одному байту, а сразу по несколько байт с последовательными адресами. Для этого оперативную память разбивают на блоки (обычно называемые банками памяти), причём эти банки памяти могут работать параллельно. Этот приём называют расслоением памяти. 80% своего времени цен-тральный процессор вынужден ждать, пока из оперативной памяти поступят нужные команды и дан-ные. Для того чтобы исправить эту неприятную ситуацию, в архитектуру современных компьютеров встраивается специальная память, которую называют памятью типа кэш, или просто кэшем. Кэш делается на очень быстрых интегральных схемах статической памяти и работает с такой же скоростью, как и сам центральный процессор, т.е. может, например, выдавать по 8 байт за каждую наносекунду. Для программиста кэш является невидимой памятью в том смысле, что эта память не адресуемая, к ней нельзя обратиться из программы по какой-либо команде чтения или записи дан-ных. Конечно, существуют привилегированные команды для работы с кэшем как с единым целым, это, например, команда очистки кэша от всех находящихся там команд и данных. Когда центральному процессору нужна какая-то команда или данное, то сначала он смотрит, не находится ли уже эта команда или данные в кэше, и, если они там есть, читает их оттуда, не обраща-ясь к оперативной памяти. Разумеется, если требуемой команды или данных в кэше нет, то централь-ный процессор вынужден читать их из относительно медленной оперативной памяти, однако копию прочитанного он обязательно оставляет при этом в кэше. Особая ситуация складывается, если требуется что-то записать в кэш, а там нет свободного места. В этом случае по специальному алгоритму из кэша удаляются некоторые данные, обычно те, к которым дольше всего не было обращения из центрального процессора. Проще всего это сделать, если вести очередь обра-щений к данным в кэше, при этом при каждом чтении или записи некоторого данного, оно ставится в начало этой очереди. Легко понять, что при этом в конце очереди автоматически соберутся те дан-ные, к которым дольше всего не было обращения. При этом, если эти данные в кэш памяти изменя-лись, то они переписываются в оперативную память. В архитектуре некоторых ЭВМ может быть два отдельных кэша, один для команд и другой для данных. При этом обычно команды запрещается ме-нять, поэтому в кэш команд никогда не производится запись, что позволяет упростить реализацию этого кэша.
Таким образом, в кэше накапливаются наиболее часто используемые команды и данные выпол-няемой программы, например, все команды не очень длинных циклов после их первого выполнения будут находиться в памяти типа кэш.
Виртуальная память
Виртуальная память позволяет модифицировать ресурсы памяти, сделать объём оперативной памяти намного больше, для того чтобы пользователь, поместив туда как можно больше программ, реально сэкономил время и повысил эффективность своего труда. "Открытие" виртуальной памяти (далее ВП) внесло огромную контрибуцию в развитие современных технологий, облегчило работу, как профессионального программиста, так и обычного пользователя, обеспечивая процесс более эффективного решения задач на ЭВМ.Виртуальная память представляет собой совокупность всех ячеек памяти оперативной и внешней, имеющих сквозную нумерацию от нуля до предельного значения адреса.Использование ВЗУ очень удобно, так как в это время пользователь оперирует с общим адресным пространством и ему безразлично, какая физическая память при этом используется внешняя или внутренняя. При работе ВП всего лишь подразумевается различие между виртуальными адресами и физическими.
При работе машины с ВП, используются методы страничной, сегментной и сегментно-страничной организации памяти.
(страничная организация). Нужно отметить очень важный пункт, что при СО, все ресурсы памяти, как оперативной, так и внешней представляются для пользователя единым целым. Пользователь работает с общим адресным пространством и не задумывается, какая память при этом используется: оперативная или внешняя, а эта общая память носит название виртуальной (моделируемой). Виртуальная память разбивается на страницы, которые содержат определённое фиксированное количество ячеек памяти. При этом одна страница математической памяти не может быть больше или меньше других все страницы должны быть одинаковы по количеству ячеек. Передача информации между памятью и диском всегда осуществляется целыми страницами. Страницы, в отличие от сегментов, имеют фиксированную длину, обычно являющуюся степенью числа 2, и не могут перекрываться.
При использовании метода сегментно-страничной организации ВП, пользовательские программы разбиваются на отдельные массивы. Эти массивы независимые участки называются сегментами. При сегментной организации виртуальный адрес по-прежнему является двумерным и состоит из двух полей - номера сегмента и смещения внутри сегмента. Заметим, что с точки зрения ОС сегменты являются логическими сущностями и их главное назначение хранение и защита однородной информации (кода, данных и т.д.). Отличие сегмента от страницы состоит в том, что длина сегмента может изменяться в процессе работы.
В целом, применение виртуальной памяти является весомым вкладом в прогрессировании современных компьютерных технологий и большим шагом в развитии программирования, открывающим профессиональному программисту путь к созданию мощных мультизадачных систем и комплексов. Применение виртуальной памяти широко оценивается специалистами в компьютерной медицине, научной кибернетике, профессиональном программировании.
Система адресации
Система адресации данных — это одна из самых важных составляющих файловой системы. Именно она позволяет находить нужный файл среди множества как пустых, так и занятых блоков на диске.Файловая система ext2 использует следующую схему адресации блоков файла. Для хранения адреса файла выделено 15 полей, каждое из которых состоит из 4 байт. Если файл умещается в 12 блоков, то номера соответствующих кластеров непосредственно перечисляются в первых двенадцати полях адреса. Если размер файла превышает 12 блоков, то следующее поле содержит адрес кластера, в котором могут быть расположены номера следующих блоков файла. Таким образом, 13-е поле используется для косвенной адресации.При максимальном размере блока в 4096 байт кластер, соответствующий 13-му полю, может содержать до 1024 номеров следующих блоков файла. Если размер файла превышает 12+1024 блоков, то используется 14-е поле, в котором находится адрес кластера, содержащего 1024 номеров кластеров, каждый из которых ссылается на 1024 блока файла. Здесь применяется уже двойная косвенная адресация. И наконец, если файл включает более 12+1024+1048576 блоков, то используется последнее 15-е поле для тройной косвенной адресации.Данная система адресации позволяет при максимальном размере блока в 4096 байт иметь файлы, размер которых превышает 2 TB.