コンピュータシステム - 5.ソフトウェア - 1.オペレーティングシステム - 2.OSの機能と構成

Last Update : January 02 2021 16:00:20

     

a. OSの機能

OSの最も核となる機能の部分をカーネルと呼ぶ。
個々のアプリケーションからOSの機能を利用するには、API(Application Program Interface)関数を利用する。
APIは、システムコール、スーパーバイザーコール(SVC)とも呼ばれる。
OSと周辺機器との間の接続には、デバイスドライバを利用する。

マイクロカーネル
OSの機能のうち、最小限の機能だけを有するカーネル。他の必要な機能はサービスとして実行する。

モノリシックカーネル
OSの機能をカーネルの中に多く含み、カーネルだけで多くの機能を提供できる。

カーネルモード(スーパバイザモード)
高い権限をもって処理を実行する。コンピュータ資源のあらゆる部分にアクセスが可能で実行する命令も優先度が高く設定されている。
ユーザーモードとはメモリ空間を隔離して実行されるので、他のアプリケーションの影響を受けにくくOSの本来の処理を実行する。

ユーザモード
アプリケーションソフトウェアを実行するモードで、比較的権限が低く、アプリケーションに必要な資源だけにアクセスできる。

API
コンピュータシステム - 5.ソフトウェア - 2.ミドルウェア - 3.API を参照


b. OSの起動

コンピュータの電源を入れると、CPUはマザーボード上のROMに記憶されているBIOS(Basic Input/Output Software)と呼ばれるプログラムを実行する。 BIOSは入出力装置を使えるようにするプログラムで、その後補助記憶装置に保存されているOSをメモリにロードして、OSを利用できるようにする。

  • ブートストラップ
    起動直後の何も記憶されていないコンピューターに、オペレーティングシステムを読み込ませるために最初に用いるプログラムのこと。この場合は、ブートストラップローダやブートローダともいう。または、コンピュータシステムの電源を入れたときにオペレーティングシステムを起動するまでの処理の流れのことをいう。
  • ネットワークブート
    ネットワーク上の他のコンピュータからオペレーティングシステムを取り込み起動する仕組み
  • マルチブート
    1台のコンピュータに複数のOSを組み込んだ状態のこと。起動するときは、どのOSを起動するか選ぶことになる。
    組み込んだOSが2つの場合、デュアルブートとも呼ばれる。マルチブート環境を実現するには、「ブートローダ」と呼ばれる専用のソフトウェアが必要で、OSに付属しているものとしてはLinuxの「LILO」(Linux Loader)や、Windows NT系の「OS Loader(NTLDR)」などが有名である。
  • フラッシュブートローダ
    書き換え可能なフラッシュメモリのブートローダー領域に配置されたブートローダーのこと。
    組み込みシステムでは、製造工程や保守工程でプログラムを変更するためにフラッシュブートローダが必須である。フラッシュブートローダはフラッシュメモリ内にあり、リセット後に最初に実行されるアプリケーションである。フラッシュブートローダを出荷製品に入れておくと、アプリケーションの更新・修正、設定の変更が容易に行える。CAN ベースのフラッシュブートローダが一般的であり、診断プロトコルを使って通信・ダウンロードを行う。
    フラッシュブートローダーは、ブートローダー、フラッシュドライバー (フラッシュアルゴリズム)、PCベースの書換ツールの3つのコンポーネントで構成されています。


c. OSの役割

OSには、以下の役割がある。

  1. ジョブ管理
    人間から見たコンピュータの仕事の単位をジョブという。
    「利用者があるデータをコンピュータに与えて、いくつかの処理を実行し、欲しい結果が得られる」といった場合の、一連の処理のことをいう。
    ジョブはいくつかのプログラムを連続して実行していくわけだが、この 1 つひとつの処理をジョブステップという。
    OSは、ジョブ管理によって、プログラムを連続実行させ、効率的に利用できるようにしている。

  2. プロセス(タスク)管理
    プログラムを実行するコンピュータから見た処理の単位をプロセス(タスク)という。
    プロセス(タスク)は、生成されてから、「実行可能状態」「実行状態」「事象待ち状態」の 3 つの状態を繰り返しながら実行される。
    複数のプロセス(タスク)があるとき(マルチタスクという)に、どのタスクを処理したらよいのかを制御するのが、プロセス(タスク)管理である。
    処理するプロセス(タスク)を選ぶということは、すなわち、どのプロセス(タスク)にCPUタイムを割り当てるかを決める、ということ。
    タイムシェアリングシステムや、マルチ(多重)プログラミング下で実行するような場合、必要となる機能である。
    マルチプログラミングとは、OSの働きによって、複数のプログラムを見かけ上同時に実行させることをいう。
    CPUのアイドルタイムを有効に使うために行う。

  3. メモリ管理
    メモリを効率的に利用するように管理する。また、実際のメモリ容量よりも多くの記憶容量を取り扱う仮想記憶の管理なども行う。

  4. ファイル管理
    データの入出力や、ファイルの管理のこと。 メインフレームの世界では、データ管理とよぶが、パソコンやワークステーションの OS では、ファイル管理とよばれるのが普通である。

  5. デバイス管理
    入出力機器などの周辺機器の管理を行う。

  6. セキュリティ管理
    ユーザがコンピュータ資源に何らかのアクセスするときに前もって認証する仕組み。
    ユーザに適切なアクセスレベルを付与して、管理者の方針に基づいてアクセスを制限


  [ 例題 ] 
  1. 平成12年度春期 問34  タスク管理
  2. 平成15年度秋期 問32  タスク管理
  3. 平成17年度秋期 問31  カーネル


     

www.it-shikaku.jp