はじめに
この記事はOSの仕組みについての概要になります。
ひとつひとつ詳細に説明すると膨大な量になりますので、深堀したい内容がありましたらそこからさらに調べていただけると幸いです(もし詳細記事を作成すればリンクを加筆します)。
OSの定義
オペレーティングシステム(英: Operating System、略称:OS、オーエス)とは、コンピュータのオペレーション(操作・運用・運転)を司るシステムソフトウェアである。
出典: フリー百科事典『ウィキペディア(Wikipedia)
OSの概要
皆さんが普段使用しているパソコンやスマートフォンには、OSがインストールされています。
OSが何をしてくれているのか、ですが例えば当たり前にやっている以下のような操作とかがOSのおかげでできてたりします。
●キーボードから文字を入力すると画面に表示される
●マウスを動かせばカーソルが動く
●複数のアプリケーションを同時に利用する
OSを人間に例えると「脳」の役割で、パソコン(スマートフォン)が「体」なんて表現される記載を目にします。
それくらいOSは様々な指令を出す役割を担っています。
また、OSはコンピュータの基本的な機能を提供してくれるソフトウェアであり、基本ソフトウェアとも呼ばれます(OSを広い意味で解釈すればですが)。
OSの主な機能
●メモリ管理
●プロセス管理
●ファイル管理
●ネットワーク管理
●ハードウェアの管理
●ユーザーインターフェース
メモリ管理
プログラムを実行するには、メモリ上にプログラムがロードされている必要があります。プログラムが同時に複数実行されることになれば、メモリ領域をそれぞれ割り当て、実行が終われば削除してメモリを解放します。
自身の環境でメモリをどれだけ使用しているかなどは、windowsだと「タスクマネージャー」で確認できます。
以下のような画面で表示されるので、自身の環境でもぜひ確認してみてください。
プロセス管理
プロセスとは
まずプロセスとはですが、「実行中のプログラム」と置き換えてもらっても構いません。
例えば、Google Chromeを起動するとそれがプロセスとなります。プロセスにはメモリ領域が必要になります。Google ChromeだけでなくExcelやWordなども起動すると、その分のプロセスにメモリ領域が必要になりますが、その場合並列して処理が行われます。このことを**マルチプロセス(マルチタスク)**といいます。
スレッドとは
プロセス内に作られる並列処理の実行単位です。プロセスは複数のスレッドからなります。
スレッドにはシングルスレッドとマルチスレッドがあります。
・シングルスレッド: スレッドを一つずつ順番に処理
・マルチスレッド: スレッドを複数並列に処理
プロセス管理についてざっくり説明しましたが、上記より深く踏み込んだ内容を別記事で作成しました。
ファイル管理
ファイル管理とは、パソコンに保存されている文書や写真、動画などのデータを管理する機能になります。
普段ファイルに名前を付けて作成していたりしますが、OSのおかげだったりします。
ちなみに特定のユーザーに操作を許可したり、パスワードを設定するような暗号化機能もファイル管理によるものです。
ネットワーク管理
異なるコンピュータ間のやりとりや、プリンタやハードディスクなどに接続して情報を共有したりできます。
社内のPCをwindowsに統一して、社内ネットワーク内での連携や操作が可能になったりします。個人だとそこはあまり恩恵を感じませんが会社だと非常に助かると思います。
ハードウェアの管理
ハードウェアの管理、ですがその前にハードウェアとは何を指しているのか。
パソコンでいえば、ハードウェアは以下のようなものですね。
●マウス
●キーボード
●スピーカー
●ディスプレイ
「OSの概要」部分でも少しお話ししましたが、キーボードで文字を入力してディスプレイに表示される、ということもOS(とデバイスドライバ)のおかげだったりします。
(デバイスドライバについては出典: デバイスドライバとは?初心者の方向けの目次3から参考になります)
また、マウスやキーボードなどは色々な種類がありますが、細かな設定をせず使い始められます。
OSの役割である「ハードウェアの抽象化」のおかげで、製品ごとの微妙な仕様の違いなどを意識せずよしなにやってくれているみたいです。
ユーザーインターフェース
OSは、ユーザーとコンピュータの架け橋的な役割を担っています。
GUI・CUIとかが当てはまりますね。
GUI(ジーユーアイ):グラフィカル ユーザー インターフェース
→マウスでクリックしたり、ドラッグ&ドロップしたり視覚的・感覚的に操作が可能な機能。コンピュータに詳しくなくても操作できる。
CUI(シーユーアイ):キャラクタ ユーザー インターフェース
→キーボードによる文字入力操作なので、知識がないと中々難しい。(GUIが搭載される以前はCUIでの操作なので、パソコンは一部の人しか扱えなかったらしい)
終わりに
OSといっても深く勉強しようと思えば結構範囲がありますので、ご自身でも調べて知識を深めていただければと思います。
「基本情報技術者」関連の参考書などに体系的に載っていることもあるので、ググるだけでなく本で勉強するのもおすすめかと思います。