Сохранённый файл и рабочие данные различаются
Накопитель предназначен для длительного хранения: на нём могут оставаться документы и программы после выключения питания. Оперативная память служит рабочим пространством для выполняемых программ и используемых ими данных. Обычная оперативная память энергозависима: её содержимое не сохраняется при прекращении питания. Представим текстовый редактор с вымышленным списком растений. При открытии документа программа получает данные с накопителя и работает с их представлением в памяти. Изменение строки на экране ещё не означает, что новая версия надёжно сохранена в файле. Автосохранение, временные копии и восстановление зависят от конкретной программы, поэтому нельзя выводить их наличие из самого факта открытого окна.
Кэш сокращает часть обращений к более дальней памяти
Процессор использует небольшие быстрые области памяти, в которых могут находиться нужные ему данные и инструкции. Если запрошенное содержимое уже есть в кэше, говорят о попадании. Если его нет, возникает промах и требуется обращение к следующему уровню иерархии. У реальных процессоров организация сложнее одной коробки с карточками: возможны несколько уровней и разные правила работы. Польза кэша связана с характером обращений. Когда одни данные нужны повторно, сохранённая поблизости копия может оказаться полезной. Однако нельзя обещать одинаковое ускорение любой программе. Размеры данных, порядок доступа и особенности вычислений влияют на результат. Само наличие большого объёма памяти ещё не объясняет время выполнения задачи.
Бумажная модель показывает принцип, а не устройство целиком
Возьмём условный кэш на две карточки. При заполнении будем удалять ту, к которой обращались наиболее давно. Это заранее выбранное правило учебной модели, а не утверждение обо всех процессорах. Последовательность запросов обозначим буквами: А, Б, А, В, А. Первый запрос А даёт промах, затем промах даёт Б. Повторное А уже находится в кэше. При запросе В места не хватает: удаляем Б, потому что А использовалась позже. Последнее А снова даёт попадание. Итого получаются три промаха и два попадания. Такая запись помогает увидеть, почему важно учитывать последовательность, а не только число разных карточек.
Попробуйте на практике
Смоделируйте обращения к данным на бумаге. Не меняйте настройки компьютера и не удаляйте настоящие файлы.
- Нарисуйте две пустые ячейки кэша и отдельно запишите последовательность А, Б, А, В, А. Примите правило удаления наиболее давно использованной карточки.
- Для каждого запроса отметьте попадание или промах. После промаха поместите карточку в свободную ячейку либо замените подходящую по правилу.
- После каждого шага запишите содержимое обеих ячеек и отметьте, к какой карточке обращались последней. Это позволит проверить выбор при замене.
- Подсчитайте попадания и промахи. Затем объясните отдельным предложением, почему эта модель ничего не говорит о том, сохранён ли документ на накопителе.
Как проверить результат. Правильный итог — два попадания и три промаха; при появлении В вытесняется Б. В пояснении должны различаться ускорение доступа к рабочим данным и длительное сохранение файла.
Частые вопросы
Если свободного места на накопителе много, оперативной памяти точно хватает?
Нет. Это разные ресурсы с разными задачами. По свободному месту для файлов нельзя определить, достаточно ли рабочей памяти для одновременно выполняемых программ.
Можно ли по этой модели рассчитать скорость настоящего компьютера?
Нет. Здесь не учтены реальные задержки, размеры блоков, уровни кэша и другие особенности. Модель объясняет попадания и замены, но не является измерением производительности устройства.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.