OSは,ハードウエアを利用可能にする基本機能を提供するソフトだ。では,具体的にどのような機能を提供しているのだろうか。今回は,タスク制御,プロセス間通信,仮想記憶といったOSの基本的な機能について解説する。

 ITproの読者であれば「OS(Operating System)」が何であるかを知らない人はいないだろう。OSは,コンピュータのハードウエアを利用可能にしてくれるソフトウエアである。JISではOSのことを「プログラムの実行を制御するソフトウエアであって,資源割り振り,スケジューリング,入出力制御,データ管理などのサービスを提供するもの」と定義している。

 それでは,私たちITエンジニアは,OSとどう付き合うべきだろうか。私たちはOSを通してコンピュータを利用している。したがって,OSにできることが,コンピュータにできることのすべてだと言える。私たちはOSが持つ様々な機能(サービス)の種類と使い方を知り,それらを効果的に応用したコンピュータシステムを構築し,エンドユーザーに提供していかなければならない。

 今回は,改めてOSの主要な機能を見てみよう。なお,具体例を示すときは,パソコン用OSであるWindows(Windows 95以降)を使うことにする。

限られたハードを有効活用

 ソフトウエアの種類は,「OS」と「アプリケーション」に大別できる。OSがコンピュータのハードウエアを利用可能にしてくれた状態で,アプリケーションが動作する。このことから,OSのことを「基本ソフトウエア」と呼び,アプリケーションのことを「応用ソフトウエア」とも呼ぶ。アプリケーションがOSの持つ機能を応用しているというわけだ。

 アプリケーションとは,特定の用途に適用(apply)させたソフトウエアという意味である。OSが汎用的な実行環境を用意し,その上で特定の用途向けのアプリケーションが動作するのだ。OSは,エンドユーザーからの要求に応じて,任意のアプリケーションをメモリにロードして実行する。

 コンピュータが複数のアプリケーションを同時に実行できるのは,OSに「資源割り振り」や「スケジューリング」という機能があるからだ。OSが複数のアプリケーションにハードウエア資源(CPU,メモリ,I/O)を割り振り,実行の順序をスケジューリングするのである。

 キーボードやディスプレイ,ディスク装置などの周辺装置と入出力制御(I/O制御)を操作するのも,OSの役割だ。またファイルシステムやアクセス権限など,データ管理の仕組みも提供してくれる。

同時実行はCPUの空きを利用

 OSから見れば,CPUもアプリケーションに割り当てて使わせるハードウエア資源の1つに過ぎない。つまり,CPUはプログラムを解釈して実行する機能を持ったハードウエア資源なのだ。

 OSがCPUに割り当てて実行させるプログラムの単位を「タスク」と呼ぶ。タスクと似た概念の言葉として「プロセス」と「スレッド」がある。タスクとプロセスは,同義語だと考えてよい。CPUから見たプログラムの実行単位であり,メモリ空間(後で説明するプロセス空間)を割り当てる単位でもある。複数のプログラムが同時に動作することを「マルチタスク」あるいは「マルチプロセス」とも呼ぶ(「マルチプログラミング」とも呼ぶ)。

 スレッドは,1つのプロセスをさらに小さな単位に分けたものだ。複数のスレッドが同じメモリ空間を共有するため,高速に切り替えて実行 できるという特徴がある。

 1つのプロセスの中にある複数のスレッドを同時に実行することを「マルチスレッド」と呼ぶ。荒っぽく言えば,Windows上で「Word」と「Excel」を同時に実行することがマルチタスク(マルチプロセス)であり,Wordの文書ファイルを印刷中に,文書の編集を行うことがマルチスレッドである(図1)。

図1●タスク(プロセス)とスレッドの違い
図1●タスク(プロセス)とスレッドの違い
「タスク(プロセス)」はプログラムの実行単位であり,特定のメモリ空間が割り当てられる。一方,タスク(プロセス)をさらに細かい単位に分割した実行単位が「スレッド」。複数のスレッドは同じメモリ空間を共有できるため,高速に切り替えられる
[画像のクリックで拡大表示]

 では,タスク,プロセス,スレッドのいずれであれ,1つのCPUを使ってなぜ複数のプログラムを同時に実行させられるのか。ポイントは,プログラムは実行される際に常にCPUを必要としているわけではない,ということだ(図2)。

図2●複数のプログラムを同時に実行する仕組み
図2●複数のプログラムを同時に実行する仕組み
プログラムは「入力」,「演算」,「出力」という3つの基本的な処理から成るが,CPUを使うのは演算だけで,入力と出力はI/Oを使う。このため,プログラムがI/Oを使っている間はCPUが空き状態になり,この時間を使って別のプログラムを実行できる

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら