OSの役割とは?基本情報技術者試験の頻出キーワードを徹底解説!

更新日:2021年4月30日

SOFTWARE

OSとは、Operating Systemの略称であり、日本語では基本ソフトウェアと呼ばれたりもします。よく聞くOSとしては、Windows OSやmacOS、スマートフォンに利用されるiOSやAndroidなどが挙げられるのではないでしょうか。

普段コンピュータを利用する中で、OSの役割について意識することはあまりないかもしれません。しかしながら、OSはコンピュータが動作する上で「かなめ」となる役割を担っています。

この記事では、基本情報技術者試験を受けられる方を対象に、OSの役割について解説します。

目次

OSとは

OSは、ハードウェアの制御を行い、すべてのソフトウェアの実行基盤となる基本ソフトウェアのことです。

世の中には様々なメーカーが発売するハードウェア機器がありますが、メーカーや機器ごとにその動かし方は異なるため、そのままではソフトウェア開発者はハードウェア機器ごとにソフトを作り直さなければなりません。

そこで、OSはハードウェアの違いを吸収して共通の利用方法(API)を提供しています。ソフトウェア開発者は、OSが提供するAPIを利用してソフトを作ることで、ハードウェアごとにソフトを作る必要がなくなります。

これが、OSを利用することのメリットです。

現代では、主にPC向けのOSとしてWindows OSやmacOSなどが、スマートフォン向けOSとしてiOSやAndroid OSなどが、さらにサーバ向けとしてLinuxやUnix、FreeBSDなどが利用されています。

OSの役割①ファイル・ディレクトリの管理

OSの役割の一つとして、ファイルやディレクトリ(フォルダ)の管理があげられます。一般的にPCを利用する際にはファイルやディレクトリを作成しますが、これらの機能はOSが提供しています。

OSは、データを格納する単位としてファイルを作成します。また、ファイルを階層構造で管理するディレクトリを作成し、管理します。

ファイルとは

OSにおけるファイルとは、OSがデータを管理する単位のことです。用途に応じて、文書・音声・画像などの様々なファイル形式をOSは提供しています。

Windows OSにおいては、ファイルは拡張子によってその種類が区別されています。

ファイル管理方法はファイルシステムと呼ばれ、OSによって様々なファイルシステムが利用されています。例えばWindows OSであれば主にNTFSというファイルシステムが利用されており、macOSでは主にAPFSというファイルシステムが利用されています。

ファイルシステムは、HDDなどの記憶領域を区切って番号を振り、ファイルをその区切りごとに記憶領域に格納します。また、ファイルの暗号化や容量圧縮、変更履歴の管理などの機能も提供します。

ディレクトリとは

ディレクトリ、またはフォルダは、ファイルを管理しやすいように格納する箱のことです。ディレクトリはその内部に子ディレクトリを作成することで、階層構造を作ることができます。

階層構造の頂点をルートディレクトリといい、現在操作しているディレクトリをカレントディレクトリといいます。

複数人でコンピュータを利用している場合には、ユーザごとにホームディレクトリと呼ばれるディレクトリが割り当てられます。各ユーザは自身のホームディレクトリ内に様々なファイルを作成することができます。

パスとは

パスとは、コンピュータ上でファイルの保存位置を示す住所のようなものです。Windowsであれば、C:xxxxxx・・・のような形式で指定されます。

また、LinuxやmacOSであれば、/xxx/xxx/xxx/・・・のような形式で指定されます。

パスはその階層構造を「」や「/」で指定して区切ります。また、「.」を指定するとカレントディレクトリを指定したことになります。

さらに、「..」と指定すると一つ上の階層を指定することができます。

パスには、ルートディレクトリからさかのぼって指定する絶対パスと、カレントディレクトリから指定する相対パスの2種類が存在します。

絶対パスはカレントディレクトリに関わらず同じとなりますが、相対パスはカレントディレクトリにより指定の仕方が異なることに注意が必要です。例えばカレントディレクトリが「/aaa/bbb」である場合に「/aaa/ccc」を指定する場合には、「../ccc」と指定することになります。

OSの役割②タスク管理

OSのもう一つの重要な役割として、タスク管理があげられます。タスク管理とは、CPUや主記憶装置などのハードウェアに対して効率的にタスクを割り当て、リソースを最大限活用することを指します。

タスクとは

タスクとは、アプリケーションの処理を単位ごとに細分化したものです。OSはタスク単位でCPUに処理を命令します。一つ一つのタスクはOSによって定義されており、例えばファイルを読み出したり、データを書き込んだりといった単位でタスク化されています。

タスク状態遷移

OSは、タスクを実行可能状態、実行状態、待ち状態の3つの状態で管理します。各状態の説明は下表のとおりです。

状態名 概要
実行可能状態 実行可能であるものの、CPUの空きがなくOSがタスクをCPUに割り当てていない状態
実行状態 OSのCPU使用権割り当てを受けてタスクが実行されている状態
待ち状態 入出力処理など時間がかかる処理を行っている間や割込みが発生した場合などで待機している状態

OSはアプリケーションの処理を滞らせないように、タスクを状態管理してできるだけ効率的にタスクを割り当てます。なお、タスクにCPUの使用権を割り当てることをディスパッチといいます。

タスク割り当ての流れは以下の通りです。OSは時間がかかるタスクを待ち状態に配置することでCPUを効率的に利用しています。

  1. タスクが生成されると、まず実行可能状態となる。
  2. 順番がくるとタスクにCPUが割り当てられ、実行状態となる。
  3. 割り込みが発生したなどの理由でCPUの使用権が失われた場合は、実行可能状態へ戻る。
  4. 実行状態にあるタスクが入出力処理などの時間がかかる処理を行う場合は、処理が完了するまで待ち状態に遷移させて他のタスクを優先させる。

タスクスケジューリング

OSは、実行可能状態にある複数のタスクを、どのような順序で処理するかスケジューリングします。スケジューリングにはラウンドロビン方式や優先度方式などの方法が存在します。

下表にて、主なタスクスケジューリング手法を紹介します。

名称 概要
先入先出(FIFO)方式 もっとも単純なスケジューリング方式で、先に到着したタスクから順番に処理を実施していくもの。
優先度方式 タスクに対して優先度を設定したうえで、優先度の高いタスクから実行していく方法。
ラウンドロビン方式 複数のタスクに対して均等に少しずつCPUを割り当て、順々に実行していく方式。
多段キュー方式 タスクを特徴に応じてグループ分けしたうえで、グループごとにスケジューリング方式を変える方法。

マルチタスク

マルチウインドウやバックグラウンド処理など、コンピュータを利用する際には複数の作業を同時に実行しています。複数の処理を実施するために、OSは複数のタスクを並行処理する機能を持ちます。

これをマルチタスクまたはマルチプログラミングといいます。

OSは一つしかないCPUを用いてマルチタスクを実現するために、あるタスクAの実施中であってもより優先度が高いタスクBが発生したらタスクAを中断してタスクBを実行できるようにしています。

割込み処理

より優先度が高いタスクを処理するために現在実行中のタスクを一時中断することを、割込み処理といいます。割込みは主に上述したマルチタスクを実現する際や、何らか異常が発生した場合などに発生します。

割込みには、内部割込みと外部割込みの2パターンがあります。内部割込みとは、タスク自体にエラーが発生した場合など、タスクから終了を要請されたケースで発生します。

一方で外部割込みは、ハードウェア故障や高優先度のタスクの処理など、外部要因をトリガーとして発生します。

スプーリング

入出力装置が行う処理はCPUと比較すると格段に遅いため、CPUの処理結果を入出力装置に出力する際にCPUに待ち時間が発生します。そこで、CPUの処理結果を一時的に記憶装置に格納しておき、徐々に処理するスプーリングという技術が用いられます。

プリンタを例にすると、プリンタへの出力データを作成したCPUは、プリンタの印刷速度に合わせてデータを送っていたのではその間CPUを有効活用できません。

そこで、CPUが処理した出力データをいったん主記憶装置などの記憶装置に書き出し、プリンタは主記憶装置からデータを読み出して印刷を行う仕組みとしているのです。

OSの役割③主記憶装置の管理

OSは主記憶装置を効率的に利用できるように管理を行います。以下では、実記憶管理と仮想記憶管理の2つについて解説します。

実記憶管理

実際の主記憶装置を管理することを実記憶管理といいます。主記憶装置に対してOSはアドレスと呼ばれる区画を設定し、管理します。区画を固定長で設定する方法を固定区画方式と呼びます。

固定区画方式では、プログラムやデータを固定長の区画の中に割り当てるため無駄な領域が発生しますが、区画単位で情報の入出力が可能であるため効率的で高速な処理を実現できます。

一方で、区画を可変長とする可変区画方式では、プログラムやデータに合わせて主記憶装置の領域を最大限活用できますが、情報の入出力の処理は非効率となり、固定区画方式と比較して処理は低速となります。

また、主記憶装置の容量が不足しておりプログラムやデータを読み込めない場合に、OSは優先度の低いプログラムを一時的にHDD等の補助記憶装置に対比させます。これをスワッピングといいます。

仮想記憶管理

主記憶装置の容量が不足する場合には、補助記憶装置を主記憶装置のように利用することで代替することもできます。これを仮想記憶管理といいます。一般的に補助記憶装置の処理速度は主記憶装置と比較すると圧倒的に遅いため、OSは優先度の高いプログラムやデータを優先的に主記憶に配置します。

仮想記憶管理では、主記憶装置と補助記憶装置をページという単位でそれぞれ区画分けし、ページ単位で主記憶装置と仮想記憶装置の間でデータをやり取りします。これをページングといいます。

ページングにおいて、主記憶装置から補助記憶装置にプログラムやデータを退避させることをページアウト、反対に補助記憶装置から主記憶装置へ読み込むことをページインと呼びます。

CPUの処理中に必要な情報が主記憶装置に存在しないことをページフォルトといい、ページフォルトが発生した場合、OSはページアウトにより主記憶装置の容量を確保したうえで、ページインにより必要な情報を主記憶装置に戻します。

まとめ

この記事では、基本情報技術者試験を受けようとされている方に向けて、OSの役割についての解説を行いました。OSという言葉は聞いたことはあるものの、普段PCやスマートフォンを利用していてもOSの役割について意識することはあまりないかもしれません。

OSは、ハードウェアとソフトウェアをつなぐ重要な役割を担っています。

OSの処理方法について理解が進むと、コンピュータがどのように動作しているかイメージができるようになるでしょう。

基本情報技術者コラム一覧へ戻る