トップ その他 ITスキル体系 基本ソフトウェア

基本ソフトウェア―OS(オペレーティングシステム)

基本ソフトウェアであるOS(オペレーティングシステム)をテーマにしています。タスク管理、割込み制御、主記憶の管理、仮想記憶の管理、OSの機能・種類・特徴について説明していきます。

タスク管理

タスクのスケジューリング方式

待ち行列状態にあるタスクをどのような順位で処理するかについて、その方法を大別すると、 優先度方式とラウンドロビン方式の2つに分けられます。

  1. ラウンドロビン方式
    すべてのタスクに対等の優先度をあたえ、一定時間経過後に終了しないタスクは待ち行列の最後尾に置き、 待ち行列の先頭のタスクにCPU使用権をあたえる方式です。
  2. 優先度方式
    各タスクに優先度をあたえ、優先度の高いタスクからCPU使用権をあたえる方式です。

割込み制御

マルチタスクを実現するためには、ある一定の時間間隔ごと、 または入出力要求を出したタイミングなどでタスクを切り替えます。 この切り替える制御を割込み(Interrupt)といいます。

割込みとは、プログラムの実行中に、 何らかの条件によってプログラムの命令実行を強制的に中断し、他のプログラムに制御を移すことです。

割込みが発生すると、コンピュータの各命令の実行ごとに、 コンピュータの実行と非同期の事象が発生したかどうかを調べ、 実行中のプログラムより優先順位の高い事象が生じていれば、特定番地の命令に制御を移します。

この場合、現在処理しているプログラムを一時待避させ、割り込んで入ってきたプログラムを実行します。 割込みの処理が終了すると、待避させたプログラムを回復させ、中断したところから実行を再開します。

主記憶の管理

スワッピング

スワッピング方式は、主記憶上の領域が不足してプログラムを実行できない場合、 優先度の低いプログラムをいったん主記憶から追い出し、優先度の高いジョブの実行を行う手法です。

仮想記憶の管理

ページング方式

仮想記憶方式では、プログラムの実行中、主記憶領域に存在しないページが参照されると、 ページフォールトという入出力を伴うプログラムの割込みをきっかけに、 必要なページを主記憶領域にロードするページインが行われます。

ページングアルゴリズム

FIFOによるページ置き換え

ここでは、FIFO(First-In First-Out)によるページ置き換えのアルゴリズムを説明します。

FIFOは、先入れ先出し方式です。先にページインしたページから先に追い出します。

たとえば、仮想記憶におけるページ置き換えアルゴリズムとしてFIFO方式を採用し、 初期状態では、主記憶には何も読み込まれていないものとします。 主記憶のページ枠が3で、プログラムが参照するページ番号の順序が、 4→3→2→1→3→5→2のとき、ページインの回数は次のようになります。

参照枠内イン回数説明
  4[4][][]  14を読み込みます。
  3[4][3][]  23を読み込みます。
  2[4][3][2]  32を読み込みます。
  1[3][2][1]  4一番古い4を消し、1を読み込みます。
  3[3][2][1]  43は読み込まれているのでページインは不要です。
  5[2][1][5]  5一番古い3を消し、5を読み込みます。
  2[2][1][5]  52は読み込まれているのでページインは不要です。

よって、ページインは5回です。

OSの機能・種類・特徴

API(Application Programming Interface)

API(Application Program Interface)とは、 ソフトウェアからOSの機能を利用するための仕様、またはインタフェースのことを言います。 一般的には、APIはOSの機能を利用するための関数を指します。

汎用性のあるAPIが定められていれば、周辺機器との連携やインターフェース、 ドライバの作成が容易に行えるといった互換性の高いプログラミングを行うことが出来るため、 アプリケーション開発が容易になります。

OSのデータ管理

データ管理は、OSの制御プログラムの機能の一つです。 データを主記憶装置に割り付けたり、磁気ディスクへのファイルのアロケーション、 スペース管理、ディレクトリの管理などを行う機能があります。

ファイルのアクセス方法を応用プログラムに提供し、 ユーザはハードウェアを意識しないでファイルを使用することが出来ます。

知識の幅を広げるための参考

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Bcc /Eclipse /gcc /gdb /g++ /JDK /JUnit /ZAP

技術・仕様
Ajax /CORBA /Java EE(旧称J2EE) /JNI

ライブラリ/Framework/CMS
jQuery /Lucene /MyBatis /RESTEasy /Spring /Struts /Seasar2 /WordPress

ITインフラ OSとミドルウェア
Linux /Windows /シェル
Apache/Tomcat /MySQL /Redis /Solr /vsftpd

ITインフラ PC 製品
ZOTAC

ITインフラ サーバー
Web公開サーバー構築

ITインフラ ネットワーク
プログラミング /機器 /構築

ITインフラ セキュリティ
公開サーバーのセキュリティ

SI
ホームページの作り方 /小さな会社のISMS

その他
IT用語 /ITスキル体系 /トレンド履歴 /翻訳英語の学習 /RSEUserGuide翻訳

スポンサーリンク