タスクマネージャの「プロセス」タブを選択すると,そこには驚くほど多数のプロセスが一覧表示されます.その多くはサービスに対応します.

CPUは一度には1つのことしかできません.それなのに数十個ものプロセスを並行して実行しているとは,一体どうやったらそれが可能なのでしょう.

それがOSタスク管理とメモリ管理が行っていることです(2.11参照).

以下では簡単のためにタスク-プロセス-スレッドの関係が1対1になっているとします.つまり,タスクの起動・終了は,同時にプロセスの起動・終了であり,それはさらにスレッドの起動・終了でもある,という状況を想定して話を進めます.

ここではタスクを念頭において話を進めるのですが,1つのタスクが1つのプロセスに対応するのですから,これからお話しすることはまさにプロセス管理に関するものです.さらに,1つのプロセスの実行は1つのスレッドで行われるのですから,プロセス管理の説明はスレッドの管理の説明でもあるということになります.

電源を入力した後,CPUはブートストラッピングを行い,利用者からの入力待ちの状態になります.この時すでに多数のサービスが実行されていますから,RAMにはこれらのサービスのプログラムやデータ,すなわちプロセスが装填されています

利用者の起動するタスクが,そこにさらに装填されます.

このときOSは,RAMをどのように使い分けるかに関する,いくつもの問題を解決する必要があります.これらの問題を解決するのはメモリ管理2.262.33参照)の機能です.

そして,求めた解決策に従って,OSは,実際にプログラムやデータを装填して起動します.

こうして,OSはタスクとサービスに対応する多数のプロセスを実行している状態になります.それがマルチタスク環境のありふれた姿です.

 しかし,まだ問題があります.それはCPUがどうやって多数のプロセスをこなすかです.それを次項以降で説明します.