Apa sebenarnya yang dilakukan kernel_task?


30

Saya hanya ingin tahu apa yang bertanggung jawab atas kernel_task. Juga, apa yang dimaksud dengan penggunaan RAM dan CPU maksimum yang dapat diterima?


Terbaik untuk mengukur penggunaan RAM dan CPU Anda setelah boot aman untuk mendapatkan ukuran dari apa sistem Anda berjalan saat idle.
bmike

1
Menurut Tyler, itu adalah "representasi dari mikrokernel itu sendiri." Jika Anda menginginkan jawaban yang lebih spesifik, ia melanjutkan dengan mengatakan bahwa "sepertinya itu adalah manajer memori (virtual /) dasar untuk Mac OS X di atas Mach." Anda akan sulit sekali menemukan jawaban yang pasti kecuali Anda berbicara dengan insinyur Apple tingkat tinggi. Publik hanya menyatukan proses ini. Sumber: bleepsoft.com/tyler/index.php?itemid=43

Jawaban:


28

Tugas kernel ini istimewa karena ini merupakan keseluruhan sistem operasi / mikro kernel berdasarkan Mach 3.0 . Ini mengabstraksi sebagian besar perangkat keras inti, pengaturan waktu, pengiriman pesan, dan penanganan memori.

Apa yang kebanyakan orang perhatikan dalam Monitor Aktivitas adalah yang kernel_taskmengakumulasi semua waktu CPU untuk penundaan / kalkulasi input / output (i / o) serta penjadwalan overhead proses dan utas. Demikian pula - ini mengakumulasi semua alokasi memori yang tidak ada di ruang pengguna. Pada Mac 2014 dan yang lebih baru, tugas ini ada untuk melambatkan CPU - ketika suhu dalam prosesor terlalu hangat, tugas kernel ditugaskan "tidak bekerja" dan menunjukkan CPU yang tinggi sibuk untuk membiarkan prosesor menganggur dan tidak terlalu panas pada komputer. Ini paling terlihat pada jalur portabel - terutama MacBook tanpa kipas atau blower untuk mendinginkan prosesor. Apple memperingatkan hal ini kepada pemrogram kernel potensial di "Mengapa Anda harus menjauh dari pemrograman di Kernel" bahwa menonaktifkan pendinginan akan menyebabkan kerusakan perangkat keras permanen yang tidak dapat diperbaiki.

Ringkasnya, pemrograman kernel adalah tanggung jawab yang sangat besar. Anda harus sangat berhati-hati untuk memastikan bahwa kode Anda tidak menyebabkan sistem macet, tidak memberikan akses pengguna yang tidak sah ke file atau memori orang lain, tidak memperkenalkan eksploitasi root jarak jauh atau lokal, dan tidak menyebabkan kehilangan data atau korupsi yang tidak disengaja. .

Jika Anda menontonnya setelah reboot, Anda akan melihatnya dimulai dengan RAM dan kebutuhan CPU yang minimal dan hanya tumbuh ketika program lain berjalan dan membutuhkan layanan sistem.

Untuk menurunkannya, matikan port yang tidak dibutuhkan (WiFi, bluetooth, dll ...) serta program idle / tidak terpakai. Jika semuanya tidak beres, pertimbangkan untuk me-reboot untuk memastikan tidak ada tugas yang macet atau memori bocor. Jika Anda memiliki program yang melakukan pekerjaan nyata, mereka akan menyebabkan kernel menggunakan memori dan waktu prosesor - lihat saja saat Anda memulai sesuatu untuk melihat program lain yang menyebabkan perilaku ini. Jarang ada masalah dengan kernel - bahkan dengan program yang berkinerja buruk - yang tidak dapat diselesaikan dengan keluar dan kembali lagi. Kernel_task membersihkan dengan baik dan biasanya hanya menggunakan sumber daya yang dibutuhkan oleh beban kerja.


Terima kasih! Apakah Anda mengatakan 700-750 MB RAM dapat diterima untuk itu? Saya punya banyak yang gratis, tetapi saya ingin tahu apakah ada yang harus saya lakukan.
Timothy Mueller-Harder

Belum tentu. Pada MacBook Pro utama saya, ia dapat membengkak hingga 2 GB saat saya benar-benar menjalankan banyak program yang terlibat. Meski begitu, saya tidak sering harus reboot tetapi sebulan sekali atau lebih. (2.66 Core 2 Duo / 8 GB RAM)
bmike

14

Mac OS X Internal: Pendekatan Sistem - Amit Singh - Google Buku :

kernel menggunakan tugas dan utas abstraksi untuk membagi fungsinya menjadi berbagai aliran eksekusi. Kernel menggunakan satu tugas — tugas kernel — dengan beberapa utas yang melakukan operasi kernel seperti penjadwalan, menuai utas, manajemen info, paging, dan penanganan pengecualian Unix. Dengan demikian, xnu adalah kernel monolitik yang mengandung komponen-komponen yang sangat berbeda seperti Mach, BSD, dan I / O Kit, semua berjalan sebagai kelompok thread dalam satu tugas di ruang alamat yang sama.

http://lists.apple.com/archives/darwin-kernel/2010/Sep/msg00014.html :

Tugas kernel bukanlah tugas nyata. Ini mewakili kernel, yang merupakan inti dari sistem operasi. Sebagian besar dari apa yang dilakukannya terjadi atas permintaan langsung dari suatu aplikasi. Setiap kali Anda mengalokasikan sejumlah besar memori, buka atau tutup file, baca atau tulis file, tarik data melalui jaringan, buat proses atau utas baru, dll., Aplikasi Anda melakukan panggilan sistem. Panggilan-panggilan ini menyebabkan kernel berfungsi untuk aplikasi Anda. Sebagian besar pekerjaan itu ditagih ke tugas kernel, tetapi itu sebenarnya sedang dilakukan oleh aplikasi Anda, meskipun secara tidak langsung.


1

Alasan praktis mengapa kernel mungkin terlalu banyak bekerja adalah karena sistem Anda kehabisan memori dan meronta-ronta. Periksa grafik tekanan memori di bawah tab Memory Monitor Aktivitas untuk melihat apakah itu kuning atau merah.

Dalam hal ini, Anda dapat mengurutkan proses berdasarkan Memori dan menghentikan beberapa yang mengkonsumsi banyak, untuk mengurangi tekanan. (mis. bunuh beberapa proses Google Chrome Helper)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.