У меня есть несколько разделяемых библиотек, отображаемых в виртуальное адресное пространство моей задачи. Что происходит, когда я изменяю некоторые данные, например, в разделе .bss? Я делаю это с использованием kmap
с физическим адресом страницы в качестве аргумента. Я могу предложить два способа. Данные изменяются, и это влияет на все задачи, которые используют библиотеку, или определенная страница копируется из-за COW.Что происходит, когда я изменяю данные в общей библиотеке?
0
A
ответ
0
Я думаю, что это не так. Область .bss настраивается при загрузке исполняемого файла. В это время для нее выделяется пространство виртуальной памяти, и это пространство не будет использоваться совместно с какой-либо другой задачей. Первоначально страницы не будут выделены (по умолчанию mlock * может изменить это); они будут сбиты с ошибкой (то есть с нулевым требованием), как указано.
Я думаю, что даже если процесс вилки перед касанием памяти, новый процесс просто получит эквивалент (то же самое пространство виртуальной памяти, которое будет обозначено как нулевой спрос).
Так что если у вас уже есть физический адрес, я бы подумал, что это уже произошло, и вы ничего не измените, кроме одной страницы, принадлежащей текущему процессу.
Смежные вопросы
- 1. Что именно происходит, когда я изменяю количество экземпляров роли Azure?
- 2. Что происходит, когда я изменяю исходный код запущенной программы python?
- 3. Что происходит с глобальными и статическими переменными в общей библиотеке, когда она динамически связана?
- 4. Что происходит, когда я компилирую?
- 5. @FacesComponent в общей библиотеке
- 6. В Google App Engine, что происходит, когда я изменяю класс, связанный с сохраняемым объектом?
- 7. Я получаю ошибки компиляции в стандартной библиотеке. Что происходит?
- 8. форсировать исключения в общей библиотеке
- 9. undefined symbol в общей библиотеке
- 10. Что происходит, когда я reinstance в ObservableCollection
- 11. Что происходит с конкретной конфигурацией режима работы, когда я изменяю эту конфигурацию OSGi через веб-консоль?
- 12. Что происходит, когда я изменяю параметры трубопровода при выполнении на рабочем столе Dataflow?
- 13. (MVC) Контроллер в общей библиотеке?
- 14. Что происходит с глобальными переменными в общей библиотеке при вызове dlclose?
- 15. Абстрактные классы в общей библиотеке
- 16. UIPopoverController перемещается, когда я изменяю его размер
- 17. Что делать, если я изменяю файл Docker, когда сборка заканчивается?
- 18. Что происходит при компиляции с общей библиотекой?
- 19. Что происходит с этой общей функцией?
- 20. назначение адресов в общей библиотеке
- 21. Глобальная переменная в общей библиотеке
- 22. Что происходит, когда я дважды импортирую модуль в python
- 23. Ошибка в общей библиотеке Makefile
- 24. Что происходит, когда я вызываю sub vba
- 25. Что происходит, когда я загружаю сборку?
- 26. Что происходит, когда я «повторно инициализирую» указатель
- 27. Что происходит, когда я перезагружаю экземпляр EC2?
- 28. Что происходит, когда я sudo bash -c?
- 29. Что происходит, когда я добавляю зависимость Maven?
- 30. Что происходит, когда я связываюсь с AliasProperty?