В чем основные отличия между привязкой к общему объекту или обычным объектам? Также как можно поделиться некоторыми переменными между некоторыми программами и узнать, что наши переменные никогда не меняются другой программой?Различия между общим объектом и обычной библиотекой в Linux
ответ
Переменные не распространяются между программами, когда-либо. (Хотя специально разделяемая разделяемая память может быть разделена, это «объект», а не «переменная» в терминологии C.) В чем вы смущены, так это то, что база данных - это то, что разделяют между процессами, и это это то же самое, будь то основная программа (статическая или динамическая связь) или файл общей библиотеки. Реализация виртуальной памяти операционной системы заботится об использовании одной и той же страницы физической памяти для нескольких процессов, когда содержимое не изменяется от того, что находится на диске, и делает физические дубликаты страниц во время выполнения, если они написаны. Все это прозрачно для вашего приложения, которое видит линейное 32- или 64-разрядное адресное пространство, состоящее только из собственного кода и данных.
На практике система динамической компоновки выполняет ряд оптимизаций хранения, которые изолируют данные, которые будут изменяться за один процесс на несколько страниц, позволяя подавляющему большинству страниц распределяться между процессами, использующими один и тот же исполняемый файл или те же библиотеки.
- 1. Различия между программой и библиотекой
- 2. Различия между библиотекой пользовательского контроля WPF и библиотекой обычного класса?
- 3. Различия между CLR между Silverlight и обычной .NET Framework?
- 4. различия между функциональным объектом и указателем функции?
- 5. Различия между PortletRequest и объектом PortletResponse
- 6. Различия между методом класса и объектом
- 7. Различия между WxPython между Windows и Linux
- 8. Различия между ActionListener между Windows и Linux
- 9. Проблема с общим объектом Linux FreeBSD
- 10. Различия между исправлениями между ядром android и ядром linux linux
- 11. Различия в размере файла изображения между библиотекой Imagemagick и GD
- 12. php md5_file различия между окнами и linux
- 13. Различия Calloc между MS Windows и Linux?
- 14. Разница между общим типом и объектом и дикой картой
- 15. Различия между фреймворчерами android и linux framebuffer
- 16. В чем заключаются основные различия между экземпляром и объектом класса?
- 17. Различия между проектом «Добавить ссылку ...» и общим проектом
- 18. CMake различия между ссылками, когда цель является библиотекой, и исполняемым
- 19. Различия между библиотекой визуальных компонентов (vcl) и WinApi
- 20. DNN - различия между библиотекой документов и управлением цифровыми активами
- 21. между библиотекой классов и портативной библиотекой классов в визуальной студии
- 22. Различия в версии библиотеки между linux distros
- 23. WCF - Различия между прокси-объектом, объектом службы и объектом обычного класса
- 24. JPA: Различия между измененным отдельным объектом и оригинальным
- 25. Условное выражение для различия между существующим и несуществующим объектом?
- 26. Разница между объектом и NSObject
- 27. Разница между библиотекой классов и библиотекой классов ASP.NETvNext?
- 28. Каковы различия между объектом буфера кадра и объектом Pixel Buffer в OpenGL?
- 29. Каковы различия между трубами в Windows и Linux?
- 30. Различия между SWT/JFCE в Linux и OS X
Спасибо за ваш ответ, если я правильно ответил, переменные сначала разделяются, а затем, если процесс хочет их изменить, они отображаются в пространство адресов процессов. правильно? –
Нам нужно быть осторожными, когда мы говорим, что переменные являются общими. Общий объект может иметь в нем переменные. Процесс, который использует эту общую библиотеку, будет иметь свою собственную копию переменной. И.Е. prog-A и prog-B могут использовать одну и ту же разделяемую библиотеку. Они будут иметь копии переменной foo из общей библиотеки, но prog-A foo отличается от foo prog-B. –
Сказанное выше, есть также концепция общей памяти. Общая память может быть создана и использована любым процессом, с или без общих объектов. Это разные концепции, которые «разделяли» их имена. Общая память - это, по существу, именованная область памяти, которую процессы могут отображать в их виртуальное адресное пространство. Общая память может использоваться для обмена данными между двумя различными процессами. –