Saltar al contenido

¿Qué es la copia sobre escritura?

Presta atención ya que en este escrito encontrarás la solución que buscas.

Solución:

Iba a escribir mi propia explicación, pero este artículo de Wikipedia lo resume bastante bien.

Aquí está el concepto básico:

La copia en escritura (a veces denominada “COW”) es una estrategia de optimización utilizada en la programación de computadoras. La idea fundamental es que si varias personas que llaman solicitan recursos que inicialmente son indistinguibles, puede proporcionarles punteros al mismo recurso. Esta función se puede mantener hasta que una persona que llama intente modificar su “copia” del recurso, momento en el cual un true se crea una copia privada para evitar que los cambios sean visibles para todos los demás. Todo esto sucede de forma transparente para las personas que llaman. La principal ventaja es que si una persona que llama nunca hace ninguna modificación, nunca se necesita crear una copia privada.

También aquí hay una aplicación de un uso común de COW:

El concepto COW también se utiliza en el mantenimiento de instantáneas instantáneas en servidores de bases de datos como Microsoft SQL Server 2005. Las instantáneas conservan una static vista de una base de datos almacenando una copia de datos previa a la modificación cuando se actualizan los datos subyacentes. Las instantáneas instantáneas se usan para probar usos o informes dependientes del momento y no deben usarse para reemplazar las copias de seguridad.

“Copiar al escribir” significa más o menos lo que parece: todos tienen una sola copia compartida de los mismos datos hasta que este escrito, y luego se hace una copia. Por lo general, la copia en escritura se usa para resolver problemas de concurrencia. En ZFS, por ejemplo, los bloques de datos en el disco se asignan como copia en escritura; mientras no haya cambios, mantienes los bloques originales; un cambio cambió solo los bloques afectados. Esto significa que se asigna el número mínimo de bloques nuevos.

Estos cambios también se implementan generalmente para ser transaccional, es decir, tienen las propiedades ACID. Esto elimina algunos problemas de simultaneidad, porque entonces tiene la garantía de que todas las actualizaciones son atómicas.

No repetiré la misma respuesta en Copy-on-Write. Creo que la respuesta de Andrew y la respuesta de Charlie ya lo han dejado muy claro. Le daré un ejemplo del mundo del sistema operativo, solo para mencionar cuán ampliamente se usa este concepto.

Nosotros podemos usar fork() o vfork() para crear un nuevo proceso. vfork sigue el concepto de copia en escritura. Por ejemplo, el proceso secundario creado por vfork compartirá el segmento de datos y código con el proceso principal. Esto acelera el tiempo de bifurcación. Se espera que use vfork si está ejecutando exec seguido de vfork. Entonces, vfork creará el proceso secundario que compartirá los datos y el segmento de código con su padre, pero cuando llamemos a exec, cargará la imagen de un nuevo ejecutable en el espacio de direcciones del proceso secundario.

Aquí puedes ver las reseñas y valoraciones de los lectores

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *