Evrelerin ve süreçlerin paylaşımlı bellekle kullanımı bir uygulamanın bir sistemin sağlayabildiği tüm işlem gücünün getirilerinden yararlanmasına imkan verir. Eğer görev paralelleştirilebiliyorsa, bir uygulama yazmanın en uygun yolu aynı anda çok sayıda işlemci varmış gibi çok sayıda sürecin çalışmasının mümkün olması ile ilgilidir. Sistemdeki mevcut işlemcilerin sayısını saptamak için şöyle bir çağrı yapabilirsiniz:
sysconf (_SC_NPROCESSORS_CONF)
İşletim sisteminin yapılandırıldığı işlemcilerin sayısı ile döner. Ancak işletim sisteminin bazı işlemcileri iptal etmesi mümkün olduğundan,
sysconf (_SC_NPROCESSORS_ONLN)
çağrısı ile o an kullanılabilecek işlemcilerin sayısını öğrenebilirsiniz.
Bu ikisine ek olarak GNU C kütüphanesi bilgiyi doğrudan almayı mümkün kılan işlevler de içerir. Bu işlevler sys/sysinfo.h dosyasında bildirilmiştir.
int get_nprocs_conf | (void) |
işlev
get_nprocs_conf işlevi işletim sisteminin yapılandırıldığı işlemcilerin sayısı ile döner.
Bu işlev bir GNU oluşumudur.
get_nprocs işlevi o an kullanılabilecek işlemcilerin sayısı ile döner.
Bu işlev bir GNU oluşumudur.
Daha fazla evre başlatmadan önce işlemcilerin tamamen kullanımda olup olmadığına bakılmalıdır. Unix sistemi
yük ortalaması adı verilen bir hesaplama yapar. Bu aynı anda kaç sürecin çalışmakta olduğunu gösteren bir sayıdır. Bu sayı farklı sürelerde alınan bir ortalamadır (normalde 1, 5 ve 15 dakikalık).
int getloadavg | (double yükortalamaları[],
int elem_sayısı) |
işlev
İşlev sistemin yük ortalamasını 1, 5 ve 15 dakikalık ortalamalar olarak döndürür. Değerler yükortalamaları dizisine yerleştirilir. Diziye kaç ortalama yerleştirileceği elem_sayısı argümanına konur, ancak bu değer üçten fazla olmaz. İşlevin normal dönüş değeri yükortalamaları dizisine yazılan değerlerin sayısıdır, -1 dönmüşse bir hata oluşmuş demektir.
Bu işlev stdlib.h dosyasında bildirilmiştir.