PowerPoint プレゼンテーション

第5章 コンピュータのソフトウェア
ソフトウェアとは,プログラミング言語を用いて記述した
■コンピュータに処理させる手順・命令を与えるプログラム
および
■プログラムを動作させるのに必要なデータ
のことを指す.一般的にソフトと呼ぶことも多い.
コンピュータ
= ハードウェア
システム
+ ソフトウェア
1
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
5.1 ソフトウェアの分類
ソフトウェアを機能別に分類すると,
●基本ソフトウェア(OS:オペレーティングシステム )
ハードウェアや応用ソフトウェアを管理したり支援したりす
るソフトウェアである.例えば,Windows XPやUNIXなど.
●アプリケーション(応用ソフト)
文書の作成,数値計算など特定の目的を果たすための高
度な機能を統合的に提供するソフトウェアである.例えば,
Word(ワープロソフト)やExcel(表計算ソフト)など.
●ユーザプログラム
特定業種の特定業務を処理するソフトウェアである.
2
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
●基本ソフトウェア(広義OS)
基本ソフトウェアは,ハードウェアや応用ソフトウェアを管
理したり支援したりするソフトウェアで,広義のオペレーティ
ングシステム(OS:Operating System)という.OSは応用ソフ
トとハードウェアの橋渡しするものである.
3
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
●OSの主な目的
ハードウェアの抽象化: ハードウェアへの煩雑な命令や
ハードウェア構成の差違に依存せず,OSを介してアプリ
ケーションソフトを開発することが可能である.
資源の管理: 複数のアプリケーションソフトウェアを同時
利用する場合でも,資源要求の競合が起きない限りは互い
に独立して動作できることである.
利用効率の向上: 複数のタスク(task)を同時に実行する
場合に,資源割り当ての順番や時間を工夫することで,全体
の処理速度を向上させることである.
4
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
●広義OSの構成
5
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
■制御プログラム(タスク管理)
タスク管理: タスクとは,OSから見た処理する「仕事」の実行
単位で,プロセス(process)ともいう.プログラムの実行をタスク
として管理する.タスクの処理方式には,シングルタスク方式と
マルチタスク方式がある.
シングルタスク方式では,1つのプログラムだけを実行する処
理形態である.
マルチタスク方式では,可能な複数のプログラムが同時に動
かす処理形態である.Windows系はマルチタスク方式である.
6
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
■制御プログラム(タスク管理)
マルチタスク方式は次の方法で実
現する.タスクA,BとCが同時に実
行されているとすると,各タスクに均
等の時間を与えて作業を行い,各タ
スクに作業する時間が決まっていて,
インターパルタイマという.例えば,
CPUがタスクAの作業を行っていて,
タイマが鳴ったら,Aの作業を中止し,
タスクBの作業を行い,タイマが鳴っ
たら,Bの作業を中止,タスクCへ.繰
り返してマルチタスクを処理する.
7
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
タスクの生成と消滅の過程
実行可能状態(Ready): 実行可能であるが,別のタスクが
実行中のためか,順番を待っている状態である.
実行状態(Run): 実行している状態である.
待ち状態(Wait): 入出力を待っている状態である.
8
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
■制御プログラム(ジョブ管理)
ジョブ(job)とは,人間側から見たコンピュータにさせる仕
事の単位.1つのジョブを1つ以上のタスク(プロセス)から
構成される.代表的ジョブ処理方式は,
バッチ処理:一定期間(もしくは一定量)データを集め,まと
めて一括処理を行う処理方式である.
リアルタイム処理:ユーザがコンピュータにジョブを与えると,
コンピュータがリアルタイムにこれを処理する方式である.
時分割処理:コンピュータを複数のユーザが共同で使っている
とき,CPU時間を細分化することで,複数のジョブを同時に処
理するシステムである.
9
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
■制御プログラム(ファイル管理)
ファイル(file)とは,ハードディスクやフロッピーディスク,CDROMなどの記憶装置に記録されたデータのことである.用途
や形式にファイルを大きく分けて,コンピュータが実行できる命
令の集合であるプログラムファイルと,コンピュータのユーザが
作成した情報を記録しておくデータファイルがある.ファイルシ
ステムは下図のようなディレクトリツリー構造(木の構造)を持
ち,階層的なファイル管理を実現している.
10
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
■制御プログラム(ファイル管理)
ファイルシステムの機能は次のようになる.
●ファイルの構造
●ファイルの操作
●ファイルの分類
●ファイルの属性管理
●ファイルの保護
11
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
■制御プログラム(主記憶装置管理)
主記憶装置管理: タスクの生成時から消滅までに,タスク
のプログラムやそのデータを主記憶装置(メモリ)に呼び出
して使い,駐在させる必要がある.メモリの容量限界がある
から,OSは各タスクが利用しているメモリ領域の管理や未
使用領域の管理などを行う.
主記憶装置の管理はOSの重要な役割である.
12
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
■制御プログラム(主記憶装置管理)
メモリ領域の管理について,OSはタスクの発生時に,プロ
グラムとそのデータを格納するスペースを主記憶装置(メモ
リ)に割り当てる.固定区画法と可変区画法がある.前者は
各タスクに対して,あらかじめ主記憶装置に領域を割り当て
ておき,タスクの発生時にその領域を利用する.後者は実行
するタスクの大きさに合わせて領域を与える方法である.
仮想記憶領域の管理について,あたかも実装されている
主記憶装置(RAM)以上にコンピュータがメモリを持っている
かのように扱うことができるメモリ空間を仮想メモリと呼ぶ.
一般にハードディスク上に仮想記憶領域を確保し,これらを
管理する.
13
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
■制御プログラム(主記憶装置管理)
仮想記憶管理は次のような方法がある.
スワッピング方式:優先度の高いジョブが投入されたとき,メモ
リが足りなかったら,現在駐在しているプロセス(プログラムや
データ)を補助記憶装置に退避させ,メモリを譲る式である.
セグメント方式:あらかじめプログラムを幾つかのセグメントに
分割しておき,複数のタスクが同じプログラム用のセグメントを
共有できるので,主記憶装置の節約を図る.
ページング方式:主記憶装置とプログラムを固定長さの単位
(ページという)に分割し,効率よく主記憶装置を管理する.
14
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
■制御プログラム(入出力管理)
入出力管理の役割は,システム
に接続されているあらゆる入出力
用装置の管理を行うことである.各
装置は,OS上にあるデバイスドラ
イバを介して,制御される.
入出力装置の動作速度はCPUに比べ非常に遅い.入出力装
置に仕事を指示した後,入出力装置が処理している間にCPUは
別の仕事を行える.
15
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
●言語処理プログラム
言語処理プログラムは,プログラムを実行させるソフトウェア
である.プログラミング言語を大きく分けると,機械語,アセンブ
リ語,高級言語(C,C++,Basic,Java,Pascal,COBOL,Fortran
など)の3種類になる.コンピュータが直接実行できる言語は,
機械語だけである.よって,アセンブリ言語と高級言語で書いた
プログラムを機械語に翻訳するプログラムが必要である.
16
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
●サービスプログラム
サービスプログラムは,ある特定の目的のために設計された
ソフトウェアで一般的な道具を提供する.ユーティリティともいう.
テキストのエディタ,ファイル圧縮やコンピュータウイルス駆除,
メモリ管理,スクリーンセーバーなど,OSや他のアプリケーショ
ンソフトのもつ機能を補い,機能や性能,操作性を向上させるソ
フトウェアのことである.
GUI(Graphical User Interface)は,ユーザに対する情報や
操作の表示にグラフィックを多用し,大半の基礎的な操作をマ
ウスなどのクリックすることにより行なうことができる.最近,OS
がGUI機能を提供し,コンピュータの操作が簡単化になる.
17
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
アプリケーション(応用ソフトウェア)
アプリケーションソフトウェアは,文書の作成,数値計算など
特定の目的を果たすための高度な機能を統合的に提供するソ
フトウェアである.代表的なアプリケーションソフトには,
●プレゼンテーションソフト
●ワープロソフト
●ゲーム
●表計算ソフト
●Webブラウザ
●画像編集ソフト
●電子メールソフト
●データベースソフト
などがある.
18
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
ユーザプログラム(個別応用ソフトウェア)
特定業種の特定業務を処理することを目的とするソフト
ウェアである.企業,組織と個人がそれぞれの目的のため
に開発したプログラムの全体である.特に,企業の在庫管
理システム,人事管理システム,図書館の図書管理システ
ム,金融機関の預金システム,チケット販売の予約システ
ムなどが挙げられる.
19
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
ソフトウェアの分類及びハードウェアとの関係
ユーザプログラム
アプリケーション
言語処理プログラム
OS
サービスプログラム
OS
制御プログラム
ハードウェア
20
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
5.2 プログラムとアルゴリズム
ソフトウェアの開発とは,プログラムを作成することである.
プログラムとは,プログラミング言語を用いて,コンピュータの
行う処理(演算・動作・通信など)手順(命令)を指示したもの
である.
コンピュータを用いて処理する方法と手順をアルゴリズムと
いう.アルゴリズムは人間向きの表現であるから,コンピュー
タはそのまま実行できない.したがって,プログラミング言語
を用いて,アルゴリズムをコンピュータが理解できるように変
換したものはプログラムである.
21
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
●アルゴリズムとは
アルゴリズムは,漢字で表現すると
「算法」となる.また,日本工業規格
JISでは,次のように定義されている.
「明確に定義された有限個の規則の
集まりで,有限回適用することにより
問題を解くもの」
要するに,アルゴリズムは問題を解
決するための計算手順(命令)である.
問題を 与え る
ア ルゴ リ ズム を 考え る
プロ グ ラ ム 言語を 用いて,
プロ グ ラ ム を 作る
コ ン ピ ュ ータ で実行し て,
問題を 解決する
22
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
●アルゴリズムの表現法
アルゴリズムの表現方法として,次の3種類ある.
■自然言語の箇条書:自然言語の箇条書表現法は,自然
言語で解き方をステップに分けて表現する方法である.
■フローチャート(流れ図):フローチャート表現法は,日本
工業規格JISによる制定された記号を用いて,解決方法を
図式化で表現する方法である.
■プログラムの形式:プログラム形式の表現法は,プログ
ラミング言語Pascalらしい形を用いて,解決方法を表現す
る方法である.
23
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
【例題5.1】:2次方程式 ax2+bx+c=0 (a≠0)の解を求める
アルゴリズムとプログラムを作ってみよう.
●自然言語の箇条書の表現法
24
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
●フローチャート(流れ図)の表現法
フローチャートに
使っている記号
の意味は教科書
P.99を参照
25
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
●プラグラム形式の表現法
26
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
BASIC言語によるプログラムと実行した結果
27
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
C言語によるプログラムと実行した結果
実行した結果
C言語のプログラム
28
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
5.3 プログラム言語
プログラミング言語は,人間がコンピュータに命令を指示する
ために作られており,コンピュータが曖昧さなく解析・理解でき
るように設計されている人工言語の総称である.プログラミン
グ言語は,人間にとって,理解のしやすさにより次のように分
類されている.
●機械語
● アセンブリ言語
● 高級言語
● 第4世代言語
29
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
●低級言語、高級言語とは?
機械語やアセンブラ言語は,よりハードウェアに近い言語
であり,より直接的にコンピュータを制御することができる.
このようなプログラミング言語を「低級言語」あるいは「低水
準言語」という.人間が使う自然言語に近い言語を「高級言
語」あるいは「高水準言語」という.
プログラミング言語を用いて記述したプログラムをソース
コードといい,一般的にそのままではコンピュータ上で実行
することはできないため,アセンブラまたはコンパイラなど
のソフトウェアを用いて,コンピュータの理解できる機械語
プログラムに変換される.このような実行できる機械語プロ
グラムをオブジェクトコードと呼ばれる.
30
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
第5章のまとめ
1.ソフトウェアの分類
●基本ソフトウェア(広義のOS)は,制御プログラム,言語プ
ログラムとサービスプログラムからなる.
●制御プログラムは,タスク(プロセス)管理,ジョブ管理,
ファイル管理,主記憶装置管理と入出力管理を含む.
●言語プログラムに,アセンブラ,コンパイラとインタプリタ
がある.
2.ソフトウェアとハードウェアの関係
31
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア
第5章のまとめ
完
3.プログラムとアルゴリズムの関係と区別
●プログラムはコンピュータに与える命令の集合である.
●アルゴリズムは問題を解決する方法と手順である.
4.アルゴリズムの表現法
5.プログラミング言語
●機械語
●アセンブリ言語
●高級言語
●第4世代言語
32
コンピュータとネットワーク概論
第5章 コンピュータのソフトウェア