TL;DR
コンピュータのメモリ空間のうち、OS のカーネルを直接操作できない領域。通常のアプリケーションが実行される場所である。カーネル空間と対になる。
仕組み
Wikipedia によると、ユーザ空間はユーザプロセスが動作するアドレス空間で、プロセスごとに割り当てられる。実行時には、プロセスのコードとデータがここにロードされる。一般的な実装では、1 つの連続した仮想アドレス空間を特定のアドレスで区切り、ユーザ空間とカーネル空間に分ける。分け方は OS や CPU のアーキテクチャによって異なる。ユーザプロセスがカーネル空間の範囲にアクセスすると、例外が発生する。
例
Windows 系や Unix 系の OS は、ユーザ空間とカーネル空間を分けている。一方、DOS や NetWare 3 はユーザ空間を持たない。
関連
- カーネル空間
- futex
- スピンロック
- ユーザレベルスレッド