Agățarea este un fenomen informatic în care unul sau mai multe programe sau întregul sistem de operare încetează să răspundă la acțiunile utilizatorului [1] , sau încep să efectueze aceeași operațiune (nu neapărat utilă sau semnificativă) fără să se oprească, să nu răspundă la mesajele de la alte programe [ 2] [3] . În acest moment, imaginea afișată de program pe monitor (dacă există) se poate bloca, spre deosebire de o eroare de rulare în care este afișat un mesaj pe ecran.
O înghețare ar trebui să fie diferențiată de o înghețare în care computerul nu mai răspunde pentru o anumită perioadă de timp și apoi se reia fără nicio acțiune din partea utilizatorului. Nu este nevoie să reporniți computerul [1] .
Într-un sistem de operare multitasking, este posibil ca un proces individual sau un fir de execuție să se blocheze , cum ar fi blocarea unei resurse sau prins într-o buclă infinită. Într-un sistem multitasking cooperativ, orice fir care se blochează, dar nu renunță la control, va cauza blocarea sistemului deoarece va împiedica rularea altor fire.
În schimb, sistemele de operare moderne folosesc în primul rând multitasking preventiv , cum ar fi Windows 2000 și succesorii săi și Linux și macOS de la Apple Inc. În aceste cazuri, suspendarea unui fir de execuție nu va determina neapărat blocarea sistemului, deoarece sistemul de operare îl va preempționa atunci când intervalul său de timp expiră, permițând rularea unui alt fir. Dacă un fir se blochează, planificatorul poate trece la un alt grup de sarcini interdependente, astfel încât toate procesele să nu se blocheze [4] . Cu toate acestea, un fir blocat va consuma în continuare resurse: cel puțin o intrare programată și, dacă rulează (de exemplu, blocat într-o buclă infinită), va consuma cicluri de procesor și putere atunci când este programat, încetinind sistemul, deși nu provoacă să atârne sistemul ca întreg. Deplasarea unei ferestre peste un program suspendat în timp ce acesta plutește poate duce la redesenarea urmei ferestrei [5] .
Cu toate acestea, chiar și cu multitasking preventiv, sistemul de operare în sine se poate bloca, iar o sarcină greșită sau rău intenționată poate cauza blocarea sistemului, în primul rând prin monopolizarea unei alte resurse, cum ar fi I/O sau memoria, deși timpul CPU nu poate fi monopolizat. De exemplu, un proces care blochează sistemul de fișiere cauzează adesea blocarea sistemului.
După scară:
Prin repetabilitate:
Uneori poate părea că computerul îngheață, când, de fapt, doar rulează foarte lent sau efectuează o operațiune foarte lungă. Acest lucru poate fi cauzat de prea multe programe care rulează în același timp, memorie insuficientă (RAM) sau fragmentare a memoriei, acces lent la hardware (în special dispozitive la distanță), API-uri de sistem lente etc. Poate fi cauzată și de programe ascunse care au fost instalate în secret, cum ar fi spyware .
În multe cazuri, programele pot părea blocate, dar, în realitate, rulează lent, iar așteptarea de câteva minute va permite finalizarea sarcinii.
Sistemele de operare moderne oferă un mecanism pentru terminarea proceselor blocate, cum ar fi utilizarea comenzii kill pe Unix sau utilizarea instrumentelor grafice, cum ar fi butonul „Încheierea sarcinii” din Managerul de activități pe Windows (selectați un anumit proces din listă și faceți clic pe „ Încheierea sarcinii”. Sarcină"). Windows adaugă textul „(Nu răspunde)” în bara de titlu a ferestrei. Începând cu Windows Vista , un strat alb transparent va acoperi conținutul ferestrei atunci când utilizatorul încearcă să interacționeze, astfel încât să fie clar că programul nu răspunde (programul nu se blochează neapărat, pot exista calcule lungi sau așteptări un răspuns din baze de date/resurse de rețea etc.) [10] .
Sistemele mai vechi, cum ar fi cele care rulează MS-DOS, versiunile timpurii de Windows sau Mac OS clasic, necesitau adesea o repornire completă în cazul înghețului.
În multe cazuri, o blocare a programului va duce la pierderea tuturor datelor nesalvate din program [3] , deși unele programe încearcă să prevină acest lucru prin mecanismul de salvare automată a documentului [11] .
Pe dispozitivele încorporate , unde interacțiunea umană este limitată, supraveghetorul poate reporni computerul în cazul înghețului.
Puteți continua programul doar descarcându-l din memorie și rulându-l pentru execuție din nou. Majoritatea sistemelor de operare moderne oferă posibilitatea de a întrerupe execuția programului, de exemplu, comanda kill și diverse interfețe pentru acesta în sistemele GNU/Linux , sau managerul de activități sau comanda consolei taskkill în Microsoft Windows . În cazul înghețului complet al sistemului de operare, atunci când acesta nu răspunde la intrarea de la tastatură sau mouse, lucrul poate fi continuat numai după o repornire completă a sistemului de operare sau după utilizarea Magic SysRq în Linux ( REISUB ).
Eliminarea înghețurilor stabile este legată de identificarea cauzelor acestora - actualizarea driverelor și a unui program de înghețare, curățarea computerului de praf, înlocuirea pastei termice, sursa de alimentare, eliminarea virușilor și așa mai departe [1] [2] .