Sobes.tech
Middle

Πώς καθορίζει το σύστημα ποια διαδικασία να τερματίσει;

sobes.tech AI

Απάντηση από AI

Το σύστημα χρησιμοποιεί έναν αλγόριθμο ανίχνευσης έλλειψης μνήμης (Out-of-memory killer, OOM killer) για το τερματισμό διαδικασιών με σκοπό την απελευθέρωση πόρων. Κάθε διαδικασία έχει μια προτεραιότητα βασισμένη στην κατάσταση και τα συστατικά της:

  • Διαδικασία μπροστά: Δραστηριότητα με την οποία αλληλεπιδρά ο χρήστης. Η υψηλότερη προτεραιότητα.
  • Ορατή διαδικασία: Δραστηριότητα ορατή στην οθόνη, αλλά όχι στην πρώτη γραμμή (π.χ. ένα παράθυρο διαλόγου). Υψηλή προτεραιότητα.
  • Υπηρεσία διαδικασία: Εκτελούμενη υπηρεσία (π.χ. αναπαραγωγή μουσικής στο παρασκήνιο). Χαμηλότερη προτεραιότητα από την ορατή διαδικασία.
  • Αποθηκευμένη διαδικασία: Διαδικασία χωρίς ενεργά συστατικά και μπορεί να επανεκκινηθεί. Η χαμηλότερη προτεραιότητα.

Ο OOM killer προσπαθεί πρώτα να τερματίσει τις διαδικασίες με την χαμηλότερη προτεραιότητα (Αποθηκευμένη διαδικασία), στη συνέχεια προχωρά στις υπηρεσίες και συνεχίζει, μέχρι να απελευθερωθεί αρκετή μνήμη.

Επίσης λαμβάνονται υπόψη:

  • Χρόνος από την τελευταία δραστηριότητα της διαδικασίας: Οι "παλαιότερες" διαδικασίες με χαμηλή προτεραιότητα τερματίζονται πρώτες.
  • Ποσότητα χρησιμοποιούμενης μνήμης: Οι διαδικασίες που καταναλώνουν πολύ μνήμη μπορούν να τερματιστούν νωρίτερα, ακόμα και αν η προτεραιότητά τους είναι υψηλότερη από άλλες που χρησιμοποιούν λιγότερους πόρους.

Το σύστημα προσπαθεί να διατηρήσει την ανταπόκριση και τη σταθερότητα, τερματίζοντας τις διαδικασίες με τον λιγότερο επιζήμιο τρόπο για τον χρήστη.