Вопросы по теме 'copy-on-write'

Вся ли память, помеченная как копируемая при записи, копируется после единственного изменения одной части данных?
Мой вопрос, возможно, плохо сформулирован и проистекает из моего дилетантского понимания управления памятью. Меня беспокоит следующее: у меня есть Perl-скрипт, который многократно разветвляется. Насколько я понял из страницы форка в perldoc,...
689 просмотров

Почему нет сигнала SIGSEGV при копировании при записи?
В статье о копировании при записи в Википедии говорится, что копирование при записи обычно реализуется путем предоставления доступа к страницам только для чтения, так что, когда одна из них записывается, обработчик ловушки ошибки страницы может...
722 просмотров

Как копирование при записи в fork() обрабатывает несколько форков?
Согласно википедии (что может быть неправильно) Когда выполняется системный вызов fork(), создается копия всех страниц, соответствующих родительскому процессу, загружаемая ОС в отдельную область памяти для дочернего процесса. Но в некоторых...
5363 просмотров
schedule 01.08.2023

что такое память с копированием при записи
Поскольку я постоянно записываю данные в Redis, память, используемая копированием при записи, продолжает увеличиваться. Несмотря на то, что я пишу свою программу для сна достаточно долго, чтобы Redis мог завершить все фоновые сохранения (последнее...
4022 просмотров
schedule 02.08.2022

Унаследовано ли «неявное совместное использование» от классов Qt?
Если я создам подкласс неявно общего класса Qt (например, QList), будет ли мой подкласс также неявно совместно используемым? Я прочитал краткое введение в неявное совместное использование находится в документации QtCore5.3, но я не видел...
210 просмотров
schedule 04.04.2023

Реализация буфера копирования при записи с помощью mmap в Mac OS X
Я играл с буферами копирования при записи в Linux, и следующий пример, похоже, работает так, как задумано: #include <stdio.h> #include <stdlib.h> #include <sys/mman.h> #include <sys/types.h> #include <sys/stat.h>...
1605 просмотров
schedule 12.06.2022

Копирование при записи: какой статус после того, как отец и сын изменили страницу?
Когда вы разветвляете процесс, в начале отец и сын используют одну и ту же страницу памяти. Но если кто-то из них пишет на этой странице, она дублируется, чтобы на первого это изменение не повлияло. Это примерно то, что называется копированием при...
78 просмотров

Использует ли python копирование при записи при передаче неизменяемой переменной в функцию?
Когда я передаю строку функции, python копирует всю строку в новое место в памяти или ждет, пока я не попытаюсь изменить строку внутри функции? Спасибо :)
236 просмотров
schedule 09.10.2023

как я могу продемонстрировать КОПИРОВАНИЕ ПРИ ЗАПИСИ в fork(), linux
В соответствии с механизмом COW страницы из родительского региона не копируются в дочерний регион до записи. поэтому я сделал этот код, пожалуйста, посмотрите этот код #include <stdio.h> #include <stdlib.h> // for system() #include...
1067 просмотров
schedule 21.11.2022

Использование изменчивого поля в CopyOnWrite
"Стандартный" код копирования при записи выглядит так: ... private volatile SomeClass object; private ReentrantLock lock = new ReentrantLock(); public change (...) { lock.lock(); //set lock on write try { SomeClass newObject =...
55 просмотров
schedule 11.01.2023

Как работает COW после форка?
Я читал об использовании COW -подхода после выполнения fork в современных UNIX-подобных системах. Предположим, у нас есть процесс — P1. Он разветвляется; получаем еще один процесс — P2. Их виртуальная память поддерживается теми же физическими...
663 просмотров

Будет ли изменение ArraySlice создавать новый экземпляр массива?
var absences = [0, 2, 0, 4, 0, 3, 1, 0] let midpoint = absences.count / 2 var firstHalf = absences.prefix(upTo: midpoint) let secondHalf = absences.suffix(from: midpoint) Цитата от Apple: Ни срезы firstHalf, ни secondHalf не выделяют...
389 просмотров
schedule 01.08.2023

Как реализовать calloc
Я пытаюсь переписать malloc и calloc, мой вопрос о реализации calloc, а не о том, как его использовать. Всегда следует использовать calloc() вместо malloc()+memset() , потому что это может использовать преимущества copy-on-write (COW)....
3901 просмотров
schedule 15.03.2022

Неглубокое копирование в MATLAB
Многие люди сталкиваются с неожиданным поведением мелкого копирования, когда начинают работать с Python, и я хотел бы убедиться, что не совершу ни одной из этих ошибок в MATLAB (с которым у меня меньше опыта). Я прочитал эту статью о поведении...
486 просмотров
schedule 16.07.2023

Теряет ли родительский процесс возможность записи во время копирования при записи?
Скажем, у нас есть некий родительский процесс с произвольным объемом данных, хранящихся в памяти, и мы используем fork для порождения дочернего процесса. Я понимаю, что для того, чтобы ОС выполняла копирование при записи, на определенной странице в...
2956 просмотров

Пользовательский индекс для связанного списка в Swift
Пользовательский тип индекса для связанного списка Свифт 5.0, Xcode 10.3 Недавно я реализовал тип двусвязного списка в Swift. Когда я собирался сделать это, моей целью было предоставить пользователям ту же простоту использования, что и при...
556 просмотров

Как процесс fork() помечает родительские PTE только для чтения?
Я перерыл много ресурсов, но ничего конкретного по этому поводу не нашел: Я знаю, что в некоторых Linux-системах системный вызов fork() работает с копированием при записи; то есть родительский и дочерний элементы используют одно и то же адресное...
584 просмотров

Аномалия в CoW (копирование при записи) массива Swift с элементами ссылочного типа
Мое понимание: Массивы в Swift являются типами значений. Массивы и другие коллекции в Swift имеют механизм CoW (Copy on Write), поэтому, когда массив передается в качестве аргумента функции или просто назначается другой переменной, Swift...
180 просмотров
schedule 04.09.2022