ソフトウェアの体系

物理的な物体をハードウェアと呼ぶのに対し、 これらを使用するためのものをソフトウェアと呼ぶ。

基本ソフトウェア・応用ソフトウェア:インストールしたのち使用可能
ソフトウェアPC を動かす無形のしくみ
システムソフトウェア PC の資源を有効活用するしくみ 基本ソフトウェア制御プログラム、言語プロセッサ、サービスプログラムで構成
ミドルウェア 基本ソフトウェアと応用ソフトウェアの中間に位置し、 アプリケーションに依らない。DBMS、 通信管理ソフト、第四世代言語、運用管理ツール
応用ソフトウェア 業務に直接関わる、目的を達成するためのしくみ 共通応用ソフトウェア文書作成ソフト、表計算ソフト、 会計ソフト、 医療診断用ソフト、ERP パッケージ、 CAD, CAI オーサリングシステム
個別応用ソフトウェア 大企業の業務用ソフトなど、個別に開発されたソフトウェア( 給与計算ソフト, 販売管理ソフト)

4GL: 第四世代言語、ユーザが容易に使える言語やソフトウェアパッケージ

CAD:コンピュータ設計支援システム

CAI:コンピュータを利用した教育

ソフトウェアの進化

ソフトウェアの進化: カスタムソフト→パッケージソフト→オンラインソフト
カスタムソフトユーザのために開発
パッケージソフト 万人向け、廉価 汎用パッケージ 業務を特定しないソフト(文書作成ソフト、表計算ソフト)
業務用パッケージ 業務を特定したソフト(給与計算ソフト, 会計ソフト)
オンラインソフト インターネットを通じて配布するソフトウェア フリーソフトウェア無料で利用できる
シェアウェア 一定の試用期間を経て購入を希望した場合に料金を支払うソフトウェア

応用ソフト: 業務に直接関わるソフトウェア(パッケージソフト)

文書作成ソフト フォントの変更や画像を含めたレイアウトが可能 印刷業務には DTP ソフト
表計算ソフト 数値を入力して計算させる 別名 スプレッドシートソフト
データベースソフト データを効率よく管理する 別名 DBMS
グラフィックスソフト 絵や動画を作成する ペイント系鉛筆や筆を使う感覚で絵を描く
ドロー系直線や曲線を組み合わせて図面を作成する
3 次元グラフィックスソフトCG の作成に使用

統合的なソフトウェア

グループウェア

グループウェア:グループ活動を支援するツール

電子掲示板ネットワーク上の掲示板で、誰もが閲覧可能
電子メールネットワークを利用した手紙
電子会議会議室を必要としない会議
スケジュール管理 プロジェクトメンバのスケジュールを記録し作業調整する
ドキュメントデータベース プロジェクトメンバの文書を管理し、メンバがいつでも参照できる

ミドルウェア

アプリケーションに無関係。 基本ソフトウェアと応用ソフトウェアの中間。

デバイス

ファームウェア: ハードウェアの基本的な制御を行うソフトウェア

機器に組み込まれた ROM変更の少ないソフトウェアが組み込まれる 周辺機器、家電製品
フラッシュメモリに記憶されている 機能の追加や不具合の修正が可能 PC 本体に組み込まれる

デバイスドライバ

デバイスドライバ: 周辺機器が、新しい PC に繋いでも作動しないときに、 新しいバージョンのデバイスドライバをインストールする

標準的でない入出力装置には、 対応するデバイスドライバを組み込む必要があることがある。 購入時に附属していることが多い。

ドライバ:周辺装置を制御するソフトウェア

ハイブリッド CD-ROM: Mac OS と Windows OS の両方で使用可能な CD-ROM で、 両方のフォーマット形式で記憶させたデータであるため、共有可能

BIOS (Basic Input Output System): ROM に記憶されているソフトウェアで、PC 内部にあらかじめ塔載されている

shell: ユーザのコマンドを OS に渡すインタプリタ。 GUI アイコンを解釈したりする。

互換性

ソフトウェアの互換性

アプリケーションの互換性 OS (基本ソフトウェア) が異なるとアプリケーションソフトウェアは動かない
バージョンアップによる互換性 上位互換性があるものが多いが、 新バージョンのデータは旧バージョンのソフトウェアで使用できないことが多い
データの互換性 異なる OS を用いたデータ交換では、 相手の使えるデータ形式に変換して保存したり、 クロスプラットフォームアプリケーションソフトウェアを使用して、 データ変換なしにデータを交換したりする

オープンソースソフトウェアによる Web データサーバ

ソースコードが無償公開され、利用、改良、再配布が誰でも可能なソフトウェ アによる構築方法の名称についてまとめる。

OSWeb サーバデータベースサーバCGI スクリプト言語
LAMPLinuxApacheMySQLPHP
LAPPLinuxApachePostgreSQLPHP

OS / 言語プロセッサ

言語プロセッサ: 人間の書いたプログラム言語を機械語に翻訳する

OS の構成

OS (広義の基本ソフトウェア) の構成: 制御プログラム(狭義のソフトウェア) + サービスプログラム + 言語プロセッサ

制御プログラム ハードウェアを有効活用するためのプログラム OS の代表的な管理プログラム ジョブ管理 ジョブを分解し、 主記憶プログラムのロードやハードウェア資源の割当てを管理
タスク管理マルチプログラミングの制御、 タスクの状態遷移の管理
データ管理 各種補助記憶装置がデータを処理できるように管理する
記憶管理主記憶や仮想記憶の管理
その他入出力管理入出力装置の管理
通信管理回線を使用した通信の管理
処理プログラム 高水準言語で書かれたソースプログラムを目的プログラムに翻訳 言語プロセッサ
逐次翻訳インタプリタ ソースプログラムを機械語に翻訳しながら実行
一括翻訳 アセンブラ アセンブラ言語を機械語に翻訳
コンパイラ ソースプログラムを機械語に翻訳
ジェネレータ ソースプログラムの変数を解析し、プログラムを生成
サービスプログラム コンピュータ利用を支援するプログラム群。ユーティリティプログラム リンカ、ローダ、システム生成のサービスプログラムが連携してオブジェク トプログラムから実行可能なロードモジュールを作成

サービスプログラムとジョブ

サービスプログラム

ジョブ

ジョブ=タスク群

タスクの状態遷移=実行可能状態, 実行状態, 待ち状態

実行可能状態CPU の割り当てが与えられるとすぐ実行できる状態
実行状態CPU で実行している状態
待ち状態入出力動作の終了待ち状態

OS の種類

MS-DOSマイクロソフト社開発の OS で CUI で操作
Windows マイクロソフト社開発の OS で GUI で操作、マルチタスク可能
Mac OSアップルコンピュータ社の OS で、GUI
PC UNIXワークステーション標準 OS で、GUI も可能
LinuxPC UNIX の一つ、オープンソース・フリーソフトウェア
MVSIBM 社製の汎用計算機

アプリケーションの実行

ハードウェアとソフトウェアの役割分担について

コンピュータの起動

  1. 電源が入ると CPU がブートする。
  2. 起動プログラムは OS の起動プログラムを動かす。
  3. OS の起動プログラムはハードウェアとソフトウェアの存在を調べる。
    1. プラグアンドプレイ: 必要な項目を入力し自動設定する
    2. デバイスをデバイスドライバに読みこみ、アイドリング状態にする
PC の起動電源 ON 起動プログラム
ブート
部品、ビデオ、ボードチェック
メモリ (R/W) チェック
ディスクチェック (起動ドライブ)
OS のロード
ハードウェアチェックOS の働き
デバイスドライバロード
国別対応キーボード設定
フォント設定
日本語処理機能組み込み
ログインチェック
繰り返すコマンド入力待ち
プログラムのロード
プログラムの実行
プログラムの終了
プログラムのメモリ開放
PC の終了終了ログアウト
電源 OFF

OS の動きをまとめる。

  1. アプリケーションプログラム開始コマンドを受け取る
  2. アプリケーションプログラムをメモリにロード
  3. 起動
  4. 複数のアプリケーションが稼働している場合は資源配分を行う。
  5. アプリケーションプログラム終了コマンドを受け取る
  6. 使用したメモリを開放

標準入力とデータの受け渡し

アプリケーションプログラム実行中のデータの受け渡しについて

  1. キーボード入力
  2. 割り込みコントローラに信号が流れる
  3. CPU に割り込み処理
    1. 入力要求を受けた API がキーボードバッファのデータを渡す
  4. キーボード入力のデータをアプリケーションプログラムが受け取る