コンピュータは、たくさんのプログラムを同時に実行することができる。
プログラムの実行単位をタスクorプロセスといい、 複数プログラムを同時に実行できるシステムのことをマルチタスクという。
1つのCPUは同時に1つのプログラムしか実行できないが、実行するプログラムを短い時間間隔で切り替えることで、同時に複数の処理をしているように見せかけている。
プロセスを切り替えることをコンテキストスイッチといい、その時点でのCPU内部の状態を保存して、別のプログラムを実行していた時のCPUの状態に戻すことを意味している。
プログラムの実行途中にコンテキストスイッチをして、メモリ上にある同じプログラムを実行できることを、再入可能orリエントラントであるという。
そのためには、2つ以上のコンテキスト(CPU内部の状態)で同一のプログラムを実行していても、お互いのコンテキストの処理に影響がないようになっている必要がある。