Copy-on-write

Vikipedi, özgür ansiklopedi

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

[değiştir | kaynağı değiştir]

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.