マルチタスク・オペレーティング・システムとして、Linuxはバックグラウンドで多くのプロセス(基本的にはプログラムやコマンドまたは同様のタスク)の実行をフォアグラウンドで継続してサポートします。
フォアグラウンドプロセス
A フォアグラウンドプロセス 直接実行して完了するまで待つコマンドまたはタスクです。いくつかのフォアグラウンドプロセスは、進行中のユーザインタラクションをサポートするいくつかのタイプのユーザインタフェースを示す一方、他のタスクはタスクを実行し、そのタスクを完了している間にコンピュータを「フリーズ」する。
シェルから、プロンプトでコマンドを入力することでフォアグラウンドプロセスが開始されます。たとえば、アクティブディレクトリ内のファイルの単純なリストを表示するには、次のように入力します。
$
ls
ファイルのリストが表示されます。コンピュータがそのリストを準備して印刷している間は、コマンドプロンプトから何もできません。
バックグラウンドプロセス
フォアグラウンドプロセスとは異なり、シェルはaを待つ必要はありません バックグラウンドプロセス より多くのプロセスを実行する前に終了します。利用可能なメモリ量の範囲内で、多くのバックグラウンドコマンドを次々と入力することができます。コマンドをバックグラウンド・プロセスとして実行するには、コマンドを入力して、コマンドの末尾にスペースとアンパーサンドを追加します。例えば:
$
コマンド1&
終わりのあるアンパサンドでコマンドを発行すると、シェルは作業を実行しますが、コマンドが完了するのを待たずにすぐにシェルに戻り、シェルプロンプト(%for Cシェル、およびBourneシェルとKornシェルの$)が返されます。この時点で、フォアグラウンドプロセスまたはバックグラウンドプロセスのいずれかに別のコマンドを入力できます。バックグラウンドジョブは、フォアグラウンドジョブより低い優先順位で実行されます。
バックグラウンドプロセスの実行が完了すると、画面にメッセージが表示されます。
プロセス間の切り替え
フォアグラウンドプロセスの処理に時間がかかる場合は、Ctrl + Zキーを押して停止します。停止したジョブはまだ存在しますが、実行は中断されています。バックグラウンドでジョブを再開するには、次のように入力します。 bg 停止したジョブをバックグラウンド実行に送信します。
フォアグラウンドで中断したプロセスを再開するには、次のように入力します。fg そのプロセスがアクティブなセッションを引き継ぎます。
すべての中断されたプロセスの一覧を表示するには、ジョブ コマンドを使用するか、または上 コマンドを使用してCPUを大量に消費するタスクの一覧を表示し、システムリソースを解放または停止してシステムリソースを解放することができます。
シェル対GUI
マルチタスクは、シェルかグラフィカルユーザーインターフェイスのどちらで作業しているかによって、動作が異なります。シェルからのLinuxは、仮想端末ごとにアクティブなフォアグラウンドプロセスを1つだけサポートします。しかしながら、ユーザの実用的な観点から、ウィンドウ環境(例えば、デスクトップを有するLinuxはテキストベースのシェルではなく)は、複数の同時フォアグラウンドプロセスとして有効に機能するいくつかのアクティブウィンドウをサポートする。実際には、バックグラウンドのLinuxは、システムの安定性を促進し、エンドユーザの処理をサポートするために、GUIのプロセスの優先順位を調整します。




