略してOSと呼ばれます)と呼びます。オペレーティング・システムは以下のような機能を提供します。ハードウェア制御のための細かい手順は内部的に隠ぺいして、「記憶装置にファイルを書き込む」というような、意図に即したレベルのAPIを提供します。同じ記憶装置であっても、メーカーによって仕様が異なります。ハードウェア制御用のソフトウェア(ドライバー(driver)と呼びます)の仕様を定めることで、異なるハードウェアを同じAPIで制御できるようにします。複数のアプリケーションが安全で効率的に動作できるように、CPUやメイン・メモリなどの計算資源を一元管理します。他のアプリケーションのデータを破壊しないようにしたりします。一般的に、コンピューターは、CPUやメイン・メモリだけでなく、周辺機器などのさまざまなハードウェアを持っています。記憶装置に分類できます(図1)。前述の通り、これらのハードウェア制御がオペレーティング・システムの役割の1つです。ちなみに、このような周辺機器からの入力、周辺機器への出力のことを、input/outputを略してI/O処理と呼びます。ハードウェア割り込みCPUからハードウェアを制御するためには、ハードウェアとCPUとの間でデータのやり取りが必要になります。ハードウェアとのデータのやり取りの方法には大まかに言うと、以下のような2通りの方法があります。CPU側から定期的にハードウェアの状態を確認する処理を行います。handler)と呼ばれる特殊な処理を実行する仕組みが備わっています。図2に示すように、この仕組みを利用して、ハードウェアからのデータを受け取ることができます。ハードウェアによるの割り込みハードウェアの状態が更新される頻度が低い場合、ポーリングは無駄な処理を定期的に行うことになり、非効率です。多くの場合、CPUの動作速度と比べるとハードウェアの状態更新頻度はあまり高くなく、割り込みによる制御の方が高効率で、こちらの方式が多用されます。マルチタスクコンピューターの中でも、パソコンのように多機能なものの場合、1つのコンピューター内で様々なプログラムが同時に動いています。図3に示すように、一定間隔で処理を切り替えることによって、見かけ上の同時実行を実現しています。このような動作をマルチタスク(multitasking)と呼びます。ハードウェアによるの割り込みマルチタスクの実現には以下のような2通りの手法があります。アプリケーション側が一定間隔で処理を中断し、実行権をオペレーティング・システムに返す方式。オペレーティング・システムが強制的に実行権を奪う方式。何らかの不具合でアプリケーションが止まってしまった場合、コンピューター全体が止まることになります。プリエンプティブ・マルチタスクは、多少オーバーヘッドがあるものの、このような危険性はありません。最近のパソコンのように、高性能なCPUを搭載しているものは、一般的に、プリエンプティブ・マルチタスク方式を取っています。仮想メモリハードディスクなどの記憶装置は、メイン・メモリと比べて数ケタ低速で、数ケタ大容量です。キャッシュ・メモリという高速/小容量のメモリを使って高速な動作を実現する方法を紹介しました。これとは逆に、低速/大容量の記憶装置を使って、見かけ上のメモリ容量を増やすことが考えられます。memory)と呼びます。アプリケーションからは実際のデータがメイン・メモリ上にあるか、記憶装置に書き出されているかは見えません。図4に示すように、アプリケーションから見えるメモリを仮想メモリ空間、メイン・メモリや記憶装置上に確保される物理的な領域を物理メモリ空間と呼びます。仮想メモリ空間と物理メモリ空間この図のように、仮想メモリは、断片的に確保された物理領域を、アプリケーションからは連続的に見えるようにする効果もあります。交換、取り換え)と呼びます。メイン・メモリと記憶装置の速度差は下手をすると数千倍はあり、スワップが起きると体感でわかるくらい動作が遅くなります。まで気兼ねなくご連絡ください。ついて運営者について。