我只想知道kernel_task负责什么。此外,对于它的可接受最大RAM和CPU使用情况是多少?
我只想知道kernel_task负责什么。此外,对于它的可接受最大RAM和CPU使用情况是多少?
Mac OS X Internals: A Systems Approach - Amit Singh - Google Books:
内核使用任务和线程抽象将其功能分为各种执行流。内核使用一个任务——内核任务——具有执行内核操作的多个线程,如调度、线程回收、调用管理、分页和Unix异常处理等。因此,xnu是一个包含不同组件(如Mach、BSD和I/O Kit)的单内核,在同一地址空间内作为一组线程运行。
http://lists.apple.com/archives/darwin-kernel/2010/Sep/msg00014.html:
核心任务并不是一个真正的任务。它代表着操作系统的核心——内核。它所做的大部分工作都是在应用程序的直接请求下完成的。每当您分配一个大块内存、打开或关闭文件、读取或写入文件、从网络中获取数据、创建新的进程或线程等,您的应用程序就会执行一个系统调用。这些调用会导致内核为您的应用程序执行工作。其中很多工作都计入了内核任务,但实际上是由您的应用程序间接完成的。