Che cosa fa esattamente kernel_task?

28

Vorrei solo sapere di cosa è responsabile kernel_task. Inoltre, qual è la quantità massima accettabile di RAM e CPU?

    
posta Timothy Mueller-Harder 18.01.2012 - 01:03
fonte

3 risposte

27

L'attività del kernel è speciale poiché è un intero sistema operativo / micro kernel basato su Mach 3.0 . Estrae la maggior parte dell'hardware di base, i tempi, il passaggio dei messaggi e la gestione della memoria.

Ciò che la maggior parte delle persone notano in Activity Monitor è che kernel_task accumula tutto il tempo CPU per i ritardi e i calcoli di elaborazione input / output (i / o) così come il sovraccarico della programmazione di processi e thread. Allo stesso modo - accumula tutte le allocazioni di memoria che non si trovano nello spazio utente. Nel 2014 e nei nuovi Mac, questa attività esiste per limitare la CPU: quando le temperature del processore sono troppo calde, all'attività del kernel viene assegnato "nessun lavoro" e viene mostrata un'elevata CPU impegnata a lasciare il processore inattivo e non a surriscaldare il computer. Questo è più evidente sulla linea portatile, specialmente il MacBook senza alcun tipo di ventilatore o ventilatore per raffreddare il processore. Apple avvisa di ciò ai potenziali programmatori del kernel in " Perché dovresti stare lontano dalla programmazione nel kernel " che disabilitando il raffreddamento causerà danni irreparabili permanenti all'hardware.

To summarize, kernel programming is an immense responsibility. You must be exceptionally careful to ensure that your code does not cause the system to crash, does not provide any unauthorized user access to someone else’s files or memory, does not introduce remote or local root exploits, and does not cause inadvertent data loss or corruption.

Se lo guardi dopo un riavvio, vedrai che inizia con una RAM minima e le esigenze della CPU e invece cresce solo quando vengono eseguiti altri programmi e necessitano dei servizi di sistema.

Per sminuzzare, spegnere le porte non necessarie (WiFi, bluetooth, ecc.) così come i programmi inutilizzati / non utilizzati. Se le cose non si stabilizzano, si consideri il riavvio per assicurarsi che nessuna attività sia bloccata o perdite di memoria. Se hai programmi che eseguono un lavoro reale, faranno in modo che il kernel utilizzi sia la memoria che il tempo del processore: ti basterà guardare mentre inizi a vedere quali altri programmi stanno causando questo comportamento. Raramente è un problema con il kernel - anche con programmi mal funzionanti - che non può essere risolto disconnettendosi e tornando di nuovo. Il kernel_task si ripulisce bene e generalmente si occupa di utilizzare solo le risorse necessarie al carico di lavoro.

    
risposta data 18.01.2012 - 01:46
fonte
13

Mac OS X Internals: A Systems Approach - Amit Singh - Google Libri :

the kernel uses the task and thread abstractions to divide its functionality into various execution flows. The kernel uses a single task—the kernel task—with multiple threads that perform kernel operations such as scheduling, thread reaping, callout management, paging, and Unix exception handling. Thus, xnu is a monolithic kernel containing markedly different components such as Mach, BSD, and the I/O Kit, all running as groups of threads in a single task in the same address space.

link :

The kernel task is not a real task. It represents the kernel, which is the core of the operating system. The bulk of what it does occurs at the direct request of an application. Every time you allocate a large block of memory, open or close a file, read or write a file, pull data over the network, create a new process or thread, etc., your application performs a system call. These calls cause the kernel to do work for your application. Much of that work is billed to the kernel task, but it really is being done by your application, albeit indirectly.

    
risposta data 30.05.2013 - 07:48
fonte
1

Un motivo pratico per cui il kernel potrebbe essere sovraccarico è che il tuo sistema ha esaurito la memoria ed è in difficoltà. Controlla il grafico della pressione della memoria sotto la scheda Memoria di Monitoraggio attività per vedere se è giallo o rosso.

In questo caso, puoi ordinare i processi in base alla memoria e terminarne alcuni che ne consumano molto, per ridurre la pressione. (ad esempio, uccidi alcuni processi di Google Chrome Helper)

    
risposta data 24.03.2018 - 15:35
fonte

Leggi altre domande sui tag