オペレーティングシステムの概要
オペレーティングシステム
オペレーティングシステム(OS: Operating System)とは、コンピュータのハードウェアがコンピュータソフトウェアと通信し、動作できるようにするソフトウェアプログラムである。
- ハードウェア資源と情報をできるだけ効率的に運用するために、ハードウェアとユーザープログラムの間に存在するシステムプログラムを意味する。
- コンピュータを起動し、運用するプログラムである。
- 選択するオペレーティングシステムによって、使用できるアプリケーションが変わる。
- オペレーティングシステムの種類によって、PCやサーバーなどコンピュータの用途が決まる。
コンピュータを運用するプログラムの分類
- ソフトウェア
- アプリケーション
- ワープロ
- ゲーム
- グラフィック
- その他のアプリケーション
- オペレーティングシステム
- Windows
- UNIX
- Linux
- MacOS
- その他のOS
- アプリケーション
システムソフトウェア
コンピュータを運用するためのプログラムや、プログラミング言語を解釈するコンパイラなどをシステムソフトウェアという。
- 例)オペレーティングシステム
アプリケーションソフトウェア
ユーザーが実際の業務処理を行うために使用するプログラムをアプリケーションソフトウェアという。
- 例)ワープロソフト、表計算ソフト、データベース、コンピュータグラフィックスソフトウェア、ゲームソフトウェアなど
ドライバ
コンピュータにインストールされたハードウェアを動作させるプログラムをドライバという。
- 例)ビデオカードドライバ、サウンドカードドライバ、モデムドライバなど
オペレーティングシステムの主な目的
オペレーティングシステムには、主に二つの目的がある。
- コンピュータシステムの計算活動を管理し、コンピュータシステムが正しく動作するようにする。
- プログラムの開発と実行のための環境を提供する。
オペレーティングシステムの目標
オペレーティングシステムは、ユーザーの利便性を高め、システム性能を最大化することを目標とする。
- 処理能力の向上:決められた時間内に、できるだけ多くのデータを処理する
- 応答時間の短縮:処理要求から処理完了までにかかる時間を最小化する
- 信頼性の向上:システム障害に対応する
- 使いやすさの向上:ユーザーにとって便利な利用環境を追求する
オペレーティングシステムの構成
オペレーティングシステムを構成する二つの要素は、コンピュータを制御する制御プログラムと、プログラムを実行してデータを処理する処理プログラムである。
-
制御プログラム
- システム全体の動作およびプログラムの実行状態を監視する
- ユーザーが依頼した作業の開始や実行など、作業の流れを管理して処理する
- 入出力に関連するデータを統括して管理する
-
処理プログラム
- アセンブラ(Assembler)、コンパイラ(Compiler)、インタプリタ(Interpreter)など、高級言語で作成したソースプログラムを機械が理解できる機械語へ翻訳するためのプログラム
- アプリケーションソフトウェア
- ユーティリティ
パーティションの理解
パーティションとは、論理的に分割された領域を意味する。物理的なハードディスクは、OSによって論理ドライブとして認識されるための手順が必要であり、パーティションとはOSがハードディスクという物理装置上に、自身が使用する論理領域を設定する作業である。
一つのOSがハードディスクを利用するには、大きく二つの手順を経る必要がある。一つはディスク領域の一部または全部を自身の領域として宣言するパーティション設定であり、もう一つはFORMATによってファイルの入出力構造を作ることである。
パーティションが設定されていないディスクは認識できない。
ハードディスクを複数の論理ドライブに分割して使用するかどうかはユーザーの選択である。二つのOSを併用してインストールする場合は、必ず分割する。
カーネル
カーネルは、OSのすべての部分に基本サービスを提供する、コンピュータのオペレーティングシステムの中核であり、最も重要な部分である。
CPU、GPU
- CPU(central processing unit)
- 入出力装置、記憶装置、演算装置などを含むコンピュータリソースを管理する、最上位階層の中央処理装置である。
- GPU(graphics processing unit)
- グラフィックス処理装置
- 反復的で類似した大量の演算を行い、それを並列(parallel)に分割して処理するため、対象の処理ではCPUに比べて圧倒的に高速である。
メモリ
- コンピュータで作業を行うために、処理対象や結果などを保存する空間である。
- プログラムを実行するための情報はメモリに保存され、そこで処理される。
ヒープ領域とスタック領域の違い
プログラムを実行するには、プログラムがメモリにロードされる必要がある。そのため、オペレーティングシステムはプログラム実行のためにさまざまなメモリ空間を提供する。
- コード、データ、スタック、ヒープ領域が割り当てられ、それぞれの役割は次のとおりである。
- コード
- 実行するプログラムのコードが保存されるテキスト領域である。
- CPUはコード領域に保存された命令を一つずつ取り出して処理する。
- データ
- グローバル変数と静的変数がこれに該当する。
- プログラムの開始とともに割り当てられ、プログラムが終了すると消滅する。
- スタック
- スタック領域は、関数呼び出しに関係するローカル変数と引数が保存される領域である。
- 関数呼び出しとともに割り当てられ、関数呼び出しが終了すると解放される。
- ヒープ
- ヒープ領域は、ユーザーが直接管理できるメモリ領域である。
- ヒープ領域のメモリ空間は、ユーザーによって動的に割り当てられ、解放される。
- コード