協調せぬマルチタスク:その仕組みと利点

ITを学びたい
「プリエンプティブマルチタスク」って、複数のアプリを同時に動かすって意味ですよね?

IT専門家
そうね、同時に動かすという意味ではマルチタスクという言葉で合っているわ。でも、プリエンプティブマルチタスクは単に同時に動かすだけじゃないのよ。それぞれのアプリに使う時間を強制的に割り振る点が重要なの。

ITを学びたい
強制的に割り振るってどういうことですか?

IT専門家
アプリ自身ではなく、OS(基本ソフト)がCPUの時間を管理して、各アプリに順番に時間を与えるの。アプリが勝手にCPUを使い続けることはできないようにOSが制限しているのよ。そうすることで、一つのアプリが固まっても、他のアプリやOS全体が影響を受けにくくなるの。
プリエンプティブマルチタスクとは。
コンピュータの専門用語で『プリエンプティブマルチタスク』というものがあります。これは、複数のソフトを同時に動かす技術のひとつです。パソコンの頭脳であるCPUの時間を、それぞれのソフトに強制的に分けて割り当てることで、複数のソフトが同時に動いているように見せます。WindowsNTやWindows2000以降のWindows、それにMacOSやUNIXといったOSで使われています。それぞれのソフトがCPUの時間を自分で管理する『ノンプリエンプティブマルチタスク』とは反対の仕組みです。ちなみに『プリエンプティブマルチタスク』は日本で生まれた言葉で、『プリエンプティブ(先取りする)』と『マルチタスク(複数の作業)』を組み合わせたものです。『非協調的マルチタスク』とも呼ばれます。
はじめに

計算機を使う上で、複数の仕事を同時にこなしたい場面はよくあります。文章を書きながら音楽を聴いたり、調べ物をしながら動画を見たりするといった状況です。このような複数の仕事を同時に行うことを可能にするのが、複数作業同時処理という技術です。複数作業同時処理には、大きく分けて二つのやり方があります。一つは、各仕事が自主的に他の仕事に処理時間を譲るやり方です。もう一つは、割り込みによって強制的に仕事を切り替えるやり方です。今回ご紹介するのは、この後者のやり方、つまり横取り式複数作業同時処理です。
横取り式複数作業同時処理では、計算機は非常に短い時間を単位として、次々と異なる仕事に処理時間を割り当てていきます。この短い時間の単位を時間片と呼びます。各仕事はこの時間片の間だけ処理を実行し、時間片が終了すると、計算機は強制的に次の仕事に処理を切り替えます。この切り替えは非常に高速で行われるため、利用者には複数の仕事が同時に実行されているように感じられます。
例えば、音楽を聴きながら文章を書いているとします。横取り式複数作業同時処理では、音楽再生の仕事と文章作成の仕事にそれぞれ短い時間片が割り当てられます。計算機は、音楽再生の仕事の時間片が終わるとすぐに文章作成の仕事に切り替え、文章作成の時間片が終わるとすぐに音楽再生の仕事に戻ります。この切り替えが非常に速いため、音楽が途切れることなく再生され続け、同時に文章作成も滞りなく行えます。
横取り式複数作業同時処理は、現代の計算機の基幹部分を司る仕組みの中で広く使われている重要な技術です。この技術のおかげで、私たちは複数の仕事を効率的に同時に行うことができ、計算機の利便性を最大限に活かすことができるのです。
仕組み

コンピュータの頭脳ともいえる中央処理装置は、実は複数の仕事を同時に行っているように見えて、超高速で順番に切り替えながら各作業を進めているのです。これを支えるのが「先取り複数作業方式」と呼ばれる技術です。この方式では、基本ソフトとも呼ばれる運行管理ソフトが司令塔の役割を果たし、各応用ソフトに中央処理装置の利用時間を細かく割り振って、順番に作業を進めるように指示を出します。
各応用ソフトは、運行管理ソフトから割り当てられた時間内に、自分の処理を行います。決められた時間がくると、たとえ作業が途中でも、制御を運行管理ソフトに返さなければなりません。まるで、リレーのバトンパスのように、次々と制御が受け渡されていきます。この時間配分は非常に細かく、ミリ秒単位で行われます。そのため、利用者から見ると、複数の応用ソフトが同時に動いているように見えるのです。
この仕組みを、料理の現場に例えてみましょう。一つの厨房に複数の料理人がいるとします。各料理人は、決められた時間だけ調理台を使えます。時間になったら、たとえ料理の途中でも、次の料理人に調理台を譲らなければなりません。各料理人は、自分の持ち時間を最大限に活用して、作業を進めます。持ち時間が短い場合は、下ごしらえだけ済ませておくなど、工夫が必要になります。運行管理ソフトも同様に、各応用ソフトに適切な時間配分を行い、全体的な効率を高める役割を担っているのです。このように、先取り複数作業方式によって、中央処理装置は限られた資源を有効活用し、複数の仕事を効率よく処理しているのです。

利点

時分割方式、つまりあらかじめ決められた短い時間でプログラムを切り替えていくことで、複数のプログラムを同時に動かしているように見せる仕組みには、大きな良い点があります。一つのプログラムが問題を起こして動かなくなっても、全体の動きを止めてしまうことを防げるのです。
従来のやり方では、一つのプログラムが動きを止めると、全体の制御も行えなくなり、コンピュータ全体が止まってしまうことがありました。そうなると、作業中のデータが消えてしまうこともあり、大きな問題でした。しかし、時分割方式であれば、オペレーティングシステム(基本ソフト)がそれぞれのプログラムの実行時間を管理しているため、一つのプログラムが止まっても、基本ソフトが強制的にそのプログラムから制御を取り上げ、他のプログラムに処理時間を割り当てます。これにより、システム全体が安定して動き続け、利用者は安心して作業を続けられます。
この仕組みを、道路の交通に例えてみましょう。もし、ある道路で事故が起き、車が動かなくなってしまったとします。このような時、時分割方式のように交通整理員が他の車に迂回路を指示することで、全体の交通の流れを維持できます。もし交通整理員がいなければ、事故車両によって道路全体が塞がってしまうかもしれません。時分割方式は、まさにこの交通整理員のような役割を果たし、コンピュータ全体がスムーズに動くように調整しているのです。
このように、時分割方式は複数のプログラムを同時に動かすだけでなく、システム全体の安定性を高めるという大きな利点を持っています。これにより、コンピュータはより使いやすく、信頼性の高いものになります。
| 従来の方式 | 時分割方式 |
|---|---|
| 一つのプログラムが停止すると、システム全体が停止する可能性がある。 | 一つのプログラムが停止しても、OSが制御を他のプログラムに移し、システム全体は動作し続ける。 |
| 作業中のデータが失われる可能性がある。 | システム全体が安定して動作し、データ損失のリスクが軽減される。 |
| 例:道路で事故が起きると、他の車も動けなくなる。 | 例:交通整理員が迂回路を指示し、交通の流れを維持する。 |
採用例

多くの機器で使われている基本的な技術に、割り込み処理というものがあります。これは、現在行っている作業を一時的に中断し、より優先度の高い作業を先に行う仕組みです。この割り込み処理を応用して、複数のプログラムを同時に動いているように見せる技術が、多重処理です。多重処理には、大きく分けて二つの方式があります。一つは協調型、もう一つは先取り型です。
協調型は、各プログラムが自分のタイミングで処理を譲り合う方式です。しかし、もしあるプログラムが処理を譲らずに長時間占有してしまうと、他のプログラムが実行できなくなり、システム全体が停止してしまう可能性があります。これは、オーケストラで、ある楽器が勝手に演奏を続けてしまい、他の楽器や指揮者の指示を無視してしまうようなものです。
そこで登場するのが先取り型多重処理です。この方式では、オペレーティングシステムが各プログラムの実行時間を細かく制御します。たとえあるプログラムが処理を譲らなくても、オペレーティングシステムが強制的に処理を中断し、他のプログラムに実行権を渡します。これは、オーケストラの指揮者が、各楽器の演奏時間を適切に割り振り、全体を調和させている様子に似ています。この先取り型多重処理は、高い安定性と応答性を実現できるため、現在広く普及している多くのコンピュータで使われています。
例えば、ウィンドウズやマック、ユニックスなどのコンピュータは、この先取り型多重処理を採用しています。パソコンや携帯電話など、私たちの身の回りにある多くの機器が、この技術によって円滑に動作しているのです。これにより、複数のアプリを同時に起動しても、機器が停止することなく、スムーズに操作できるようになっています。まるで、指揮者が複数の楽器を巧みに操り、美しいハーモニーを作り出すように、先取り型多重処理は、様々なプログラムを調和させ、快適なコンピュータ環境を実現しているのです。
| 多重処理の方式 | 概要 | メリット | デメリット | 例え |
|---|---|---|---|---|
| 協調型 | 各プログラムが自分のタイミングで処理を譲り合う方式 | シンプル | あるプログラムが処理を譲らないとシステム全体が停止する可能性がある | オーケストラで、ある楽器が勝手に演奏を続けてしまい、他の楽器や指揮者の指示を無視してしまう |
| 先取り型 | OSが各プログラムの実行時間を細かく制御し、強制的に処理を中断、他のプログラムに実行権を渡す | 高い安定性と応答性を実現できる 複数のアプリを同時に起動しても、機器が停止することなく、スムーズに操作できる |
複雑 | オーケストラの指揮者が、各楽器の演奏時間を適切に割り振り、全体を調和させている |
対比

複数の処理を同時に行うように見せる技術は、大きく分けて二つの方法があります。一つは、各処理が自主的に短い時間だけ実行し、その後、制御を全体を管理する部分に返す方法です。これは、会議の場で各発言者が自分の発言時間を管理し、順番に発言していく様子に似ています。それぞれが決められた時間内で話せば、全員が発言する機会を得られます。しかし、もし一人でも時間を守らずに話し続ける人がいれば、他の人は発言できなくなってしまいます。この方式では、各処理が協調性を持って動作することが前提となります。もし、一つの処理が制御を返さないと、他の処理は待たされることになり、全体が停止してしまう可能性があります。これが、協調的な複数処理方式、いわゆる非横取り式複数処理方式です。
もう一つは、全体を管理する部分が、各処理の実行時間を強制的に制御する方式です。これは、会議の進行役が、各発言者に決められた時間内で発言するように指示し、時間を過ぎたら次の発言者に交代させるようなものです。たとえ、ある発言者が自分の発言時間を守らなくても、進行役が時間を管理することで、他の参加者も発言する機会を確保できます。この方式は、処理の実行を強制的に切り替えることから、横取り式複数処理方式と呼ばれます。この方式では、たとえ一つの処理が制御を返さなくても、全体を管理する部分が強制的に制御を他の処理に切り替えるため、システム全体の安定性を維持できます。非横取り式に比べて複雑な仕組みが必要になりますが、現代の計算機システムでは、この横取り式複数処理方式が主流となっています。なぜなら、一つ一つの処理が協調性を保つことを期待するよりも、全体を管理する仕組みに任せた方が、システム全体の安定性や応答性を高めることができるからです。
| 項目 | 非横取り式 (協調的) | 横取り式 (プリエンプティブ) |
|---|---|---|
| 制御 | 各処理が自主的に制御を返す | 全体を管理する部分が強制的に制御を切り替える |
| 処理の切り替え | 各処理の協調動作による | 強制的な切り替え |
| 安定性 | 1つの処理の暴走で全体が停止する可能性あり | システム全体の安定性が高い |
| 複雑さ | シンプル | 複雑 |
| アナロジー | 会議で各発言者が自主的に発言時間を管理 | 会議で進行役が発言時間を管理 |
| メリット | シンプル | システム全体の安定性・応答性が高い |
| デメリット | 1つの処理の暴走で全体が停止する可能性あり | 複雑な仕組みが必要 |
和製語について

『和製語』とは、日本語の要素を用いて作られた新しい言葉のことです。具体例として挙げられるのは、今回ご紹介する『プリエンプティブマルチタスク』です。これは、英語の『Preemptive multitasking』を日本語風に言い換えた言葉です。おもしろいことに、この中の『マルチタスク』という言葉自体も和製英語であり、本来の英語表記は『Multitasking』となります。
情報技術の分野では、このような和製語や和製英語が数多く存在します。これらの言葉は、日本語で技術内容を理解する際に役立ち、複雑な概念を分かりやすく説明する助けとなっています。しかし、国際的な交流の場では、これらの言葉が通じない可能性があるため、注意が必要です。例えば、海外の技術者と話し合う際には、和製語ではなく、正式な英語の言葉を使った方が、誤解を招くことなく、スムーズに意思疎通をはかることができます。
また、技術に関する文書を作成する際にも、和製語の使い方には配慮が必要です。和製語を使う場合は、必要に応じて、正式な英語表記をカッコ書きで併記するなど、読み手に分かりやすいような工夫を凝らすことが重要です。
和製語は、日本語話者にとって便利な言葉ですが、国際的な場面や公式な文書では、その使用に注意を払う必要があります。適切な言葉を選ぶことで、より正確で円滑なコミュニケーションを実現できるでしょう。特に技術系の言葉は、意味の取り違えが大きな問題に発展する可能性も秘めているため、状況に応じて適切な表現を使い分けることが重要です。
| 和製語/和製英語 | メリット | デメリット | 注意点 |
|---|---|---|---|
| プリエンプティブマルチタスク (Preemptive multitasking) マルチタスク (Multitasking) |
日本語で技術内容を理解しやすい 複雑な概念を分かりやすく説明できる |
国際的な交流の場で通じない可能性がある 誤解を招く可能性がある |
海外の技術者との会話では正式な英語を使う 文書作成時は正式な英語表記を併記する |
