Bir program için ayrılan memory alanını işletim sistemi neye göre ayarlar?

Başlatan mir_as82, 18 Ağustos 2015, 14:53:58

mir_as82

İşletim sistemi programlara ayıracağı memory alanlarını(stack, heap, code, data segments) neye göre tayin eder?
A programı "hello world" programı olsun
B programı çaplı bir program olsun,

İşletim sistemi iki ayrı programa ne kadar yer ayıracaktır?

Mr_YAMYAM


mir_as82

İki programda aynı işletim sisteminde ise veri yolu hızı eşit değil midir. Ben aynı işletim sistemi içindeki iki farklı programı kastettim.

z

Bence program talep edecektir. Programın header'ı bulunur. Bu header'da talep edilen boyut kayıtlıdır.

Bir kod yazarım, 100MB ram ihtiyacı 1M stack alanı ister. Bir başka program yazarım 1K ramda işi bitirir.
İşletim sistemi bunu bilemez karar veremez.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Mr_YAMYAM

Alıntı yapılan: mir_as82 - 18 Ağustos 2015, 15:07:52
İki programda aynı işletim sisteminde ise veri yolu hızı eşit değil midir. Ben aynı işletim sistemi içindeki iki farklı programı kastettim.
Öncelikle anlaşalım.
Her bir program bir işletim sisteminde bazı ön görevleri yerine getirir veya bu program çalıştırılabilir (EXECUTABLE) ise kendi yönergeleri doğrultusunda ön belleğe kendi yönergelerini koyacaktır.
Bu yönergeler (sürücüler de dahil olmak üzere) veriyollarının toplam hızına bağlıdır. Bu veriyolları ana depo (HDD) den başlar ve çıkış noktasına kadar (Monitör veya başka bir çıktı) devam eder.
Ana saat (CLOCK) işlemci tarafından her bir işlecin(*) çalışma hızına göre ne kadar ön bilgiyi LATCH edeceğini hesaplar ve işlemciyi bu bilgileri işlemek için hazır tutmaya çalışır.


(*)
İşleç ifadesi sistemde bulunan ve iş yapan herbir donanımı ifade eder.
Bir HDD veriyolu,
DMA işleçleri ve prosedürü.
Önbellek ve ana işlemci çarpan değerleri.
Ana işlemci çıkış veriyolları ve kontrol üniteleri.  PCI, PCI EXP veya diğer portlar.
GPU veya çıkış için ilgili işleçler. Bir ses çipi veya seri veriyolu örnek teşkil edebilir.

Burak B

Alıntı yapılan: mir_as82 - 18 Ağustos 2015, 14:53:58
İşletim sistemi programlara ayıracağı memory alanlarını(stack, heap, code, data segments) neye göre tayin eder?
A programı "hello world" programı olsun
B programı çaplı bir program olsun,

İşletim sistemi iki ayrı programa ne kadar yer ayıracaktır?

Derleyici bu alanları ayıracak ve düzenleyecek fonksiyonları oluşturuyor. Bakınız PE file format. Eğer program dinamik hafıza kullanıyorsa ki PC ise kullanıyordur. İşletim sistemlerinde "Memory Manager" bunun için var. Pe32OptionalHeader veri yapısını bir inceleyin.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle