Copy-on-write

Copy-on-write programlamada kullanılan bir kaynak yönetim tekniğidir. Bir kaynak çoğaltılmış ancak herhangi bir düzenlenme ve değişikliğe uğramamışsa, yeni bir kaynak oluşturulmaya gerek yoktur. Kaynak kopya ile orijinal arasında paylaşılabilir. Bu tekniğin asıl amacı, kopyalama işlemini, ilk yazma, düzenleme işlemine kadar ertelemesidir. Bu sayede üzerinde herhangi bir değişiklik yapılmamış kopyaların oluşturulması azaltılabilmektedir.

 Sanal bellek yönetiminde copy-on-write 
Copy-on-write özelliğinin ana kullanımını, işletim sistemlerinin işlemler(process) için sanal bellek yönetimi yaparken, fork sistem çağrısıyla kullandığını görürüz. Fork ile oluşturulan işlemin kendi adres alanı vardır. Bu yeni işlem için bir adres alanı oluşturulur. Ancak parent(ebeveyn) işlemin ve child processin kullandıkları kaynak ortaktır taki bu kaynak üzerinden bir değişiklik veya yazma işlemi yapılıncaya kadar. Yazma işlemi yapıldığı anda bir kopya oluşturulur ve önceden oluşturulan adres alanına ebeveyn processin hafızası kopyalanır. Böylece yazma işlemi gerçekleşene kadar kopyalama işlemi yapılmaz. Ortak bir hafıza alanı kullanılır.

Kategori:Veri depolama
Kategori:Yazılım optimizasyonu
Kategori:Sanal bellek