ソフトウェア① オペレーティングシステム

目次

ソフトウェア

ソフトウェアとは、コンピューター上で動作するプログラムやデータの総称であり、コンピューターシステムを制御して、様々なタスクを実行するための命令や手順が含まれています。

具体的には、オペレーティングシステム(OS)やアプリケーションソフトウェア、データベース、ブラウザ、エディタなどがあります。

ソフトウェアは、コンピューターのハードウェアとともにシステム全体を構成する重要な要素であり、コンピューターの機能性や利便性に大きく貢献しています。

オペレーティングシステム

オペレーティングシステム(Operating System、OS)とは、コンピュータのシステム全体を管理し、ハードウェアとソフトウェアのリソースを効率的に管理するためのソフトウェアです。

OSは、コンピュータの起動からシャットダウンまでの全体的な管理を担当し、アプリケーションソフトウェアとハードウェアの間のインタフェースとして機能します。

また、リソース管理、ファイルシステム管理、ユーザーインタフェース、ハードウェアドライバ、セキュリティ、ネットワーキングなどの機能を提供します。

OSには以下のような種類があります。

OS名概要
Windowsマイクロソフト社が開発したPC用のオペレーティングシステムです。ビジネスや個人向けに広く利用されています。
macOSApple社が開発したPC用のオペレーティングシステムです。Appleのハードウェアでのみ動作します。
UNIX主に大規模なサーバーに使用されるオペレーティングシステムで、多くの派生版が存在します。UNIXは、C言語の開発とともに発展し、多くのネットワークプロトコルやセキュリティ機能を提供します。
Linuxオープンソースのオペレーティングシステムです。フリーソフトウェアとして提供され、サーバーやスーパーコンピューター、IoT機器などで広く利用されています。
AndroidGoogle社が開発したモバイル用のオペレーティングシステムです。スマートフォンやタブレット、IoT機器などで利用されています。
また、オープンソースソフトウェアであり、Androidのソースコードは、Apacheライセンス2.0の下で公開されています。これは、個人や企業が自由にAndroidを使用してカスタマイズしたり、改良したり、再配布したりすることができることを意味しています。
iOSApple社が開発したモバイル用のオペレーティングシステムです。iPhoneやiPad、iPod touchなどApple社製品で利用されています。
ChromeOSGoogleによって開発されたオペレーティングシステムで、主にGoogle Chromeブラウザを中心に構築されています。このOSは、クラウドベースのアプリケーションとのシームレスな統合が可能で、軽量で高速な動作が特徴です。Chromebookと呼ばれるGoogleのノートパソコンにプリインストールされています。

OSが利用する技術

OSが利用する技術には以下のようなものがあります。

スプーリング (Spooling)

スプーリングは、データを一時的に保存してから、そのデータを順番に別のプロセスやデバイスに送信する技術です。

たとえばプリンターは、大量のデータを一度に処理するのに時間がかかります。このとき、スプーリングを利用すると、プリントしたいデータを一時的な場所(スプール)に保存しておき、プリンターがデータを処理する準備が整ったときに、このスプールから順番にデータを取り出して印刷します。

例えば、印刷ジョブA(100枚)、印刷ジョブB(200枚)、印刷ジョブC(20枚)のように、複数の印刷ジョブがプリンターに順番に送られた場合、それぞれのジョブがプリンターで処理される順番を待つ間、データを一時的に保存しておくことができます。

プリンターが印刷ジョブAを処理している間、ジョブBとジョブCはスプール領域(一時保存領域)に保持されます。ジョブAの印刷が完了すると、次にジョブBがプリンターに送られ、その後にジョブCが処理されます。

これにより、ユーザーや他のプログラムはプリンターが忙しい時でもデータを送ることが可能になり、システム全体の効率が上がります。

「スプーリング」例え話

スプーリングは、レストランで注文を受けるときのシステムに似ています。

客が注文した料理は一時的にキッチンの「待ち行列」に追加され、シェフは順番に料理を調理します。

これは、客が注文した時点で料理がすぐに完成するわけではなく、一時的に「待機」してから料理が完成するという概念に似ています。

同様に、スプーリングでは、コンピュータが実行するタスク(印刷など)は一時的に「待ち行列」に追加され、デバイスが利用可能になったときに順番に実行されます。

仮想記憶 (Virtual Memory)

仮想記憶は、物理的な主記憶(メモリ)の容量を超えてプログラムを動作させることを可能にするシステムです。

仮想記憶方式では、物理的なメモリがフルになったとき、一時的に使われていないデータやプログラムをハードディスク等のストレージに移動(スワップアウト)します。そして、必要なデータやプログラムがあれば、ストレージからそれを物理的なメモリに戻します(スワップイン)。

これにより、物理的なメモリの容量以上のメモリを使っているかのようにプログラムが動作することを可能にします。

「仮想記憶方式」例え話

仮想記憶の概念は、ある種の倉庫管理に似ています。

想像してみてください、あなたは小さな部屋を持っていますが、大量の荷物を保管する必要があります。この部屋は物理的な主記憶(メモリ)を表し、荷物はプログラムやデータを表します。

部屋のスペースが足りないときには、あまり使わない荷物を大きな倉庫(これがハードディスクやSSD)に移動します。必要な荷物があれば、倉庫から部屋に戻します。

これにより、部屋(物理的なメモリ)の限られたスペースを超えて荷物(プログラムやデータ)を管理することができます。

関連用語

リブート

リブート(再起動)は、コンピューターやスマートフォンなどのデバイスを一度シャットダウンし、すぐに再び起動することです。

リブートはシステムの更新を適用するため、またはシステムの不具合やエラーを解決するために行われることが多いです。

デバイスをリブートすることで、OS(オペレーティングシステム)やアプリケーションの一時的な問題がリセットされ、多くの場合、システムの安定性やパフォーマンスが改善されます。

リブートには、ソフトリブートとハードリブートの二つの方法があり、ソフトリブートはOSを通じて行われ、ハードリブートは物理的な電源ボタンを使用して行われます。

目次