コンピュータのハードウェアとソフトウェアの間を仲介する基本ソフトウェア。ユーザーとコンピュータの橋渡し役として機能する。
詳細を見る
OS(Operating System)は、コンピュータのハードウェアとソフトウェアの間を仲介する基本ソフトウェアです。ファイルシステムの管理、プロセス管理、メモリ管理、デバイス管理などの重要な機能を提供し、ユーザーインターフェースを通じてコンピュータの操作を可能にします。Windows、macOS、Linux、Android、iOSなど、様々なデバイスに対応した多様なOSが存在します。
例: Windows, macOS, Linux, Android, iOS
システム
基本ソフト
インターフェース
管理
OSによって実行されているプログラムの実行単位。メモリ空間、CPU時間、ファイルハンドルなどのリソースを割り当てられる。
詳細を見る
プロセス(Process)は、OSによって実行されているプログラムの実行単位で、独立したメモリ空間、CPU時間、ファイルハンドルなどのリソースを割り当てられます。プロセスは実行、待機、終了などの状態を持ち、OSのプロセススケジューラによって管理されます。マルチタスクシステムでは、複数のプロセスが同時に実行されているように見えますが、実際にはタイムシェアリングによって高速に切り替えられています。
例: タスクマネージャー, プロセスID, フォアグラウンド, バックグラウンド
実行単位
プログラム
リソース
管理
ストレージ上のデータを整理・管理する仕組み。ファイルとディレクトリの階層構造を提供し、効率的なデータアクセスを実現する。
詳細を見る
ファイルシステム(File System)は、ストレージデバイス上のデータを整理・管理する仕組みで、ファイルとディレクトリの階層構造を提供します。NTFS、FAT32、exFAT、HFS+、ext4など、様々な種類があり、それぞれ異なる特徴と制限を持ちます。ファイルの作成、読み取り、書き込み、削除、権限管理などの機能を提供し、データの整合性とセキュリティを保証します。
例: NTFS, FAT32, ext4, HFS+, ディレクトリ
データ管理
階層構造
ストレージ
整理
OSの中核部分で、ハードウェアとソフトウェアの間の低レベルインターフェースを提供。システムリソースの管理と制御を行う。
詳細を見る
カーネル(Kernel)は、OSの中核部分で、ハードウェアとソフトウェアの間の低レベルインターフェースを提供します。プロセス管理、メモリ管理、デバイス管理、ファイルシステム管理、ネットワーク管理などの基本的な機能を実装し、システムリソースの効率的な利用と保護を実現します。モノリシック、マイクロカーネル、ハイブリッドなどの設計アプローチがあります。
例: Linux kernel, Windows NT kernel, システムコール, ドライバー
中核
低レベル
ハードウェア
システム
物理メモリよりも大きなメモリ空間をプログラムに提供する仕組み。ページング技術により、効率的なメモリ管理を実現する。
詳細を見る
仮想メモリ(Virtual Memory)は、物理メモリ(RAM)よりも大きなメモリ空間をプログラムに提供する仕組みです。ページング技術により、使用頻度の低いメモリ内容をストレージに一時的に退避させ、必要に応じて読み込み直すことで、限られた物理メモリを効率的に活用します。また、各プロセスに独立したメモリ空間を提供し、セキュリティとメモリ保護を実現します。
例: ページング, スワップファイル, 仮想アドレス, 物理アドレス
メモリ管理
仮想化
ページング
効率化
ハードウェアデバイスとOSの間を仲介するソフトウェア。各デバイス固有の制御方法を抽象化し、統一的なインターフェースを提供する。
詳細を見る
デバイスドライバ(Device Driver)は、ハードウェアデバイスとOSの間を仲介するソフトウェアで、各デバイス固有の制御方法を抽象化し、統一的なインターフェースを提供します。プリンタ、グラフィックスカード、ネットワークカード、ストレージデバイスなど、様々なハードウェアに対応したドライバが必要です。適切なドライバがないと、デバイスは正常に動作しません。
例: グラフィックスドライバ, プリンタドライバ, ネットワークドライバ, USBドライバ
ハードウェア
インターフェース
抽象化
制御
アプリケーションプログラムがOSの機能を利用するためのインターフェース。カーネルモードとユーザーモードの境界を管理する。
詳細を見る
システムコール(System Call)は、アプリケーションプログラムがOSの機能を利用するためのインターフェースです。ファイル操作、プロセス制御、メモリ管理、ネットワーク通信などの基本的な機能を提供し、カーネルモードとユーザーモードの境界を安全に管理します。プログラムは直接ハードウェアにアクセスするのではなく、システムコールを通じてOSに処理を依頼します。
例: open(), read(), write(), fork(), exec()
API
カーネル
インターフェース
システム
複数のタスクを同時に実行する機能。プリエンプティブとノンプリエンプティブの方式があり、効率的なCPU使用を実現する。
詳細を見る
マルチタスク(Multitasking)は、複数のタスクを同時に実行する機能で、現代のOSの基本的な特徴です。プリエンプティブ(協調的)とノンプリエンプティブ(先制的)の方式があり、タイムシェアリングによって各タスクにCPU時間を割り当てます。これにより、ユーザーは複数のアプリケーションを同時に実行しているように感じることができます。
例: プリエンプティブ, タイムシェアリング, コンテキストスイッチ, スケジューラ
並行処理
スケジューリング
効率化
管理
グラフィカルユーザーインターフェース。アイコン、ウィンドウ、メニューなどの視覚的要素を用いて、直感的なコンピュータ操作を可能にする。
詳細を見る
GUI(Graphical User Interface)は、アイコン、ウィンドウ、メニュー、ボタンなどの視覚的要素を用いて、直感的なコンピュータ操作を可能にするインターフェースです。マウスやタッチスクリーンによる操作により、テキストベースのCLI(Command Line Interface)よりも使いやすさが向上しています。現在のデスクトップOS、モバイルOS、Webアプリケーションなどで広く採用されています。
例: ウィンドウ, アイコン, メニュー, ボタン
ユーザーインターフェース
グラフィカル
直感的
操作
コマンドラインインターフェース。テキストベースのコマンドでコンピュータを操作するインターフェース。効率的で自動化に適している。
詳細を見る
CLI(Command Line Interface)は、テキストベースのコマンドでコンピュータを操作するインターフェースです。キーボードからコマンドを入力し、テキストで結果を表示します。GUIよりも操作の学習コストは高いですが、効率的で自動化に適しており、システム管理、プログラミング、サーバー管理などの専門的な作業で重宝されます。
例: コマンドプロンプト, ターミナル, シェル, bash
コマンドライン
テキスト
効率的
自動化
ファイルやリソースへのアクセス権限を制御する仕組み。ユーザーとグループに対して、読み取り、書き込み、実行などの権限を設定する。
詳細を見る
権限管理(Permission Management)は、ファイルやリソースへのアクセス権限を制御する仕組みで、システムのセキュリティを確保する重要な機能です。ユーザーとグループに対して、読み取り(r)、書き込み(w)、実行(x)などの権限を設定し、不適切なアクセスを防止します。Unix系OSでは数値表記(755など)やシンボリック表記(rwxr-xr-x)で権限を表現します。
例: chmod, chown, rwx, ユーザーグループ
セキュリティ
アクセス制御
ユーザー管理
保護
Windowsでシステムとアプリケーションの設定情報を階層的に管理するデータベース。システムの動作を制御する重要な情報を保存する。
詳細を見る
レジストリ(Registry)は、Windowsでシステムとアプリケーションの設定情報を階層的に管理するデータベースです。HKEY_LOCAL_MACHINE、HKEY_CURRENT_USERなどのハイブに分かれ、キー、値、データの形式で情報を保存します。システムの動作、ユーザー設定、アプリケーション設定などを制御し、Windowsの中核的な機能として動作します。
例: HKEY_LOCAL_MACHINE, regedit, キー, 値
Windows
設定管理
データベース
システム
プロセス内で実行される最小の実行単位。マルチスレッドにより並列処理を実現し、プログラムの性能を向上させる。
詳細を見る
スレッド(Thread)は、プロセス内で実行される最小の実行単位で、同一プロセス内でメモリ空間を共有します。マルチスレッドプログラムでは、複数のスレッドが同時に実行され、並列処理によりプログラムの性能を向上させます。ただし、共有リソースへの同時アクセスには注意が必要で、同期機構が重要になります。
例: マルチスレッド, 並列処理, 同期, ミューテックス
実行単位
並列処理
共有
性能
複数のプロセスやスレッドが相互に必要なリソースを待ち続けて処理が停止する状態。システム設計で回避する必要がある。
詳細を見る
デッドロック(Deadlock)は、複数のプロセスやスレッドが相互に必要なリソースを待ち続けて処理が停止する状態です。プロセスAがリソース1を保持してリソース2を待ち、プロセスBがリソース2を保持してリソース1を待つような状況で発生します。適切なリソース管理と同期機構により回避する必要があります。
例: リソース競合, 循環待機, 同期問題, 回避アルゴリズム
同期問題
リソース管理
回避
設計
CPUリソースをプロセスに割り当てる仕組み。効率的な処理順序を決定し、システム全体の性能を最適化する。
詳細を見る
スケジューリング(Scheduling)は、CPUリソースをプロセスに割り当てる仕組みで、OSの重要な機能です。FCFS(先着順)、SJF(最短ジョブ優先)、ラウンドロビン、優先度スケジューリングなど様々なアルゴリズムがあり、システムの用途に応じて適切な方式が選択されます。
例: FCFS, SJF, ラウンドロビン, 優先度スケジューリング
CPU管理
アルゴリズム
効率化
最適化
実行中のプログラムを一時停止し、緊急度の高い処理を優先的に実行する仕組み。ハードウェアとソフトウェアの両方で発生する。
詳細を見る
割り込み(Interrupt)は、実行中のプログラムを一時停止し、緊急度の高い処理を優先的に実行する仕組みです。ハードウェア割り込み(キーボード入力、タイマー等)とソフトウェア割り込み(システムコール、例外等)があり、リアルタイム処理や効率的なシステム運用を可能にします。
例: ハードウェア割り込み, ソフトウェア割り込み, タイマー割り込み, 例外処理
優先処理
リアルタイム
ハードウェア
例外
データを一時的に保存するメモリ領域。処理速度の異なるデバイス間でのデータ転送を効率化する。
詳細を見る
バッファ(Buffer)は、データを一時的に保存するメモリ領域で、処理速度の異なるデバイス間でのデータ転送を効率化します。ファイルI/O、ネットワーク通信、画面描画などで使用され、データの読み書きをまとめて行うことで性能を向上させます。リングバッファ、ダブルバッファリングなどの技術があります。
例: ファイルバッファ, ネットワークバッファ, 画面バッファ, リングバッファ
一時保存
効率化
データ転送
性能
頻繁にアクセスされるデータを高速なメモリに一時保存し、アクセス速度を向上させる仕組み。CPU、OS、アプリケーションレベルで使用される。
詳細を見る
キャッシュ(Cache)は、頻繁にアクセスされるデータを高速なメモリに一時保存し、アクセス速度を向上させる仕組みです。CPUキャッシュ、ディスクキャッシュ、Webキャッシュなど様々なレベルで使用され、局所性の原理(時間的局所性・空間的局所性)を活用してシステム性能を大幅に改善します。
例: CPUキャッシュ, ディスクキャッシュ, Webキャッシュ, 局所性
高速化
一時保存
性能向上
効率化
コンピュータの電源を入れてからOSが起動するまでの処理。BIOS/UEFIによりハードウェアを初期化しOSを読み込む。
詳細を見る
ブート(Boot)は、コンピュータの電源を入れてからOSが起動するまでの処理です。BIOS/UEFIがハードウェアを初期化し、ブートローダーがストレージからOSを読み込んでメモリに展開します。POST(電源投入時自己診断)、ブートシーケンス、カーネル初期化などの段階を経てシステムが使用可能状態になります。
例: BIOS, UEFI, ブートローダー, POST, 起動順序
起動処理
初期化
ハードウェア
システム
一つのプログラムの出力を別のプログラムの入力として連結する仕組み。UNIX系OSでコマンドを効率的に組み合わせて使用する。
詳細を見る
パイプライン(Pipeline)は、一つのプログラムの出力を別のプログラムの入力として連結する仕組みで、UNIX系OSの重要な概念です。|(パイプ)記号を使用してコマンドを連結し、複雑なデータ処理を簡単なコマンドの組み合わせで実現できます。ストリーム処理により効率的なデータ変換が可能です。
例: cat file | grep pattern | sort, ストリーム処理, コマンド連結
コマンド連結
ストリーム
データ処理
効率化