Kernel_task tam olarak ne yapar?


30

Sadece kernel_task'in neden sorumlu olduğunu bilmek istiyorum. Ayrıca, bunun için kabul edilebilir bir maksimum RAM ve CPU kullanımı nedir?


Sisteminiz boştayken neyin çalıştığını ölçmek için güvenli bir önyüklemeden sonra RAM ve CPU kullanımınızı ölçmek için en iyisidir.
bmike

1
Tyler'a göre, "mikro çekirdeğin kendisinin temsili". Daha spesifik bir cevap istiyorsanız, “Mach Mac'in üstündeki Mac OS X için temel (sanal /) bellek yöneticisi gibi görünüyor” demeye devam ediyor. Üst düzey bir Apple mühendisiyle konuşmadığınız sürece kesin bir cevap bulmakta zorlanacaksınız. Halk bu süreci bir araya getirdi. Kaynak: bleepsoft.com/tyler/index.php?itemid=43

Yanıtlar:


28

Çekirdek görevi, Mach 3.0 tabanlı bir işletim sistemi / mikro çekirdeği olması nedeniyle özeldir . Çekirdek donanım, zamanlama, mesaj gönderme ve bellek kullanımının çoğunu soyutlar.

Aktivite İzleyicisi'nde çoğu insanın farkettiği şey, kernel_taskgiriş / çıkış (g / Ç) işlem gecikmeleri ve hesaplamaları için işlemlerin ve iş parçacıklarının genel zamanlamasını zamanlamak için tüm CPU süresini biriktirmesidir. Benzer şekilde - kullanıcı alanında olmayan tüm hafıza tahsislerini biriktirir. 2014 ve daha yeni Mac'lerde, bu görev CPU'yu boğmak için var - işlemcideki sıcaklıklar çok sıcak olduğunda, çekirdek görevi "işsiz" olarak atanmış ve işlemcinin boşta kalmasına ve bilgisayarın aşırı ısınmasına izin vermemesi için yüksek CPU'yu meşgul ediyor. Bu, özellikle taşınabilir hatta - özellikle MacBook'u işlemciyi soğutmak için herhangi bir vantilatör veya üfleyici olmadan farkediyor. Apple, " Çekirdekte programlama yapmaktan neden uzak durmalısınız" konusundaki potansiyel çekirdek programcıları için bunu uyardı. soğutmanın devre dışı bırakılması kalıcı tamir edilemez donanım hasarına neden olur.

Özetlemek gerekirse, çekirdek programlama büyük bir sorumluluktur. Kodunuzun sistemin çökmesine neden olmadığından, bir başkasının dosyalarına veya belleğine yetkisiz kullanıcı erişimi sağlamadığından, uzak veya yerel kök kullanımları getirmediğinden ve istemeden veri kaybına veya bozulmasına neden olmadığından emin olmak için son derece dikkatli olmalısınız. .

Yeniden başlatmanın ardından izlerseniz, minimum RAM ve CPU gereksinimi ile başladığını göreceksiniz ve bunun yerine sadece diğer programlar çalıştığında ve sistem servislerine ihtiyaç duyduğunda büyüyecek.

Zayıflamak için, gereksiz portları (WiFi, bluetooth vb.) Ve boşta / kullanılmayan programları kapatın. İşler çözülmezse, hiçbir görevin takılmadığından veya bellek sızdırmadığından emin olmak için yeniden başlatmayı deneyin. Gerçek işi yapan programlarınız varsa, çekirdeğin hem belleği hem de işlemci süresini kullanmasına neden olurlar - sadece hangi programların bu davranışa neden olduğunu görmek için bir şeyler başlatırken izleyin. Nadiren çekirdekli bir sorun - kötü performans gösteren programlarda bile - tekrar tekrar giriş yapıp çözülemez. Çekirdek_task iyi temizler ve genellikle sadece iş yükünün ihtiyaç duyduğu kaynakları kullanmaya özen gösterir.


Teşekkürler! 700-750 MB RAM'in kabul edilebilir olduğunu söyleyebilir misiniz? Çok fazla özgürüm var, ama yine de yapmam gereken bir şey olup olmadığını bilmek istiyorum.
Timothy Mueller-Harder

Şart değil. Ana MacBook Pro'mda, çok fazla ilgili program çalıştığımda, zaman zaman 2 GB'a kadar şişebilir. O zaman bile, sık sık yeniden başlatmam gerekmiyor, ancak ayda bir kez. (2.66 Core 2 Duo / 8 GB RAM)
bmike

14

Mac OS X Internals: Bir Sistem Yaklaşımı - Amit Singh - Google Kitaplar :

çekirdek, işlevselliğini çeşitli yürütme akışlarına bölmek için görevi ve iş parçacığı soyutlamalarını kullanır. Çekirdek, zamanlama, iş parçacığı biçimleme, belirtme çizgisi yönetimi, sayfalama ve Unix istisna işleme gibi çekirdek işlemlerini gerçekleştiren birden çok iş parçacığı olan tek bir görevi ( çekirdek görevi) kullanır . Bu nedenle, xnu, hepsi aynı adres alanında tek bir görevdeki iplik grupları olarak çalışan Mach, BSD ve I / O Kiti gibi belirgin şekilde farklı bileşenleri içeren monolitik bir çekirdektir.

http://lists.apple.com/archives/darwin-kernel/2010/Sep/msg00014.html :

Çekirdek görevi gerçek bir görev değil. İşletim sisteminin çekirdeği olan çekirdeği temsil eder. Yaptıklarının büyük kısmı bir uygulamanın doğrudan talebi üzerine gerçekleşir. Büyük bir bellek bloğu ayırdığınızda, bir dosyayı açıp kapattığınızda, bir dosyayı okuyup yazarken, ağ üzerinden veri çekerken, yeni bir işlem veya iş parçacığı oluştururken, vb. Uygulamanızda sistem çağrısı gerçekleştirir. Bu çağrılar çekirdeğin uygulamanız için çalışmasına neden olur. Bu işlerin çoğu çekirdek görevine fatura ediliyor, ancak gerçekten dolaylı olarak da olsa uygulamanız tarafından yapılıyor.


1

Çekirdeğin fazla çalışmasının pratik bir nedeni, sisteminizin belleği yetersiz olması ve düşmesidir. Sarı mı yoksa kırmızı mı olduğunu görmek için Aktivite İzleyicisi'nin Hafıza sekmesinin altındaki hafıza basıncı grafiğini kontrol edin .

Bu durumda, işlemleri Belleğe göre sıralayabilir ve baskıyı azaltmak için çok tüketen bir kısmını sonlandırabilirsiniz. (örneğin, bazı Google Chrome Yardımcı işlemlerini durdur)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.