1:1 モデルの主な欠点は、カーネルとユーザー空間の間のコンテキスト切り替えのオーバーヘッドが大きいことです。 N:1 モデルはこの問題を解決しますが、新たな問題を生み出します。カーネル内のスレッドは実行スケジューリングの分割不可能な単位であるため、オペレーティング システム カーネル内の XNUMX つのスレッドに関連付けられたユーザー スレッドは、CPU コア間で拡張できず、最終的に CPU コアに関連付けられてしまいます。単一の CPU コア。
M:N モデルはハイブリッドであり、ユーザー空間の N スレッドを OS カーネルの M スレッドにマッピングすることで、上記の欠点をすべて解消します。これにより、コンテキスト切り替えのオーバーヘッドを削減し、CPU コア全体でのスケーリングを確実に行うことができます。 このオプションの代償として、ユーザー空間でのスレッド スケジューラの実装が非常に複雑になり、カーネル スケジューラとアクションを調整するメカニズムが必要になります。