Şuna bir bakalım.
Bir P süreci bir iş parçacığı oluşturduğunda, sürecin sanal belleğinde ne gibi değişiklikler
olur?
Aşağıdaki diyagramın sol tarafta yürütülmekte olan bir P işleminin sanal adres alanı
olduğunu varsayalım.
Böylece bu sürecin yığın için kullanılan bir miktar sanal belleğe, başlatılmış ve başlatılmamış
veri segmenti için kullanılan bir miktar sanal belleğe sahip olduğunu görebilirsiniz.
Ve bazı sanal bellekler bir kod segmenti için kullanılıyor.
Ayrıca sanal belleğin bir kısmı yığın bellek olarak kullanılır.
Yığın belleğin prosedür, çağrı ve geri dönüşü desteklemek için kullanıldığını zaten biliyoruz.
Dolayısıyla her bağımsız yürütme birimi yığın belleğe ihtiyaç duyar.
Şimdi PE işleminin yürütülmesi sırasında yeni bir iş parçacığı oluşturduğunu varsayalım.
Peki bu yeni başlığın oluşturulmasının ardından bu süreçte yaşanacak değişim ne olacak?
Bir sürecin sanal adres alanı.
Böylece sağ taraftaki diyagramın bir sürecin sanal adres alanı olduğunu görebilirsiniz.
P ama konu oluşturulduktan sonra.
Böylece iş parçacığı oluşturulduktan sonra yeni oluşturulan iş parçacığı için ayrı bir sanal bellek olmadığını görebilirsiniz,
değil mi?
Tüm bu sanal bellek hala sürece aittir.
P Ancak bu sanal bellek yeni oluşturulan bir iş parçacığı tarafından da paylaşılır.
Yeni oluşturulan bir iş parçacığı bu sanal belleğe, bir sürecin sanal belleğinin bu kısmına eşit erişime
sahiptir.
Bu nedenle, tüm iş parçacıkları bir sürecin aynı sanal adres alanını paylaşır.
Ancak bu sanal bellek bölümüne yalnızca iş parçacığı tarafından erişilebilmelidir.
T.
Daha önce de söylediğim gibi, her iş parçacığının kendi yığın belleği vardır, değil mi?
Dolayısıyla işletim sistemi sanal belleğin bu kısmını sadece t iş parçacığı için tahsis edecektir çünkü bir iş parçacığının sürecin
yığın belleğini çalıştırabilmesi için bir yığın belleğe sahip olması gerekir.
Öte yandan P korunur ve P süreci tarafından yürütülmesi için kullanılır.
Böylece tüm süreç sanal adres alanının buradan başlayarak sürecin en altına kadar uzandığını görebilirsiniz.
Sanal adres alanı iş parçacığının yanı sıra P süreci tarafından da paylaşılır.
Bu nedenle, bir iş parçacığı bir sürecin yığın belleğini de değiştirebilir ve yığın bellekteki bu değişiklikler diğer
iş parçacıkları veya ana süreç tarafından görülebilir.
Böylece süreçte meydana gelen tek değişikliğin bu olduğunu görebilirsiniz.
Bir sürecin sanal adres alanı.
P, yeni bir iş parçacığı oluşturulduğunda yeni yığın belleğinin tahsis edilmesidir.
Bunun dışında süreçte kesinlikle bir değişiklik yok.
Sanal adres alanı.
Şimdi bu fikri birden fazla iş parçacığı oluşturan bir P sürecine genişletelim.
Sol taraftaki diyagramın bir sürecin sanal adres alanını veya sanal belleğini temsil ettiğini
varsayalım.
P.
Ve bu sanal belleğin en üst kısmının bir süreç tarafından yığın bellek olarak kullanıldığını görebilirsiniz.
Şimdi, bir P süreci yeni bir D iş parçacığı oluşturursa, işletim sistemi yeni t iş parçacığı için yığın bellek olarak kullanılmak
üzere daha fazla sanal bellek tahsis eder.
Benzer şekilde, p süreci başka bir t iki iş parçacığı oluşturursa, işletim sistemi t iki iş parçacığı tarafından kullanılmak
üzere süreç sanal adres alanından yığın bellek olarak daha fazla sanal bellek tahsis edecektir.
Ve aynı şey bir süreç başka bir iş parçacığı oluşturduğunda da geçerlidir.
Böylece işletim sisteminin süreçten daha fazla sanal bellek ayırmaya devam ettiğini görebilirsiniz.
İlgili iş parçacıkları tarafından yığın bellek olarak kullanılacak sanal adres alanı.
Ve unutmayın, bu sanal belleklerin her biri ilgili iş parçacığına özeldir.
T üç iş parçacığının t iki iş parçacığına ait olan yığın belleğe erişme hakkı yoktur.
Yani iş parçacıklarının kendi özel yığın bellekleri vardır.
Bir sürecin sanal adres alanının geri kalan bölgeleri tüm iş parçacıkları tarafından paylaşılır.
Şimdi bunu tartıştık.
Bir süreç yeni bir iş parçacığı oluşturduğunda sürecin sanal belleğinde ne gibi değişiklikler olur?
Şimdi yeni bir iş parçacığı oluşturulduğunda bir sürecin sayfa tablosunda ne gibi değişiklikler olduğunu görelim.