Çatal() ders kitabı örneğini derleyip çalıştırdığımı varsayalım.Çatal() ebeveynin tüm belleğini çoğaltır mı?
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main(void)
{
pid_t pid;
pid = fork();
if (pid == -1)
return 1;
if (pid == 0)
puts("From child process.");
else
puts("From parent process.");
return 0;
}
if (pid == 0)
ifadenin her iki şubelerden kod fork()
almak mı? Başka bir deyişle, çocuk süreci, ebeveyn tarafından hiçbir zaman onun tarafından yürütülmeyecek bir kod içermekte midir? Veya derleyici bunu optimize edebilir mi?
Evet öyle. Ama önemli değil. Optimizasyon işletim sistemindeki derleyici değil. Metin segmenti tüm çatallı işlemler tarafından paylaşılacaktır. Yani, OS, metin parçası için aynı fiziksel belleği, çatallı işlemlerin her birine eşler. Aslında, belirli bir veri sayfasına (yani, Yazma Üzerine Kopyala) yazılana kadar veriler bile paylaşılır. – kaylum