Görevler askıya alındığında nasıl “donmayı reddedebilir”?


17

Dün, dizüstü bilgisayarımı kapatırken hemen bekleme moduna geçmedi. Günlüklere göre, yapmaya çalışıyordu, ancak bir görev donmayı reddetti:

Freezing of tasks failed after 20.005 seconds (1 tasks refusing to freeze, wq_busy=0):

Sistem gerçekten askıya alınana kadar bu birkaç saat sürdü. syslogGibi mesajlar doluydu bu soruya , çünkü systemdtekrar tekrar çalışıyordu.

Bu nasıl olabilir? Zamanlayıcı neden bu uygulamayı planlamayı durduramıyor? ve sonra etkili bir şekilde donmuş mu? STOPBiri iyi soran ve bir tanesi donmaya zorlayan birden fazla komut olduğunu okudum . Bunu systemdneden kullanmadı veya neden burada çalışmadı?

Yanıtlar:


25

Görev dondurma işlemi çekirdek belgelerinde ayrıntılı olarak belgelenmiştir .

Kullanıcı-alanı süreçleri donmayı reddedemez; dondurulur, ancak çekirdek ve işlemler arasındaki sinyal, sinyal işleme kodu tarafından otomatik olarak gerçekleştirilir (dondurma sahte bir sinyal kullanır).

“Mesajları dondurmayı reddeden görevler” mesajlarını görüyorsanız, bu genellikle bir çekirdek iş parçacığının donmayı reddettiği anlamına gelir, çünkü bu genellikle kontrol edilemeyecek bir şey yapıyor. Ancak çekirdeğin askıya alınması için birkaç saat beklemek normal değildir; günlük iletilerindeki yığın izleri neyin yanlış gittiğine dair bir fikir edinmeye yardımcı olur.

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.