コンピュータシステム(5)
ソフトウェア

OS(オペレーティングシステム)
OSはコンピュータにおけるハードウェアやソフトウェアなどを利用するために制御を行う役割を持つソフトウェア
「基本ソフトウェア」などとも呼ばれる
OSは、ソフトウェアがハードウェアを使用するための仲立ちをする
また、ユーザがコンピュータから情報を得るための基本的な様式を定める
ソフトウェアの分類

システムソフトウェア
ハードウェアの管理・制御を行ったり、共通する基本情報を提供したりするソフトウェアのこと
基本ソフトウェア
ハードウェア、アプリケーションソフトウェアを管理・制御するソフトウェア。一般的に「OS」のことを指す。ハードウェアとソフトウェアの間を取り持ち、ソフトウェアが動作するように設定したり、利用者からの情報をディスプレイやプリンタなど周辺機器に伝えたりする
名称 | 説明 |
---|---|
制御プログラム | ハードウェアを管理・制御し、コンピュータを効率的に活用するためのソフトウェア。狭義で「OS」を指す |
言語プロセッサ | プログラム言語を使って書かれたプログラムを、機械語のプログラムに変換するソフトウェア。「アセンブラ」「コンパイラ」など |
サービスプログラム (ユーティリティ プログラム) | コンピュータを効率よく利用し、機能や操作性を向上させるためのソフトウェア。ディスク圧縮や最適化、メモリ管理ソフトなどのOSの機能を補うものから、スクリーンサーバー、ウイルス対策ソフトなど様々なものがある |
ミドルウェア
基本ソフト(OS)とアプリケーションソフトウェアの中間で動作するソフトウェアのこと
シェル(コマンドプリンタ)
利用者が入力したコマンドをOSの中間部分(カーネル)に伝達し、プログラムの起動や制御を行うミドルウェアのこと。UNIXなどOSの機能の一部で使用
アプリケーションソフトウェア(応用ソフトウェア)
利用者の目的に応じた機能を提供するソフトウェア
種類 | 説明 | 例 |
---|---|---|
共通アプリケーション ソフトウェア | さまざまな業務や業種に共通して使用されるソフトウェア | ワープロソフト、表計算ソフト CAD/CAM、統計処理プログラム グラフィックソフト、グループウェア |
個別アプリケーション ソフトウェア | 特定の業務や業種を対象として使用されるソフトウェア | 給与計算ソフト、財務管理ソフト 販売管理ソフト、採算管理ソフト |
目的
目的 | 説明 |
---|---|
システムの信頼性や 安全性などの確保 | RASISをもとに、システムの信頼性と安全性などの向上性を図る |
ハードウェアの有効活用 | CPUや記憶装置などにハードウェアを制御し、無駄なく、活用できるように運用管理する。スループットの向上や、レスポンスタイムとターンアラウンドタイムの短縮を図る |
インタフェースの提供 | 利用者の操作性を向上するインタフェースを提供する |
構成
システムの信頼性を維持するために、システムを保護する構造になっている。システム全体が致命的な障害を受ける危険性のあるハードウェアの操作はOSの管理下に置かれ、アプリケーションソフトウェアによって直接触られることがないようになっている
カーネルモード(スーパバイザモード)
高い特権を持つ処理モードのことで、コンピュータのあらゆる部分にアクセスでき、ハードウェアに対する命令も実行できる。ユーザモードとは隔離されたメモリ空間で高い優先度で実行され、誤作動するアプリケーションソフトウェアなどの影響を受けることなくOS自身のタスクを実行できる
ユーザモード
比較的低い権限を持つ処理モードで、さまざまなアプリケーションソフトウェアを実行・サポートする
種類
OSにはさまざまな種類があり、それぞれのOSでファイルやフォルダなどの管理方法が異なる。異なるOS間ではファイルが正しく表示されないなどのトラブルが起こることもある
種類 | 説明 |
---|---|
MS-DOS | Microsoftが開発したOS。主に16ビットのPC/AT互換機で動作する。CUIで操作。シングルタスク方式を採用 |
Windows98/ ・・・/7/8 | MicrosoftのMS-DOSにかわるOS。32ビットのPC/AT互換機で動作。最近では64ビットに対応したものも。GUIを採用。マルチタスクを採用 |
Mac OS | AppleのMacintosh用OS。GUIを最初に採用したOS。画像処理などは定評がある |
UNIX | AT&Tベル研究所開発。主にワークステーション用のOS。CUIが基本だが、X-Window導入でGUIとして扱うことが可能。マルチタスク、マルチユーザで動作する。安定性や堅牢性にも定評がある |
Linux | UNIXと互換性のあるOS。比較的スペックの低いコンピュータでも安定して動作する。CUIが基本だが、ソフトウェアを組込んでGUIとして扱うことが可能。無償で仕様が公開されているオープンソースソフトウェア。特に産業用ロボットや組込機器などで多く採用 |
汎用コンピュータのOS
汎用コンピュータのOSは汎用コンピュータを製作しているメーカーが機器に合わせて独自に開発
リアルタイムOS
リアルタイム処理を目的としたOSのこと。利用者の使いやすさよりデータの処理速度を優先(制御ロボット、銀行のATM、座席予約など)
ネットワークOS
ネットワークの管理を専門に行うOSのこと NetWareなど
機能
機能 | 説明 |
---|---|
ジョブ管理 | 利用者から依頼されるジョブを効率よく実行するために、ジョブ実行の順番(スケジュール)を管理 |
タスク管理 | 実行中のプログラムを管理する。プログラムの実行単位を「タスク」という。マルチタスクの機能を持つOSは複数のタスクを並べて実行可能 |
データ管理 | ファイルをHDやFDに書き込み・読み込みを行う。ユーザごとにコンピュータ内のファイルやフォルダの使用を制限可能 |
入出力管理 | キーボードやプリンタなど周辺機器の管理や制御を行う |
記憶管理 | メモリ領域を有効に利用するために管理する。仮想メモリを利用することで、実際のメモリ容量より多くのメモリを使用できる |
運用管理 | コンピュータの資源(CPU、メモリ、HD、ソフトウェア)を効率的に利用するために、資源の割り当てや管理を行う |
ユーザ管理 | コンピュータに複数のユーザアカウントを登録・削除可能。登録ユーザアカウントごとにアクセス権・プロファイルなどの情報を管理 |
ネットワーク管理 | ネットワークの利用時に、回線制御など通信に関する制御を行う。他のコンピュータとの通信時に発生するさまざまな脅威に対するセキュリティを維持する対策をとる |
障害管理 | ハードウェア、ソフトウェアに障害が発生した場合に、障害からの復旧を行う |
ジョブ管理

●ジョブ:ユーザ側から見た処理の単位
ジョブはコンピュータで処理されるときに、「ジョブステップ」に分解される
●ジョブ管理機能:OSのジョブ管理機能がジョブを分解して、必要なハードウェア資源(CPU、メモリ、磁気ディスク、プリンタ)などを割り当てること
「マスタスケジューラ」、「ジョブスケジューラ」を使用し、効率よくジョブを実行する
●マスタスケジューラ:利用者とコンピュータ間で様々な命令のやり取り・メッセージの受渡しを管理
●ジョブスケジューラ:複数のジョブの効率的処理のためのジョブ実行の順番(スケジュール)を管理
名称 | 説明 |
---|---|
リーダ | ジョブ制御言語で書かれた内容を判読し、ジョブのスケジューリングを行う。ジョブを待ち行列に登録する |
イニシエータ | 待ち行列からジョブの優先順位を判断し、ジョブステップに分割してジョブの実行に必要なハードウェア資源を割り当てるプログラム。ジョブの実行はタスク管理で行われる |
ターミネータ | 実行後のジョブからハードウェア資源の割り当てを開放するプログラム。結果の出力が必要なジョブを待ち行列に登録する |
ライタ | 待ち行列からジョブの優先順位を判断し、ジョブの結果を出力するプログラム |
●ジョブステップ:ジョブを終了させるために必要な1つ1つの要素

スプーリング
処理の低速な出力装置にデータを転送する際に、データを逐次転送するのではなく、一度高速な磁気ディスクに貯めてからまとめて転送し、システム全体の処理効率向上を図る機能のこと
タスク管理

ジョブ管理で分割されたジョブステップはタスク管理で細かい「タスク(プロセス)」を生成し、CPUで処理される。タスクはコンピュータで実行される内部処理の単位
タスクの状態管理を行い、CPUなどの処理装置を有効利用するようにスケジューラを管理する
タスクの状態遷移
ジョブはジョブ管理機能でジョブステップに分解され、さらにタスク管理機能によってタスクに分解される。タスクはすぐに実行されるわけではなく、以下の3つの状態をとる
●実行可能状態:CPUの実行権が与えられれば実行できる状態
●実行状態:VPUで実行している状態
●待ち(待機)状態:入出力装置の処理が終了するのを待っている状態
@タスクの生成
A優先順位の最も高いタスクにCPUの使用権を与える
CPUスケジューラによってCPUを割り当てられた
B自分より優先順位の高いタスクが実行可能状態にな
ったり、自分に割り当てられた時間が終了したとき
C入出力処理が必要になった時
D入出力処理が完了したり、他のプロセスの命令に
より待ち状態が解除されたとき
Eタスクの消滅
スレッド
タスク内をさらに細分化した処理のこと。ひとつのタスク内で複数のスレッドを並行して実行できるものを「マルチスレッド」という
多重プログラミング(マルチプログラミング、マルチタスク)
タスクが入出力処理を待っていてCPUが利用されていないとき、CPUをほかのタスクの実行に割り当てて、CPUを有効活用すること。複数のプログラムが同時に実行されているかのように処理される
遊休時間(アイドルタイム)
CPUが動作していない時間
タスクのスケジューリング
名称 | 説明 |
---|---|
優先度順方式 | 処理全体からタスクの優先順位を決めて処理する方式 |
タイムスライス方式 | 一定の処理時間ごとに、タスクを実行する方式 |
ラウンドロビン方式 | 一定の処理時間ごとにタスクを実行し、処理時間内に終了しなかった場合待ち行列の最後に遷移する方式 |
到着順方式 | 実行可能状態になったタスクの順番で、タスクを実行する方式 |
処理時間順方式 | 処理時間の短いタスクから実行する方式 |
イベントドリブン方式 | ある事象(イベント)の発生によって、タスクを実行する方式 |
タスクの切り替え方式
●ノンプリエンティブ方式 | :プロセスの切り替えをプログラム自身に任せる方式 |
●プリエンティブ方式 | :OSがプロセッサの実行権限を管理し、プロセスの |
実行を切り替える方式 |
記憶管理
●主記憶装置(メインメモリ)と補助記憶装置(仮想メモリ)との組み合わせで実行する
●物理的な主記憶領域より大きな空間を実現させる仕組み
●実記憶容量を意識することなくソフトウェアを開発・利用できる
主記憶管理
主記憶装置にプログラミングを配置して、効率よく主記憶装置を利用できるように管理する機能
区画方式
主記憶を区画に分け、プログラムを格納する方法
名称 | 説明 | |
---|---|---|
固定区画方式 | あらかじめ主記憶装置を固定した大きさの区画に分割する方式 余った部分は再利用不可 | |
    | 単一区画方式 | 区画1つに1つのプログラム |
多重区画方式 | 複数の区画に分ける | |
可変区画方式 | プログラムの大きさにより区画を分ける 余った部分は再利用可 |
※プラグメンテ―ション:記憶領域の断片化、空き領域が発生する
※コンパクテーション:空き領域を整理する
スワッピング方式(=入替える)
優先度の高いジョブが投入されたとき、プログラムやデータを補助記憶装置に対比させる方式
※スワップイン(ロールイン):退避していたプログラム、データを回復
※スワップアウト(ロールアウト):プログラム、データを退避させる
オーバレイ方式(=セグメント・上書き)
あらかじめプログラムをいくつかの単位(セグメント)に分けて二次記憶装置に格納しておき、プログラムの指定に基づいて実記憶装置との間で出し入れをする。補助記憶にあるプログラムをセグメント単位で読み、主記憶装置のプログラムは退避せず、上書きされる
メモリリーク
アプリケーションソフトウェアやOSのエラーなどが原因で、使用されたメモリ領域が解放されないため、使用可能なメモリ領域がなくなっていく現象
再配置プログラム(リロケータブルプログラム)
ある領域に配置されているプログラムを別の領域に配置しなおすプログラム。配置しなおした領域に対応して、プログラム内のアドレスを補正する
再利用可能プログラム(リユーザブルプログラム)
一度使用したあと、再度繰り返し使用可能なプログラム
再入可能プログラム(リエントラントプログラム
実行中のプログラムをさらに別のタスクから呼び出して実行できるプログラム
再帰プログラム(リカーシブプログラム)
自分自身のプログラムを呼び出して実行できるプログラム
仮装記憶管理
ハードディスクなどの補助記憶装置の一部を利用して、主記憶装置の記憶容量より大きな記憶空間を(仮想記憶)を作成する機能
ページング方式(=ページ単位で入れ替え)
主記憶とプログラムを固定長の単位(ページ)に分割し、効率よく記憶管理する。このため、少ない実記憶で大きなプログラムの走行が可能
スラッシング
ページイン・ページアウトを行う場合、ハードディスクにアクセスする必要があり、主記憶層へのアクセスより時間がかかり、頻繁に起こった結果、コンピュータ処理速度が低下すること
ページ置換アルゴリズム
主記憶装置から必要のないページを判断するアルゴリズム
名称 | 説明 |
---|---|
FIFO方式 | 最も古くからあるページを選び入れ替える |
LRU方式 | 最も長い時間使用されていないページを選び入れ替える |
NRU方式 | 一定時間使用されていないページを選び入れ替える |
LFU方式 | 最も使用頻度の低いページを選び入れ替える |
セグメント方式
プログラムやデータを論理的にひとまとめにしたセグメント単位で分割し、効率よくメモリを管理する方法。セグメントごとに容量が異なるため、プログラムを作成する際にセグメントのサイズに注意する
セグメントページ方式
セグメント方式を改良した方法。セグメントで分割したものをさらにページで分割する方法
ユーザ管理
ユーザアカウント | :コンピュータ使用時に必要なユーザ名やパスワードなどの |
情報 | |
ユーザ管理 | :ユーザアカウントを管理する機能 |
プロファイル
環境ごとに異なるユーザアカウントごとの情報の集まり。デスクトップのレイアウト、ネットワークの設定、ヒューマンインターフェースの設定などを管理
ユーザアカウントの種類
名称 | 説明 |
---|---|
管理者 | システム管理者用のユーザアカウント・システム利用権やファイルアクセス権など、コンピュータ操作のすべてが許可された「管理者権限」を持つ ●root(ルート)(スーパユーザ):UNIX系のOSの管理者アカウント ●Administrator(アドミストレイター):Windows系のOSの管理者アカウント |
ゲスト | 一般的にコンピュータを利用する利用者用のユーザアカウント。端末利用権だけが与えられ、一切の管理権限を持たない |
ユーザアカウントの設定
ユーザアカウントの作成、パスワードの設定・変更、権限の設定・変更等は全てOSの機能を使って設定
ディレクトリサービス
ネットワークを利用するユーザや組織に関する情報(ユーザアカウント)や、利用可能なサーバと提供しているサービス、プリンタなど(コンピュータの情報)ネットワークで使用する様々な情報をディレクトリデータベースで集中管理すること
ディレクトリデータベース
ユーザアカウント情報などが格納された場所
LDAP(エルダップ)
インタネットなどTCP/IPが使用されたネットワーク内で、ディレクトリデータベースにアクセスするためのプロトコル
ネットワーク管理
●コンピュータ間のデータ通信機能を管理
●この機能によりネットワークに接続された資源にアクセス
名称 | 説明 |
---|---|
アクセス制御 | 利用者ごとにシステム利用権やファイルアクセス権、末端利用権を設定する 利用さy、使用内容を制御することで、データの盗難、改ざんを防止 |
暗号化制御 | 他のコンピュータとのやり取りに情報を暗号化 暗号化することで、情報の盗聴を防止 |
ファイアウォール | 他のコンピュータからの不正侵入を防御する |
オーディット機能 (監査機能) | ログオン・オフの情報やファイルへのアクセス等のセキュリティと追跡、利用者のアカウンタビリティを確保、コンピュータの不正利用を発見 |
ロギング機能 | システムエラー、危険なプロセスの実行時の警告、監査の成功・失敗等をログファイルとして保存 障害発生時にログファイルから状態を把握可能 |
アカウントアビリティ
ソフトウェアの保有状況や使用状況を正当に管理すること
言語プロセッサ
機械語以外のプログラム言語を使って書かれたプログラム(原始プログラム)を機械語のプログラム(目的プログラム)に変換する作業はOSの言語プロセッサで行う

アセンブラ
アセンブラ言語で書かれた原始プログラムを目的プログラムに変換する言語プロセッサ
●アセンブラ :アセンブラ言語で変換
●逆アセンブラ:目的プログラム⇒アセンブラ言語に変換
コンパイラ
高水準言語で書かれた原始プログラムを一括して目的プログラムに変換する言語プロセッサ
●コンパイラ :コンパイルで変換
コンパイラでの変換

連係編集プログラム(リンカ、リンケージエディタ)
コンパイラ↓目的プログラムは、そのままでは実行不可。連係編集プログラムを使用し、他の目的プログラムやライブラリとの連携を行う。連係ができた目的プログラムは実行可能な目的プログラム(ロードモジュール)となり、「ローダ」から主記憶装置に読み込まれて実行される

インタプリンタ
高水準言語で書かれた原始プログラムを1行ずつ目的プログラムに変換・実行を繰り返す言語プロセッサ
ジェネレータ
高水準言語で書かれた原始プログラムをパラメータに入力した条件に従って、目的プログラムに変換する言語プロセッサ
クロスコンパイラ
実際に実行するコンピュータとは異なるプラットフォーム上で、目的プログラムを作成する言語プロセッサ
●プラットフォーム:目的プログラムやアプリケーションソフトウェアを実行する環境のこと
プリプロセッサ
コンパイルする前に処理を行うしくみのこと。別のファイルからのデータの取り込みや、マクロの展開などの処理を行う
ミドルウェア(応用プログラム間連携ソフトウェア)
OSとアプリケーションソフトウェアの中間で動作するソフトウェアのこと
ミドルウェアの種類
名称 | 説明 |
---|---|
データベース管理 システム(DBMS) | 共有データを管理するミドルウェア Oracle(オラクル)やAccess(アクセス)など |
開発支援ツール | アプリケーションソフトウェアの開発(要求分析、システム設計、開発、テスト、運用・保守)を支援する IDE(エディタ、コンパイラ、デバック等を支援)、CASEツール(設計を支援) |
運用管理ツール | ネットウェークシステム上で、システムの安定稼働などのためにクライアントのコンピュータ・データベースサーバなどシステム上の装置を管理する |
通信管理システム | 通信を行うときに、同期をとって送信するような通信回線の制御や文字コードの返還などを行うミドルウェア |
TPモニタ | トランザクション処理の実現、効果的運用の制御、監視をするミドルウェア |
IDE(統合開発環境)
エディタ、コンパイラ、ディバックツールなど、プログラミングの一連の作業を効率よく行うようにひとつのインタフェースにまとめた環境のこと
API
ソフトウェアを開発する際に、OSの各種機能を使って命令を伝達するためのインタフェースのこと
ライブラリ
アプリケーションソフトウェアでよく利用される関数や機能、データなどを他のプログラムでも利用できるように一つのファイルにまとめたもの
ライブラリの場所
名称 | 説明 |
---|---|
動的リンクライブラリ(DLL) | OS内に組み込まれ必要な時だけ連結・実行されるライブラリ |
ロードライブライ (スタティックリンクライブラリ) | 実行ファイル内に直接組み込まれるライブラリ |
ライブラリの形式
名称 | 説明 |
---|---|
ソースライブライ (共有ライブライ) | 複数のアプリケーションソフトウェア間で共通して利用できるライブラリ ライブラリを利用することで開発工程を大幅に短縮できるメリットがある |
オブジェクトライブライ (クラスライブライ) | オブジェクト指向で使われるライブラリで、よく使われるクラス(属性、メソッドを定義したもの)まとめたライブラリ |
コンポーネントウェア
再利用が可能なソフトウェア部品(コンポーネント)を組み合わせてソフトウェアを開発する方法、技術
ActiveX
Webブラウザ内で動画像を再生、Webブラウザの機能を充実させるときに使用される技術
CORBA(コルバ)
OMGが定めた分散オブジェクト技術の仕様。異機種分散環境上のオブジェクト(プログラム部品)間でメッセージを交換するためのソフトウェア(ORBと呼ばれる)の仕様
開発支援ツール
設計支援ツール
プログラミング支援ツール
●エディタ
●連係編集プログラム
ツールチェーン
エディタ、コンパイラ、連係編集プログラムなどをまとめたプログラミング支援ツールの集合体
テストツール・デバックツール
●テストツール:設計どおりに作動するかどうかの確認をする
●デバックツール:システムにバグがあった場合の検出・調査・修正を行う
名称 | 説明 |
---|---|
アンサーチェッカ | 条件が真でなければならない部分にチェッカ用のソフトウェアコードを挿入し、偽の場合にエラーを出力するツール |
シミュレータ | 想定通りにシステムが動作するか、稼働前にチェックを行うツール。自然科学の分野で実現しにくい現象をテストするときに使用 |
エミュレータ | コンピュータ上で異なるOSやCPUを擬似的に動作させるツール。ICEなど |
トレーサ | プログラムの動作課程を追跡、命令の順番・変数、実行結果等を出力するツール |
スナップショットダンプ | 特定の命令や条件下で変数やレジスタ、主記憶装置の一部の内容(ダンプリスト)を出力するツール |
インスペクタ | デバック時に、各オブジェクトのデータ構造や値を確認するツール |
ICE
マイクロコンピュータシステム開発するときに使うデバックツールのこと
CASEツール
システム開発の作業を自動化する開発支援ツール
CASE(ケース)
コンピュータ支援ソフトウェア工学。システムを開発するときの作業効率の向上を目的として開発方法
名称 | 説明 |
---|---|
上流CASEツール | システム要件定義〜ソフトウェア方針設計までの工程を支援するツール システムの分析、設計工程において必要な資料の作成を行う |
下流CASEツール | ソフトウェア詳細設計〜導入・受入れまでの工程を支援するツール プログラミングやテスト支援などを行う |
保守CASEツール | 運用・保守の工程を支援するツール |
統合CASEツール | 上流・下流・保守CASEツールを合わせたツール |

 

