このページの本文へ

前へ 1 2 3 4 次へ

基礎から覚える 最新OSのアーキテクチャー 第8回

意味の違いがわかる? タスクとプロセスとスレッド

2011年12月01日 18時29分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

 「マルチタスク」という言葉を目にしたことのない人は、ASCII.jp読者にはまずいないだろう。また、最近ではあまり聞かないが、「タスク」と似たような用語に「ジョブ」がある。そのため、かつては「マルチジョブ」といった表現がされていたこともある。さらに似たような用語として「プロセス」もあり、やはり「マルチプロセス」という用語がある。また、マルチタスクと同じ意味で使われる言葉に、「マルチプログラミング」というものもある。

 いずれも意味としては、「複数のアプリケーションを同時に実行できること」を示しているが、どうしてこんなに複数の用語があるのだろう? 理由のひとつは、かつてコンピューターメーカーがOSを作ってたときに、それぞれのメーカーで異なる用語を使っていたことにある。あるメーカーは、アプリケーションを実行することを「タスクを起動」と言い、別のメーカーでは「ジョブを起動」と呼んだわけだ。

 今回はオペレーティングシステム(以下OS)とプロセスの関係を、はっきりさせてみよう。

「プログラムを実行」したときに何が起こるのか?

 プログラムを実行するにはメモリーに読み込む必要があることは、本連載でたびたび説明したとおりだ。そして一般的なOSでは、アプリケーションプログラムはファイルとして、ストレージに格納されている。これを「実行ファイル」と呼んでいる。Windowsではこの実行ファイルの型式が定められており、OSは実行ファイルを読み込んで、メモリーへ配置する。このときの状態は、ファイル内でのデータの並び順と少し違う。さらに実行ファイル内の設定情報などから、利用するメモリーを確保する。

 多くのOSでは実行ファイル内に、プログラムコード部分とデータ部分を分けて持っている。データ部分はプログラムが利用するためのデータで、プログラミング言語のレベルでいえば、最初から定義してある「定数」や初期化されている「変数」などに相当する。例えばプログラム中で表示するメッセージなどは、一種の定数として実行ファイル中に格納されている。

 なおプログラミング経験のない方向けに説明すると「定数」とは、書き換えられることのないデータ領域のこと。変数とはプログラム実行中に書き換えられる(可能性のある)データ領域で、これには初期値のあるものとないものがある。

 OSは実行ファイルを読み取ると、解析して必要なデータをファイルからメモリーへコピーしたり、実行ファイル内の情報を読んで、メモリー内に領域を確保したり、さらに必要なレジスターを設定したのちに、プログラムを実行する。

 Windowsでは、「PE型式」と呼ばれる実行ファイル形式が使われているが、ファイルとしては「.EXE」という拡張子を持つのはご承知のとおり。拡張子EXEの実行ファイル形式はMS-DOSの時代に定義されており、EXE型式というフォーマットを持っているが、PE型式はMS-DOS用のEXE型式を含んでいる。

 実行ファイルを元にメモリー内に確保されていく領域を「セクション」と呼ぶ。PE型式では実行ファイル内に、確保するセクションに対応するデータが含まれている。そのため、セクションはメモリー上の領域を示すと同時に、実行ファイル中の対応した領域を示す用語としても使われる。

 ちなみに、PE型式はUNIXなどで使われていた「COFF」(Common Object File Formet)を拡張して作られたため、UNIXの習慣が持ち込まれている。例えば、実行ファイル中のプログラムコードのセクションには、「.text」という名前が付けられている。そのほかにも、初期値のある変数領域である「.data」や、初期値のない変数領域「.bss」などがある。一方Windows独自の領域としては、アイコンなどが含まれる「リソース」セクションがある。

 このようにWindowsを含む多くのOSでは、アプリケーション実行前にメモリー内にアプリケーション起動のためのセクションを確保する。またOSは、各セクションに何が入っているのかを把握している。

 このようにして作られたメモリーの状態を、「実行イメージ」と呼ぶ(図1)。実行イメージは実行ファイルから作られるが、アプリケーションに割り当てられた仮想メモリー環境内に各領域をそれぞれ適切に配置するため、実行ファイルとまったく同じビットの並びにはならない。

図1 実行ファイルから作られた実行イメージの構造

前へ 1 2 3 4 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン