ฉันแค่อยากจะรู้ว่ามันคืออะไร kernel_task ที่รับผิดชอบ นอกจากนี้ RAM และ CPU สูงสุดที่ยอมรับได้ใช้สำหรับมันคืออะไร
ฉันแค่อยากจะรู้ว่ามันคืออะไร kernel_task ที่รับผิดชอบ นอกจากนี้ RAM และ CPU สูงสุดที่ยอมรับได้ใช้สำหรับมันคืออะไร
คำตอบ:
งานเคอร์เนลเป็นพิเศษเพราะมันเป็นระบบปฏิบัติการทั้ง kernel / ไมโครบนพื้นฐานของ Mach 3.0 มันเป็นนามธรรมของฮาร์ดแวร์หลักส่วนใหญ่เวลาการส่งข้อความและการจัดการหน่วยความจำ
สิ่งที่คนส่วนใหญ่สังเกตเห็นในการตรวจสอบกิจกรรมคือการkernel_task
สะสมเวลา CPU ทั้งหมดสำหรับความล่าช้าในการประมวลผลอินพุต / เอาต์พุต (i / o) และการคำนวณรวมถึงการจัดตารางเวลาค่าใช้จ่ายของกระบวนการและเธรด ในทำนองเดียวกัน - จะรวบรวมการจัดสรรหน่วยความจำทั้งหมดที่ไม่ได้อยู่ในพื้นที่ของผู้ใช้ ในปี 2014 และ Mac รุ่นใหม่กว่ามีงานนี้เพื่อเค้น CPU - เมื่ออุณหภูมิในโปรเซสเซอร์ร้อนเกินไปงานเคอร์เนลจะถูกกำหนดว่า "ไม่ทำงาน" และแสดง CPU สูงไม่ว่างเพื่อให้โปรเซสเซอร์ไม่ได้ทำงานและไม่ร้อนเกินไปคอมพิวเตอร์ นี่คือสิ่งที่เห็นได้ชัดเจนที่สุดในสายแบบพกพา - โดยเฉพาะ MacBook ที่ไม่มีพัดลมหรือตัวเป่าลมใด ๆ เพื่อทำให้โปรเซสเซอร์เย็น Apple เตือนเรื่องนี้กับโปรแกรมเมอร์เคอร์เนลใน"ทำไมคุณควรอยู่ห่างจากการเขียนโปรแกรมในเคอร์เนล" การปิดใช้งานการระบายความร้อนจะทำให้ฮาร์ดแวร์เสียหายอย่างถาวรซึ่งไม่สามารถแก้ไขได้
เพื่อสรุปการเขียนโปรแกรมเคอร์เนลเป็นความรับผิดชอบอันยิ่งใหญ่ คุณต้องระมัดระวังเป็นพิเศษเพื่อให้แน่ใจว่ารหัสของคุณไม่ทำให้ระบบล่มไม่ให้สิทธิ์ผู้ใช้ในการเข้าถึงไฟล์หรือหน่วยความจำของผู้อื่นโดยไม่ได้รับอนุญาตไม่แนะนำการบุกรุกจากระยะไกลหรือในเครื่องและไม่ทำให้ข้อมูลสูญหายหรือเสียหาย .
หากคุณดูหลังจากรีบูตเครื่องคุณจะเห็นว่าเริ่มต้นด้วยความต้องการ RAM และ CPU ที่น้อยที่สุดและจะเพิ่มขึ้นเมื่อโปรแกรมอื่นรันและต้องการบริการระบบแทน
หากต้องการลดขนาดให้ปิดพอร์ตที่ไม่ต้องการ (WiFi, บลูทู ธ ฯลฯ ... ) รวมถึงโปรแกรมที่ไม่ได้ใช้งาน / ไม่ได้ใช้งาน หากสิ่งต่าง ๆ ไม่สงบลงลองพิจารณาการรีบูตเพื่อให้แน่ใจว่าไม่มีงานใดที่ติดค้างอยู่หรือหน่วยความจำรั่ว หากคุณมีโปรแกรมที่ทำงานได้จริงพวกเขาจะทำให้เคอร์เนลใช้ทั้งหน่วยความจำและเวลาตัวประมวลผล - เพียงแค่เฝ้าดูเมื่อคุณเริ่มสิ่งต่าง ๆ เพื่อดูว่าโปรแกรมอื่นใดที่ทำให้เกิดลักษณะการทำงานนี้ มันไม่ค่อยมีปัญหากับเคอร์เนล - แม้จะมีโปรแกรมที่มีประสิทธิภาพไม่ดี - ซึ่งไม่สามารถแก้ไขได้โดยการออกจากระบบและกลับมาใหม่อีกครั้ง kernel_task ทำความสะอาดได้ดีและโดยทั่วไปจะใช้ทรัพยากรที่จำเป็นสำหรับภาระงานเท่านั้น
Mac OS X Internals: A Systems Approach - Amit Singh - Google หนังสือ :
เคอร์เนลใช้งานและเธรด abstractions เพื่อแบ่งการทำงานเป็นโฟลว์การดำเนินการต่างๆ เคอร์เนลใช้ภารกิจเดียว - งานเคอร์เนล - ด้วยหลายเธรดที่ดำเนินการกับเคอร์เนลเช่นการตั้งเวลาการสร้างเธรดการจัดการคำบรรยายภาพหน้าและการจัดการข้อยกเว้น Unix ดังนั้น xnu เป็นเคอร์เนลเสาหินที่มีส่วนประกอบที่แตกต่างกันอย่างเห็นได้ชัดเช่น Mach, BSD และ I / O Kit ซึ่งทั้งหมดทำงานเป็นกลุ่มของเธรดในงานเดียวในพื้นที่ที่อยู่เดียวกัน
http://lists.apple.com/archives/darwin-kernel/2010/Sep/msg00014.html :
งานเคอร์เนลไม่ใช่งานจริง เพราะมันหมายถึงเคอร์เนลซึ่งเป็นแกนหลักของระบบปฏิบัติการ จำนวนมากของสิ่งที่จะเกิดขึ้นตามคำขอโดยตรงของแอปพลิเคชัน ทุกครั้งที่คุณจัดสรรบล็อกหน่วยความจำขนาดใหญ่เปิดหรือปิดไฟล์อ่านหรือเขียนไฟล์ดึงข้อมูลผ่านเครือข่ายสร้างกระบวนการหรือเธรดใหม่ ฯลฯ แอปพลิเคชันของคุณทำการเรียกใช้ระบบ การเรียกเหล่านี้ทำให้เคอร์เนลทำงานกับแอปพลิเคชันของคุณ งานส่วนใหญ่นั้นถูกเรียกเก็บเงินไปยังงานเคอร์เนล แต่งานของคุณกำลังทำอยู่จริงๆ
เหตุผลที่ใช้งานได้จริงสาเหตุที่เคอร์เนลอาจทำงานหนักเกินไปคือระบบของคุณมีหน่วยความจำไม่เพียงพอและเป็นสิ่งที่น่ายินดี ตรวจสอบกราฟแรงดันหน่วยความจำใต้แท็บMemoryของActivity Monitorเพื่อดูว่าเป็นสีเหลืองหรือแดง
ในกรณีนี้คุณสามารถเรียงลำดับกระบวนการตามหน่วยความจำและยุติกระบวนการบางอย่างที่ใช้มากในการลดความดัน (เช่นฆ่ากระบวนการ Google Chrome Helper)