2013-07-17 11 views
6

Linux Kernel'in birçok iş parçacığı ile tek bir işlem olarak kabul edilip edilemeyeceği. Ayrıca, çekirdekte bellek yönetim modülleri, zamanlayıcı, dosya sistemi vb. Arasındaki geçişi de tanımlar.Linux Kernel'in tek bir süreç olarak düşünülüp düşünülmeyeceği

+0

Bu ev ödevi değildir, değil mi? –

+0

@MarcusJohansson Ödev soru değil – user567879

+0

Tanım gereğince çekirdek bir süreç değildir (çıplak metalde çalıştığı için). Süreçler yönetilecek bir çekirdeğe ihtiyaç duyar! Çıplak donanım işlemleri bilmez. –

cevap

9

Linux çekirdeği bir süreç olarak kabul edilemez, çünkü bu süreçleri yönetmek için sorumluluklarından biridir.

Çekirdeği büyük bir kesme işleyicisi olarak kabul edebilirsiniz. Çekirdek işlemciyi iş parçacığına verdikten sonra, denetimi geri almanın tek yolu kesmelerdir (veya aynı zamanda kesintiler olan sistem çağrıları). Kesilme meydana geldiğinde, çekirdek derhal kontrolü ele alır ve uygun şekilde kesme işlemini gerçekleştirir. Bu noktada, çekirdeğin çeşitli kısımları çağrılabilir.

Kernel, aynı anda farklı işlemcilerdeki çeşitli kesmeleri işleyebildiğinden çok iş parçacıklıdır. Öte yandan, kullanıcı konuları ile aynı şekilde yönetilen kernel-thread'lar vardır (kernel ve programlayıcı için kullanıcı konuları arasında fark yoktur).

+0

'Zamanlayıcı için çekirdek ve kullanıcı konuları arasında fark yoktur. O zaman bu çekirdek konuları nasıl planlanır? – user567879

+2

Bu kernel iş parçacıkları, aynı sırayla, aynı sırada, aynı sırada, kullanıcı iş parçacığı olarak zamanlanır. Zamanlayıcı, iş parçacığının kullanıcı iş parçacığı mı yoksa çekirdek olanı mı olduğunu bile bilmiyor. –

+0

@ user567879 Soruma cevap verdim mi? –