Asın (bilgi işlem) - Hang (computing)

Olarak işlem , bir askıda veya dondurularak bir ya oluşan proses veya sistem yanıt çıkar girişler . Tipik bir örnek, bilgisayarın grafik kullanıcı arabiriminin (Microsoft Windows gibi) artık klavyede yazmaya veya fareyi hareket ettiren kullanıcıya yanıt vermemesidir. Terimi hem davranışların geniş bir yelpazesini kapsayan istemciler ve sunucular ve grafik kullanıcı arayüzü konularına sınırlı değildir.

Kilitlenmelerin, sonsuz döngü veya uzun süreli kesintisiz hesaplama, kaynak tükenmesi ( atma ), düşük performans gösteren donanım ( azaltma ), yavaş bilgisayar ağı gibi harici olaylar , yanlış yapılandırma gibi yazılım veya donanım hataları dahil olmak üzere çeşitli nedenleri ve belirtileri vardır. ve uyumluluk sorunları. Temel neden tipik olarak kaynakların tükenmesidir: sistemin bir kısmının çalışması için gerekli kaynaklar, diğer süreçler tarafından kullanımda olduğundan veya sadece yetersiz olduğundan mevcut değildir. Çoğunlukla neden, birden çok faktörün etkileşimidir ve teknik bir terimden ziyade gevşek bir şemsiye terimine "asılır" .

Yavaş donanım gibi kendi kendine çözülen bir durumdan kaynaklanıyorsa askıda kalma geçici olabilir veya bir donanım veya yazılım mantığı hatası durumunda olduğu gibi kalıcı olabilir ve manuel müdahale gerektirebilir. Birçok modern işletim sistemi , kullanıcıya askıda kalmış bir programı yeniden başlatmadan veya oturumu kapatmadan zorla sonlandırma yolu sağlar ; mobil cihazlar için tasarlananlar gibi bazı işletim sistemleri bunu otomatik olarak bile yapabilir. Tüm sistemi etkileyen daha ciddi kilitlenme durumlarında, tek çözüm, genellikle bir kapatma / açma veya sıfırlama düğmesiyle güç çevrimi yaparak makineyi yeniden başlatmak olabilir .

Kilitlenme , arızanın anında olduğu ve girdilerin yanıt verme hızıyla ilgisiz olduğu bir çökmeden farklıdır .

Çoklu görev

Çok görevli bir işletim sisteminde, bir kaynağın engellenmesi veya sonsuz bir döngüye girilmesi gibi tek bir işlemin veya iş parçacığının takılıp kalması mümkündür , ancak genel sistem üzerindeki etkisi önemli ölçüde farklılık gösterir. Bir de kooperatif çoklu görev sistemine, bu gibi, sistem askıda altında kalmaksızın sıkışmış aldığı tüm iş parçacığı takoz çalışan iplik olarak kendini ve çalışmasını diğer konuları engeller.

Buna karşılık, modern işletim sistemleri öncelikle kullanmak öncesi önleyici çoklu görev gibi Windows 2000 ve halefleri yanı sıra Linux ve Apple Inc 'in MacOS . Bu gibi durumlarda, işletim sistemi zaman dilimi sona erdiğinde başka bir iş parçacığının çalışmasına izin vererek onu önceliklendireceğinden, sıkışan tek bir iş parçacığı sistemi kilitlemeyecektir. Bir iş parçacığı takılırsa, zamanlayıcı başka bir birbirine bağlı görevler grubuna geçebilir, böylece tüm işlemler kilitlenmez. Bununla birlikte, sıkışmış bir iş parçacığı yine de kaynakları tüketecektir: en azından zamanlamada bir giriş ve çalışıyorsa (örneğin, sonsuz bir döngüde sıkışmışsa), programlandığında işlemci döngülerini ve gücü tüketecek ve sistemi yavaşlatacaktır. asmaz.

Bununla birlikte, önleyici çoklu görevle bile, bir sistem askıda kalabilir ve hatalı davranılan veya kötü niyetli bir görev, işlemci zamanı tekelleştirilemese bile, öncelikle IO veya bellek gibi diğer bazı kaynakları tekelleştirerek sistemi kilitleyebilir. Örneğin, dosya sistemini engelleyen bir işlem genellikle sistemi kilitler.

Nedenleri

Donanım , bir bilgisayarın kesintili olması veya bilgisayardaki diğer donanımlarla uyumsuz olması nedeniyle askıda kalmasına neden olabilir (bu, yükseltme yapıldığında ortaya çıkabilir ). Donanım ayrıca kir veya ısı hasarı nedeniyle zamanla arızalanabilir.

Bir kilitlenme, programcının bir döngü için yanlış sonlandırma koşullarına sahip olması veya işbirliğine dayalı çok görevli bir işletim sisteminde diğer görevlere teslim olmayı unutması nedeniyle de meydana gelebilir . Başka bir deyişle , yazılımla ilgili birçok kilitlenme, hiçbir zaman gerçekleşmeyecek bir olayın gerçekleşmesini bekleyen iş parçacıklarından kaynaklanır . Bu aynı zamanda sonsuz döngü olarak da bilinir .

Askıda kalmanın diğer bir nedeni, süreçler arasındaki iletişimdeki yarış durumudur . Bir süreç, ikinci bir sürece bir sinyal gönderebilir ve ardından bir yanıt alana kadar yürütmeyi durdurabilir. İkinci işlem meşgulse, sinyal işlem ona ulaşana kadar beklemeye zorlanacaktır. Bununla birlikte, eğer ikinci süreç birinci sürece bir sinyal göndermekle meşgulse, o zaman her iki süreç de diğerinin sinyallere yanıt vermesini sonsuza kadar bekler ve asla diğerinin sinyalini görmez (bu olay bir kilitlenme olarak bilinir ). İşlemler kesintisiz ise, askıda kalacak ve kapatılmaları gerekecektir. İşlemlerden en az biri kritik bir çekirdek işlemiyse, tüm sistem kilitlenebilir ve yeniden başlatılması gerekebilir.

Bir bilgisayar aslında çok yavaş işlerken takılıyor gibi görünebilir. Bunun nedeni aynı anda çalışan çok fazla program, yetersiz bellek ( RAM ) veya bellek parçalanması , yavaş donanım erişimi (özellikle uzak cihazlara), yavaş sistem API'leri vb. Olabilir. Yüklü gizli programlardan da kaynaklanabilir. casus yazılım gibi gizlice .

Çözümler

Çoğu durumda programlar asılı görünebilir, ancak yavaş ilerler ve birkaç dakika beklemek görevin tamamlanmasına izin verir.

Modern işletim sistemleri , örneğin Unix kill komutuyla veya Windows'ta Görev Yöneticisinin "görevi sonlandır" düğmesi gibi grafiksel bir yolla askıda kalan işlemleri sonlandırmak için bir mekanizma sağlar . MS-DOS çalıştıranlar gibi eski sistemlerde, Windows'un eski sürümleri veya Klasik Mac OS'nin genellikle bir kilitlenme durumunda tamamen yeniden başlatılması gerekiyordu .

On gömülü cihazlar insan etkileşimi sınırlıdır bir bekçi köpeği zamanlayıcısı edebilirsiniz yeniden bir askıda durumunda bilgisayarı.

Notlar

Ayrıca bakınız

Referanslar