Как я понимаю, создание процессов, каждый процесс имеет свое собственное пространство в ОЗУ для его кучи, данных и т. Д., Которое выделяется при его создании. Многие процессы могут совместно использовать свои данные и пространство для хранения. Но так как завершение процесса стирает выделенную память (так же как и его кеши), мне было интересно, возможно ли, что многие (похожие) процессы совместно используют кеш в памяти, который не выделяется ни одному конкретному процессу, чтобы его можно было использовать даже когда эти процессы прекращаются, а другие создаются. Это теоретический вопрос со студенческой точки зрения, поэтому меня просто интересует общее состояние операционной системы, не добавляя к ним больше возможностей для ее достижения. Например, я думаю о веб-сервере, который использует только однопоточные процессы (возможно, из-за отсутствия поддержки многопоточности), поэтому большинство созданных процессов выполняют аналогичные задания, например, получение определенной страницы.Может ли много (похожих) процессов использовать общий кэш RAM?
ответ
Я так думаю, когда процесс завершается, ОЗУ очищает его. Однако ваше право, поскольку такие вещи, как веб-страницы, будут храниться в кеше, когда они будут повторно вызваны. Например: Вы открываете Google, а затем переходите на другую вкладку и закрываете открытую страницу Google, когда вы переходите в Google, она загружается быстрее.
Тем не менее, я думаю, что, по вашему мнению, если вся программа E.G - Google Chrome или Safari - закрыта, веб-страница, которую вы только что открыли, осталась в кеше? Нет, когда программа закрыта, все ее относительные данные также прекращаются, чтобы полностью закрыть программу.
Я предполагаю, что эта страница имеет некоторую информацию о нем - https://www.wikipedia.org/wiki/Shared_memory
Есть наименьших четыре способа, что вы описываете, может произойти.
Во-первых, системное адресное пространство разделяется всеми процессами. Операционная система может сохранять данные там, которые выживают после смерти процесса.
Во-вторых, процессы могут отображать логические страницы на один и тот же физический кадр страницы. Прекращение одного процесса не приводит к тому, что кадр страницы будет освобожден от других процессов.
В-третьих, некоторые операционные системы поддерживают перезаписываемые разделяемые библиотеки.
В-четвертых, файлы с отображением памяти.
Возможно, есть и другие.
- 1. Имеет ли кэш-память iOS по умолчанию в памяти? (RAM)
- 2. Слишком много процессов apache
- 3. Как использовать общий кэш в asp.net
- 4. Имеют ли апплеты и браузер общий кэш?
- 5. Много короткоживущих процессов с глобальным счетчиком процессов
- 6. Может ли RAM обрабатывать разные типы данных?
- 7. Как слить много похожих таблиц?
- 8. Как создать много похожих ViewControllers
- 9. SQLAlchemy и SQLite общий кэш
- 10. Нормально ли так много рубиновых процессов работать?
- 11. Может ли кэши хранить данные из нескольких процессов?
- 12. Общий кэш для общего шаблона?
- 13. Слишком много процессов PhantomJS
- 14. Узел: одно ядро, много процессов
- 15. JPA общий кэш/кэш второго уровня в WildFly
- 16. Как приложение Windows может использовать несколько процессов?
- 17. C# как создать много похожих переменных
- 18. Крон php5 слишком много процессов
- 19. Может ли общий параметр Nullable?
- 20. nodeJS слишком много дочерних процессов?
- 21. windows azure: общий кэш - удалить все?
- 22. Слишком много процессов dovecot: checkpassword-reply
- 23. D3D Text использует слишком много RAM ..?
- 24. .NET-приложение, использующее слишком много ram
- 25. Как работает общий кэш в SQLite?
- 26. Может ли лаковый кэш быть взломан?
- 27. Celeryd запускает слишком много процессов
- 28. Как реализовать много похожих методов для определения?
- 29. Общий кэш памяти для несериализованных данных
- 30. w3 Общий кэш Кроу-браузер проблемы