All Topics
All Topics
Technology
Technology
Design
Design
Programming
Programming
Science
Science
News
News
Gaming
Gaming
Entertainment
Entertainment
Business
Business
Finance
Finance
Sports
Sports
Health
Health
Food
Food
Travel
Travel
Art
Art
Music
Music
Books
Books
Education
Education
Politics
Politics
Personal
Personal
No algorithm. No AI slop. No ads. Just RSS. Pro-human. Indie writers. Real journalism. Open web. Chronological. Hand toasted.

Apple's Clutch Scheduler: Intra-Cluster Thread Scheduling Design for XNU Kernel

By

tosh

3mo ago· 18 min readenCode

Summary

This document describes Apple's Clutch Scheduler, an intra-cluster thread scheduling design for the XNU kernel. It explains how the scheduler addresses the challenge of balancing latency-sensitive workloads (like UI interactions and multimedia) with starvation avoidance for lower priority batch workloads (like photo sync and source compilation). The traditional Mach scheduler's priority-based approach is contrasted with the Clutch Scheduler's design that groups threads into 'clutches' for more efficient CPU allocation across different workload types on Apple's heterogeneous processor architectures.

Key quotes

· 3 pulled
The XNU kernel runs on a variety of platforms with strong requirements for being dynamic and efficient.
It needs to deliver on a wide range of requirements; from quick access to CPU for latency sensitive workloads (eg. UI interactions, multimedia recording/playback) to starvation avoidance for lower priority batch workloads (eg. photos sync, source compilation).
The traditional Mach scheduler attempts to achieve these goals by expecting all threads in the system to be tagged with a priority number and treating high priority threads as more important than lower priority ones.
Snippet from the RSS feed
Contribute to apple-oss-distributions/xnu development by creating an account on GitHub.

You might also wanna read