2016-03-11 2 views
0

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

ответ

0

Я так думаю, когда процесс завершается, ОЗУ очищает его. Однако ваше право, поскольку такие вещи, как веб-страницы, будут храниться в кеше, когда они будут повторно вызваны. Например: Вы открываете Google, а затем переходите на другую вкладку и закрываете открытую страницу Google, когда вы переходите в Google, она загружается быстрее.

Тем не менее, я думаю, что, по вашему мнению, если вся программа E.G - Google Chrome или Safari - закрыта, веб-страница, которую вы только что открыли, осталась в кеше? Нет, когда программа закрыта, все ее относительные данные также прекращаются, чтобы полностью закрыть программу.

Я предполагаю, что эта страница имеет некоторую информацию о нем - https://www.wikipedia.org/wiki/Shared_memory

0

Есть наименьших четыре способа, что вы описываете, может произойти.

Во-первых, системное адресное пространство разделяется всеми процессами. Операционная система может сохранять данные там, которые выживают после смерти процесса.

Во-вторых, процессы могут отображать логические страницы на один и тот же физический кадр страницы. Прекращение одного процесса не приводит к тому, что кадр страницы будет освобожден от других процессов.

В-третьих, некоторые операционные системы поддерживают перезаписываемые разделяемые библиотеки.

В-четвертых, файлы с отображением памяти.

Возможно, есть и другие.

Смежные вопросы