dbo:abstract
|
- Copy-on-write (COW) je v programování technika optimalizace a správy dat, která při kopírování (nezměněných) dat nevede ihned k jejich duplikaci (v paměti, na disku atp.), nýbrž je duplikace odložena na později (ke zkopírování dochází až v okamžiku první změny). Za cenu malého zvýšení režie (pro evidenci úseků dat sdílených mezi originálem a kopií) je možné dosáhnout významné úspory systémových prostředků určených pro uložení dat. COW se používá při vzniku nových procesů (např. systémové volání fork v unixových systémech, duplikaci virtuálních strojů, vytváření u souborových systémů a podobně). (cs)
- Das Copy-On-Write-Verfahren (kurz COW genannt, englisch wörtlich für „Kopieren-beim-Schreiben“) ist in der Datenverarbeitung eine Optimierungsmethode zur Vermeidung unnötiger Kopien und Kopiervorgänge, beispielsweise zwischen Prozessen unter unixartigen Systemen, insbesondere bei oder nach einem fork-Systemaufruf. Die Grundidee des Verfahrens ist, dass die Kopie erst dann „real“ angefertigt wird, sobald sie von einem der Beteiligten verändert wird. Solange alle Beteiligten ihre Kopie nicht verändert haben, reicht es, das Original ein einziges Mal zu speichern.Der Kopie wird zwar eine eigene Inode zugewiesen, die darin gespeicherten Zeigerstrukturen, welche auf die Datenblöcke zeigen, stimmen allerdings mit denen des Originals überein. Erst bei Veränderung einer der Datenblöcke, wird für die Änderung ein neuer Datenblock verwendet und der entsprechende Zeiger neu gesetzt. Bei nicht geänderten Datenblöcken, können weiterhin die originalen Blöcke referenziert bleiben. (de)
- Copy-on-write (COW), sometimes referred to as implicit sharing or shadowing, is a resource-management technique used in computer programming to efficiently implement a "duplicate" or "copy" operation on modifiable resources. If a resource is duplicated but not modified, it is not necessary to create a new resource; the resource can be shared between the copy and the original. Modifications must still create a copy, hence the technique: the copy operation is deferred until the first write. By sharing resources in this way, it is possible to significantly reduce the resource consumption of unmodified copies, while adding a small overhead to resource-modifying operations. (en)
- En Informática, copy-on-write (inglés para «copiar al escribir», a veces abreviado COW) es una política de optimización utilizada en programación. Si múltiples procesos piden recursos que inicialmente son indistinguibles (iguales), se les devuelven punteros al mismo recurso; en el momento en que un proceso intenta modificar su "copia" del recurso, se crea una copia auténtica para prevenir que los cambios producidos por dicho proceso sean visibles por todos los demás. Todo ocurre de forma transparente para los procesos. La principal ventaja de este método es que no se crea ninguna copia adicional del recurso si ningún proceso llega a realizar modificaciones. (es)
- Le copy-on-write ou copie à l’écriture (souvent désigné par son sigle anglais COW) est une stratégie d'optimisation utilisée en programmation informatique. L'idée fondamentale : si de multiples appelants demandent des ressources initialement impossibles à distinguer, vous pouvez leur donner des pointeurs vers la même ressource. Cette fiction peut être maintenue jusqu'à ce qu'un appelant modifie sa « copie » de la ressource. À ce moment-là, une copie privée est créée. Cela évite que le changement soit visible ailleurs. Ceci se produit de manière transparente pour les appelants. L'avantage principal est que si un appelant ne fait jamais de modifications, la copie privée n'est jamais créée. L'utilisation principale du Copy-on-write est la mémoire virtuelle de systèmes d'exploitation. Lorsqu'un processus crée une copie de lui-même, les pages de la mémoire qui doivent être modifiées soit par le processus soit par sa copie sont marquées copy-on-write. Lorsque le processus modifie une page mémoire, le noyau du système d'exploitation intercepte l'opération et copie la page mémoire pour que les changements de la mémoire d'un processus n'affectent pas celle d'un autre. Une autre utilisation est la fonction calloc. Elle peut être implémentée en ayant une page de mémoire vive remplie par des zéros. Quand la mémoire est allouée, les pages retournées font toutes référence à la page de zéros et sont marquées copy-on-write. De cette façon, la quantité de mémoire vive allouée pour le processus n'augmente pas tant que les données ne sont pas écrites dans le tampon retourné par calloc. Typiquement, cela n'est fait que pour les allocations mémoire importantes. Le Copy-on-write peut être implémenté en disant à la MMU que certaines pages dans l'espace d'adresses du processus sont en lecture seule.Quand des données sont écrites dans ces pages, la MMU lève une exception qui est gérée par le noyau. Celui-ci alloue de la mémoire vive et fait que la page écrite corresponde à ce nouvel endroit de la mémoire vive. L'utilisation frugale de la mémoire est un avantage majeur du COW. Puisque l'utilisation de la mémoire vive ne s'accroît que quand des données sont stockées, des tables de hachage très efficaces peuvent être implémentées. Elles utilisent à peine plus de mémoire que les objets qu'elles contiennent. Néanmoins, de tels programmes risquent de tomber à court d'espace de mémoire virtuelle. Les pages virtuelles non utilisées par la table de hachage ne peuvent pas être utilisées par d'autres parties du programme. Le principal problème du COW au niveau du noyau est la complexité qu'il ajoute, mais les soucis sont similaires à ceux levés par des problématiques plus basiques de la mémoire virtuelle comme paginer vers le disque. Quand le noyau écrit ces pages, il doit les copier comme si elles étaient marquées copy-on-write. Le COW peut être utilisé en dehors du noyau, dans des bibliothèques logicielles, du logiciel applicatif ou système. La classe string fournie par la Standard Template Library de C++ a été conçue pour supporter des implémentations COW. Un des risques du COW dans ces contextes provient du code avec plusieurs processus légers où des verrous additionnels sont requis pour les objets dans différents processus légers pour qu'ils partagent la même représentation. La complexité d'implémentation induite peut annuler les bénéfices supposés de la technique COW. Illustration de la technique de COW dans la STL C++ std::string x("Hello");std::string y = x; // x et y utilisent le même tampony += ", World!"; // maintenant y utilise un tampon différent // x continue à utiliser le même buffer Les logiciels de virtualisation/émulation tels que Bochs, QEMU ou UML utilisent le COW pour le stockage virtuel sur disque. Cela permet une grande réduction de l'espace disque requis quand de multiples machines virtuelles sont fondées sur la même image disque. De plus les performances sont accrues car les lectures sur le disque peuvent être cachées en RAM et les lectures suivantes pour les autres machines virtuelles peuvent être servies à partir du cache. (fr)
- コピーオンライト (Copy-On-Write) とは、コンピュータプログラミングにおける最適化戦略の一種である。COWと略記することもある。 コンピュータ内部で、ある程度大きなデータを複製する必要が生じたとき、愚直な設計では、直ちに新たな空き領域を探して割り当て、コピーを実行する。ところが、もし複製したデータに対する書き換えがなければその複製は無駄だったことになる。 そこで、複製を要求されても、コピーをした振りをして、とりあえず原本をそのまま参照させるが、ただし、そのままで本当に書き換えてはまずい。原本またはコピーのどちらかを書き換えようとしたときに、それを検出し、その時点ではじめて新たな空き領域を探して割り当て、コピーを実行する。これが「書き換え時にコピーする」、すなわちコピーオンライト (Copy-On-Write) の基本的な形態である。 基盤となる考え方は、複数の(何らかの)要求者がリソースを要求するときに、少なくとも当初はそれらの要求を区別する必要がないときに同じリソースを与える、というものである。これは要求者がリソースを「更新」しようとするまで保持され、「更新」が他者に見えないようにリソースの個別のコピーを必要になった時点で作成する。要求者からはこの一連の動きは見えない。第一の利点は要求者が全く更新しなければ、個別のコピーを作成する必要が生じないという点である。 (ja)
- La cosiddetta strategia copy-on-write (espressione inglese approssimativamente traducibile con "copia in caso di scrittura") è una tecnica di ottimizzazione informatica mirante alla riduzione delle operazioni di duplicazione delle risorse del sistema (generalmente strutture dati o aree di memoria) attraverso l'eliminazione delle copie non necessarie. (it)
- Cópia em gravação (em Inglês: Copy-on-write (CoW ou COW)), às vezes chamado de compartilhamento implícito ou sombreamento, é uma técnica de gestão de recursos usada na programação de computadores para implementar eficientemente uma operação "duplicar" ou "copiar" em recursos modificáveis.Se um recurso é duplicado, mas não modificado, não será necessário criar um novo recurso; o recurso pode ser compartilhado entre a cópia e o original. As modificações ainda devem criar uma cópia, daí a técnica: a operação de cópia é adiada para a primeira gravação. Ao compartilhar recursos dessa maneira, é possível reduzir significativamente o consumo de recursos de cópias não modificadas, ao mesmo tempo em que adiciona uma pequena sobrecarga às operações de modificação de recursos. (pt)
- Kopiowanie przy zapisie (ang. copy-on-write, COW) – technika optymalizacji używana w programowaniu komputerów, gdy istnieje potrzeba współdzielenia względnie dużej ilości danych (np. między wątkami czy procesami), co do których nie ma pewności, że zostaną zmodyfikowane przez używające je obiekty. Początkowo zamiast rzeczywistego, kosztownego (czasowo i pamięciowo) kopiowania pamięci zwracany jest wskaźnik do oryginalnych danych; kopiowanie jest wykonywane dopiero wtedy, gdy zachodzi potrzeba ich modyfikacji. Największą zaletą tej techniki jest to, że jeżeli nigdy nie będą realizowane żadne zmiany, to nie będzie również potrzeby wykonywania kopii. (pl)
- Copy-on-write (även kallad COW, engelska: "kopiera vid skrivning") är en optimeringsstrategi som används av datorprogrammering, vanligen i operativsystemet. Den innebär att kopior skapas endast vid behov, nämligen då kopiorna ändras var för sig. Idén bakom detta är om flera kallar på en resurs, pekas alla till samma källa. Om någon gör en förändring på källan skapas en lokal kopia, så ingen annan påverkas av förändringen. För var och en av processerna ser det ut som om de hela tiden skulle ha en egen kopia; skapandet av referenser och lokala kopior sköts i bakgrunden av operativsystemet. Copy-on-write kan enkelt implementeras i moderna datorarkitekturer där processerna använder minnesadresser och den delade minnesrymden kan märkas som skrivskyddad. Då endera processen skriver till en sida som är skrivskyddad ges kontrollen åt operativsystemet. Istället för att ge ett felmeddelande kopierar systemet sidan, ändrar referenserna och låter processen fortsätta som om inget hänt. Tekniken är särskilt viktig i Unix och unixliknande system, där nya processer skapas genom systemanropet fork, som skapar en kopia av den ursprungliga processen. Ofta ersätts kopian direkt därefter med ett annat datorprogram genom systemanropet . Utan copy-on-write skulle hela det ursprungliga programmets minnesrymd först kopieras, till ingen nytta, vilket för stora program skulle vara mycket resurskrävande. Varianter av fork, där kopieringen undveks, infördes innan copy-on-write utvecklades. (sv)
- Механизм копирования при записи (англ. Copy-On-Write, COW) используется для оптимизации многих процессов, происходящих в операционной системе, таких как, например, работа с оперативной памятью или файлами на диске. Идея подхода copy-on-write заключается в том, что при чтении области данных используется общая копия, в случае изменения данных — создается новая копия. Например, при работе UNIX-функции fork вместо реального копирования, под которое надо выделять память, ядро меняет дескрипторы страниц памяти материнского процесса, запрещая какую-либо запись в страницы данных (страницы программного кода и так запрещены для записи; хотя здесь имеются свои тонкости — но на дальнейшие рассуждения они не влияют). Затем создаётся дочерний процесс, которому копируются дескрипторы страниц памяти материнского процесса. При этом ядро помечает эти страницы как совместно используемые. Попытка записи в отображённые страницы (неважно, со стороны материнского или дочернего процесса) вызывает исключение (exception), которое передаёт управление в ядро. Ядро видит, что это обращение было законным, и создаёт копию изменяемой страницы. Таким образом удаётся снизить количество потребляемой программами физической памяти. Механизм COW достаточно сложен в реализации, особенно в многоядерных системах, а ошибки в нём могут приводить к уязвимостям, например, Уязвимость Dirty COW (Linux, 2007-октябрь 2016) Механизм получил большое распространение при создании новейших файловых систем, таких как ZFS и Btrfs. Благодаря ему создание мгновенных снимков в данных системах происходит практически мгновенно, не занимая при этом больших ресурсов носителя информации. (ru)
- 寫入時複製(英語:Copy-on-write,简称COW)是一种计算机程式設計領域的优化策略。其核心思想是,如果有多個呼叫者(callers)同時请求相同資源(如内存或磁盘上的数据存储),他們會共同取得相同的指標指向相同的資源,直到某個呼叫者试图修改資源的内容時,系統才會真正複製一份专用副本(private copy)給該呼叫者,而其他呼叫者所见到的最初的资源仍然保持不变。這過程對其他的呼叫者都是透明的。此作法主要的優點是如果呼叫者沒有修改該資源,就不會有副本(private copy)被建立,因此多个呼叫者只是读取操作时可以共享同一份资源。 (zh)
- Механізм копіювання при записуванні (англ. Copy-On-Write, COW) використовується для оптимізації багатьох процесів, що відбуваються в операційній системі, таких, наприклад, як робота з оперативною пам'яттю або файлами на диску (приклад — ext3cow). Ідея підходу copy-on-write полягає в тому, що при читанні області даних використовується загальна копія, а у випадку зміни даних — створюється нова копія. Наприклад, при роботі UNIX-функції fork замість реального копіювання, під яке треба виділяти пам'ять, ядро змінює дескриптори сторінок пам'яті материнського процесу, забороняючи будь-який запис в сторінки даних (сторінки програмного коду і так заборонені для запису; хоча тут є свої тонкощі — але на подальші міркування вони не впливають). Потім створюється дочірній процес, якому копіюються дескриптори сторінок пам'яті материнського процесу. При цьому ядро позначає ці сторінки як такі, що спільно використовуються. Спроба запису в відображені сторінки (неважливо, з боку материнського або дочірнього процесу) викликає виключення (exception), яке передає керування в ядро. Ядро бачить, що це звернення було законним, і створює копію змінюваної сторінки. Таким чином вдається зменшити кількість споживаної програмами фізичної пам'яті. Механізм COW досить складний у реалізації, особливо в багатоядерних системах, а помилки в ньому можуть призводити до вразливостей, наприклад, (Linux, 2007 — жовтень 2016). Механізм отримав велике поширення при створенні новітніх файлових систем, таких як ZFS і Btrfs. Завдяки ньому створення знімків в даних системах відбувається практично миттєво, не займаючи при цьому великих ресурсів носія інформації. (uk)
|
rdfs:comment
|
- Copy-on-write (COW) je v programování technika optimalizace a správy dat, která při kopírování (nezměněných) dat nevede ihned k jejich duplikaci (v paměti, na disku atp.), nýbrž je duplikace odložena na později (ke zkopírování dochází až v okamžiku první změny). Za cenu malého zvýšení režie (pro evidenci úseků dat sdílených mezi originálem a kopií) je možné dosáhnout významné úspory systémových prostředků určených pro uložení dat. COW se používá při vzniku nových procesů (např. systémové volání fork v unixových systémech, duplikaci virtuálních strojů, vytváření u souborových systémů a podobně). (cs)
- Copy-on-write (COW), sometimes referred to as implicit sharing or shadowing, is a resource-management technique used in computer programming to efficiently implement a "duplicate" or "copy" operation on modifiable resources. If a resource is duplicated but not modified, it is not necessary to create a new resource; the resource can be shared between the copy and the original. Modifications must still create a copy, hence the technique: the copy operation is deferred until the first write. By sharing resources in this way, it is possible to significantly reduce the resource consumption of unmodified copies, while adding a small overhead to resource-modifying operations. (en)
- En Informática, copy-on-write (inglés para «copiar al escribir», a veces abreviado COW) es una política de optimización utilizada en programación. Si múltiples procesos piden recursos que inicialmente son indistinguibles (iguales), se les devuelven punteros al mismo recurso; en el momento en que un proceso intenta modificar su "copia" del recurso, se crea una copia auténtica para prevenir que los cambios producidos por dicho proceso sean visibles por todos los demás. Todo ocurre de forma transparente para los procesos. La principal ventaja de este método es que no se crea ninguna copia adicional del recurso si ningún proceso llega a realizar modificaciones. (es)
- コピーオンライト (Copy-On-Write) とは、コンピュータプログラミングにおける最適化戦略の一種である。COWと略記することもある。 コンピュータ内部で、ある程度大きなデータを複製する必要が生じたとき、愚直な設計では、直ちに新たな空き領域を探して割り当て、コピーを実行する。ところが、もし複製したデータに対する書き換えがなければその複製は無駄だったことになる。 そこで、複製を要求されても、コピーをした振りをして、とりあえず原本をそのまま参照させるが、ただし、そのままで本当に書き換えてはまずい。原本またはコピーのどちらかを書き換えようとしたときに、それを検出し、その時点ではじめて新たな空き領域を探して割り当て、コピーを実行する。これが「書き換え時にコピーする」、すなわちコピーオンライト (Copy-On-Write) の基本的な形態である。 基盤となる考え方は、複数の(何らかの)要求者がリソースを要求するときに、少なくとも当初はそれらの要求を区別する必要がないときに同じリソースを与える、というものである。これは要求者がリソースを「更新」しようとするまで保持され、「更新」が他者に見えないようにリソースの個別のコピーを必要になった時点で作成する。要求者からはこの一連の動きは見えない。第一の利点は要求者が全く更新しなければ、個別のコピーを作成する必要が生じないという点である。 (ja)
- La cosiddetta strategia copy-on-write (espressione inglese approssimativamente traducibile con "copia in caso di scrittura") è una tecnica di ottimizzazione informatica mirante alla riduzione delle operazioni di duplicazione delle risorse del sistema (generalmente strutture dati o aree di memoria) attraverso l'eliminazione delle copie non necessarie. (it)
- Cópia em gravação (em Inglês: Copy-on-write (CoW ou COW)), às vezes chamado de compartilhamento implícito ou sombreamento, é uma técnica de gestão de recursos usada na programação de computadores para implementar eficientemente uma operação "duplicar" ou "copiar" em recursos modificáveis.Se um recurso é duplicado, mas não modificado, não será necessário criar um novo recurso; o recurso pode ser compartilhado entre a cópia e o original. As modificações ainda devem criar uma cópia, daí a técnica: a operação de cópia é adiada para a primeira gravação. Ao compartilhar recursos dessa maneira, é possível reduzir significativamente o consumo de recursos de cópias não modificadas, ao mesmo tempo em que adiciona uma pequena sobrecarga às operações de modificação de recursos. (pt)
- 寫入時複製(英語:Copy-on-write,简称COW)是一种计算机程式設計領域的优化策略。其核心思想是,如果有多個呼叫者(callers)同時请求相同資源(如内存或磁盘上的数据存储),他們會共同取得相同的指標指向相同的資源,直到某個呼叫者试图修改資源的内容時,系統才會真正複製一份专用副本(private copy)給該呼叫者,而其他呼叫者所见到的最初的资源仍然保持不变。這過程對其他的呼叫者都是透明的。此作法主要的優點是如果呼叫者沒有修改該資源,就不會有副本(private copy)被建立,因此多个呼叫者只是读取操作时可以共享同一份资源。 (zh)
- Das Copy-On-Write-Verfahren (kurz COW genannt, englisch wörtlich für „Kopieren-beim-Schreiben“) ist in der Datenverarbeitung eine Optimierungsmethode zur Vermeidung unnötiger Kopien und Kopiervorgänge, beispielsweise zwischen Prozessen unter unixartigen Systemen, insbesondere bei oder nach einem fork-Systemaufruf. (de)
- Le copy-on-write ou copie à l’écriture (souvent désigné par son sigle anglais COW) est une stratégie d'optimisation utilisée en programmation informatique. L'idée fondamentale : si de multiples appelants demandent des ressources initialement impossibles à distinguer, vous pouvez leur donner des pointeurs vers la même ressource. Cette fiction peut être maintenue jusqu'à ce qu'un appelant modifie sa « copie » de la ressource. À ce moment-là, une copie privée est créée. Cela évite que le changement soit visible ailleurs. Ceci se produit de manière transparente pour les appelants. L'avantage principal est que si un appelant ne fait jamais de modifications, la copie privée n'est jamais créée. (fr)
- Kopiowanie przy zapisie (ang. copy-on-write, COW) – technika optymalizacji używana w programowaniu komputerów, gdy istnieje potrzeba współdzielenia względnie dużej ilości danych (np. między wątkami czy procesami), co do których nie ma pewności, że zostaną zmodyfikowane przez używające je obiekty. (pl)
- Copy-on-write (även kallad COW, engelska: "kopiera vid skrivning") är en optimeringsstrategi som används av datorprogrammering, vanligen i operativsystemet. Den innebär att kopior skapas endast vid behov, nämligen då kopiorna ändras var för sig. Idén bakom detta är om flera kallar på en resurs, pekas alla till samma källa. Om någon gör en förändring på källan skapas en lokal kopia, så ingen annan påverkas av förändringen. För var och en av processerna ser det ut som om de hela tiden skulle ha en egen kopia; skapandet av referenser och lokala kopior sköts i bakgrunden av operativsystemet. (sv)
- Механізм копіювання при записуванні (англ. Copy-On-Write, COW) використовується для оптимізації багатьох процесів, що відбуваються в операційній системі, таких, наприклад, як робота з оперативною пам'яттю або файлами на диску (приклад — ext3cow). Ідея підходу copy-on-write полягає в тому, що при читанні області даних використовується загальна копія, а у випадку зміни даних — створюється нова копія. (uk)
- Механизм копирования при записи (англ. Copy-On-Write, COW) используется для оптимизации многих процессов, происходящих в операционной системе, таких как, например, работа с оперативной памятью или файлами на диске. Идея подхода copy-on-write заключается в том, что при чтении области данных используется общая копия, в случае изменения данных — создается новая копия. (ru)
|