Bir ebeveyn çatal kullandığında, çocuk işlemi sürekli bir hafıza alanında oluşturulur?


0

Çatal bıçaklama yaparken, ana işlemin tam ortamı kopyalanır. RAM'de rastgele bir alanda tahsis edilen alan mı yoksa ana ve alt işlemler sürekli RAM alanı alıyor mu (örneğin, dizi elemanları gibi)?


Tüm çatal sayfanızı okuyunuz, bu kadar sürekli bir hafıza alanında çocuğun yaratıldığını bulamayacağınıza bahse girerim. O zaman ne?
John

Bu bilginin her iki şekilde de man sayfasında olması gerektiğini sanmıyorum.
ddmichael

Mümkün olduğunda ebeveynlerinin yanında çocuk süreçleri yaratan bir işletim sistemine mi ihtiyacınız var?
john

Hayır, genel merakın böyle olup olmadığını bilmem gerekiyor. Bu tahsisat için bir algoritma olmalı.
ddmichael

Geçerli Linux 3.13 özel çatal uygulamasına bakmaya çalışacağım (ve siz de yapabilirsiniz) ve diğer çekirdeğe uygulanamayan bir örnek vermeye çalışacağım. Bu arada, belirli bir işletim sistemi teknisyeninin bizi genel teknikler hakkında aydınlatacağını umalım.
john

Yanıtlar:


1

Eğer kernel.org adresinden indirip çıkarırsanız (linux-3.13), linux-3.13 / kernel / fork.c dosyasında iyi belgelenmiş bir fonksiyon dizisi olduğunu görebilirsiniz. Birincisi, 'do_fork (...)' asıl çatalı yaptığını iddia ediyor. Burada bu işlev 'statik yapı task_struct * copy_process (...)', 1129 satırında çağırır. Aradığın yere yakın bir yerde olmalı.

Gördüğüm gibi tamam, selinux izinlerini kontrol ettikten sonra bu fonksiyon, 'alloc_task_struct_node (...)', 'alloc_thread_info_node (...)' ve 'arch_dup_task_struct (...)' olarak adlandırılan 'dup_task_struct (...)' işlevini çağırır. . 'Alloc_task_struct_node (...)' gerçeği göz önüne alındığında "kmem_cache_alloc_node (...) 'i çağırmaktan daha küçük bir şey yapar" ve bu işlevin bellekten bahseden linux-3.13 / mm / slab.c dosyasında bildirilmiş olması yönetimi ve birçok çekirdek iş parçacığının bellek yönetimi sorumluluklarına (sürekli yapı oluşturma ve silme) karşı çalışıyor olabileceği gerçeği, özellikle de Linux’un normal işlerden dolayı yan yana işlem veri yapıları yaratmadığını, özellikle de birçok iş parçacığını yaptığından çatal kullandığı aynı genel tahsisler .

Linux-3.13 / mm / slub.c dosyasını açarsanız, bunun bir slab hafızası ayırıcısı olduğunu söylemeye başlar. Bir İnternet Arama Motoru bu sonuç verir: wikipedia ... ve lwn .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.