カーネルスレッド

カーネルスレッドとは、カーネルによって切り替えが行われるスレッドのことです。

カーネルスレッドは、マルチタスクの仕組みを利用して実現されます。

つまり、カーネルスレッドは、マルチタスクOSから見ると、ほぼプロセスと同じ扱いになります。

よって、カーネルスレッドの切り替えに掛かる時間は、マルチタスクにおけるプロセスの切り替えに掛かる時間と同程度です。

これにより、カーネルスレッドの切り替えは、ユーザースレッドの切り替えと比較して、時間が掛かります。

マルチプロセッシングとカーネルスレッド

カーネルスレッドでは、各スレッドがプロセス扱いなので、マルチプロセッシングが可能です。

カーネルスレッドにおけるメモリアドレス空間の共有

ユーザープロセス上で作られたカーネルスレッドは、そのユーザープロセスのユーザー空間にしかアクセスできません。

一方、カーネル上で作られたカーネルスレッドは、カーネル空間にしかアクセスできません。

これらは、マルチスレッドの特徴である「メモリアドレス空間の共有」によるものです。