第8講 基本ソフトウェア  1講 2講 3講 4講 5講 6講 7講  9講 10講 11講 12講 13講 14講

コンピュータの基礎第8講
基本ソフトウェア

【第8講のポイント】
 パソコンの電源を入れたとき、ワープロや表計算、インターネットブラウザなどアプリが直接動きだすわけではない。例えばWindowsと呼ばれるオペレーティングシステム(OS)が立ち上がり、その後ユーザが目的や必要に応じて適切なプログラムやデータファイルを選択してアプリを起動させる。
 このように、われわれがパソコンを使うときには、OSと呼ばれる基本ソフトウェア上でワープロなどの応用ソフトウェア(アプリ)を起動して利用するので、まずOSに対する基本的な知識が必要である。本講ではOSについての理解を深める。

【第8講の目標】学習後、以下のことが身についたかチェックしよう。
  1. 基本ソフトウェア(OS)の目的と機能をを理解している
  2. ファイルシステムの仕組みを理解し、ファイル名の意味が分かる
  3. URLの仕組みを理解し、その意味が分かる
  4. 次の術語の意味がわかる
     マルチプログラミング、マルチユーザ、TSS、RASIS、GUI、FAT、フォルダ(ディレクトリ)

【第8講の構成】
  1. ソフトウェアとは
  2. オペレーティングシステム(OS)
  3. ファイルシステム

第1節 ソフトウェアとは

 ソフトウェアは、広い意味では「プログラム、手順、規則、関連文書などを含む知的な創作」を指す言葉であるが、ここではより狭く「不特定多数の人が頻繁に使用するプログラム」の意味で使う。ソフトウェアは大きくシステムソフトウェアと応用ソフトウェアに分かれる。
 システムソフトウェアは利用者がハードウェアを効率よく働かせ、容易に活用できるための機能を果たし、さらに基本ソフトウェアとミドルウェアに分けることができる。基本ソフトウェアは、主にコンピュータシステムの資源(ハードウェア、データ、人)を有効に働かせるためのソフトウェアで、広い意味でOS(オペレーティングシステム)と呼ばれる。ミドルウェアは、基本ソフトウェアと次に述べる応用ソフトウェア(アプリ)の中間(ミドル)に位置するソフトウェアで、多様な利用分野に共通する以下のような基本的機能を実現する。
  • データベース管理
  • ソフトウェア作成支援
  • 通信管理
  • クライアント・サーバ機能
  • GUI制御
 応用ソフトウェア(いわゆるアプリ)は、利用者が具体的な作業する際に利用するソフトウェアで、システムソフトウェアの制御の下でその機能を利用して動作する。応用ソフトウェアは、不特定多数の利用者のために市販(提供)されている、ワープロソフト、表計算ソフト、作画ソフト、プレゼンテーションソフト、通信ソフト、ブラウザ、ゲーム等の共通応用ソフトウェアと、個別の要求に対応して特注される、金融機関のATMシステム、座席予約システム、POSシステム、生産管理システム等の個別応用ソフトウェアとがある。

*問.8.1.次の言葉の意味を述べよ (ヒント)
  1. データベース管理システム
  2. ソフトウェア開発支援ツール
  3. クライアント・サーバシステム
  4. GUI

第2節 OS(オペレーティングシステム)

 OS(Operating System)は、コンピュータを如何に人が使いやすいもの変えていくか、という工夫の積重ねである。 OSの諸機能を理解するためには、コンピュータの使われ方の展開を概観しておくとよい。

1.初期のコンピュータは、コンピュータを維持・管理する人と、利用する人が同じであった。そこでは
  1. コンピュータは、補助記憶装置にある実行させたいプログラムを主記憶に読込む必要がある。そのためのほとんど同じプログラムをまず動かすことが必要なので、共通に、そしてまず起動するようにした。(OSの起源)
  2. プログラムごとに毎回同じような入出力部分を組み込むことは非効率かつ誤りのもとなので、それらを入出力サブプログラムとして独立させ、1.のプログラムに組み込むようにした
  3. プログラムを機械が直接認識できる 0,1の機械語でなく、それを人間に分かりやすい表記に置き換えたアセンブリ言語で書けるようにすることが行なわれた。アセンブリ言語で書かれたプログラムを機械語に翻訳するプログラムをアセンブラという(CPUの項参照)。
  4. 次にプログラム中で数式を使えるようにすることが考えられた。最初のプログラミング言語(高級言語)は科学技術計算用のFORTRAN(FORmula TRANslator)である。続いて英語に近い表現で、理解しやすく書きやすい事務処理用言語を目指して、COBOL(COmmon Business Oriented Language)が開発された。

2.高級言語が開発され、コンピュータの性能も上がり、プログラム作成が比較的容易になると、各分野の専門家が書いたプログラムの処理(計算)を計算(情報処理)センターが請け負うようになった。そこでは、高価なコンピュータのCPUを無駄に遊ばせることなくいかに効率よく使うかが問題になる。
  1. ジョブ管理:複数のジョブ(ユーザから見た処理単位)をスケジューリングし、効率的かつ連続的に実行させる
  2. スプーリング:CPUは、入出力データをメモリ(あるいはディスク)上の特定の領域で読書きし、入出力装置には、動作可能になったときに自動的にその領域でデータを読書きさせる。
  3. マルチプロセス・マルチプログラミング:あるプログラム(プロセス)が入出力処理を実行している間に他のプログラム(プロセス)にCPUを割り当てるなどして、複数のプログラムを(見かけ上)同時並行的に動かす。プロセスはOSから見た処理の実行単位である。
スプーリング・マルチプログラミングの概念図
[入力][処理][出力][入力][処理][出力][入力][処理][出力]・・・
           ↓ スプーリングマルチプログラミング
[入力][処理][出力]
      [入力][処理][出力]
            [入力][処理][出力]・・・
3.計算(情報処理)センターにプログラムとデータ(が書かれた紙テープやカードの束)を持っていくのではなく、研究室にコンピュータとつながった端末をおいて、直接プログラムを作成し計算できる仕組み(TSS)が開発された。
  1. TSS(Time Shearing System):1台のコンピュータに多数の端末をつないで多数の人が(見かけ上)同時に利用できるようにするため、コンピュータが細かく区切られた時間間隔で端末からの要求を処理し、プログラムを実行する
  2. マルチユーザ管理:多くのユーザが1つのコンピュータ(システム)を共用できるようにするために、ユーザ認証や、ユーザごとのハードディスク占有領域の確保・アクセス権限の設定などのユーザ管理を行う
問8.2.TSSに関する次の問に答えよ。 (ヒント)
クロック周波数3GHzのコンピュータ(CPU)に、200台の端末をつなぎ、各端末を0.1秒に1回対応するようにしたとき、1台の1回あたりのCPUの動作回数は何回か。
[端末A][端末B]…[端末Z][端末A][端末B]…[端末Z][端末A][端末B]…[端末Z]・・・
200台で0.1秒200台で0.1秒200台で0.1秒・・・

4.コンピュータ同士を回線で結ぶネットワークが構築され、遠隔地の(高性能)コンピュータを手元の端末から使うようになった。またパソコンが普及し、誰でもコンピュータを持てるようになってきた。
  1. コンピュータネットワークを利用してファイルや電子メールをやりとりしたのが、インターネットの始まりである。
  2. 誰でもコンピュータを使えるようになると、人間とコンピュータとの対話処理を円滑に進める仕組みや工夫(ユーザインタフェース)が発達した。最近はGUI(Graphical User Interface)があたりまえで、コンピュータ内の様々な対象(装置、プログラム、データ等)がアイコン(視覚表現)で表され、マウスなどを用いて視覚的・感覚的に操作できるようになった。
*問8.3.自分のパソコンでタスクマネージャー(Ctrl+Shift+Esc⇒左下に[ⓥ詳細]があればクリック)を起動し、以下を報告せよ (ヒント)
1.稼働アプリケーション、2.稼働プロセス3個、3.CPU・メモリの使用率、4.インターネットアクセス時のネットワーク使用率、5.利用中のユーザ
.アプリがフリーズしたらタスクマネージャーから強制終了できるので(参考サイト)Ctrl+Alt+Del からの起動も覚えておくとよい。Macではアクティビティモニタを利用する。

OSの目的

OSは次のような目的を持つ。
ハードウェア資源の有効活用
ジョブの連続処理、スプーリング、マルチプログラミング、
処理能力の向上
レスポンスタイム(応答開始時間)とターンアラウンドタイム(処理完了時間)の短縮
信頼性と安全性の確保
信頼性(Reliability)、可用性(Availability)、保守性(Serviceability)、完全性(Integrity)、機密性(Security)の頭文字をとって、RASISの向上、と呼ばれる。

*問8.4. (ヒント)
  1. レスポンスタイムとターンアラウンドタイムについて説明せよ(参考
  2. RASISの各項目、信頼性、可用性、保守性、完全性、機密性について説明せよ。(参考

コラム.最初に起動するプログラム:ROMとBIOS
 コンピュータは(主メモリに)プログラムがなければ動かない(プログラム内蔵方式)が、主メモリは揮発性なので、電源投入時は空の筈である。その時最初に動くプログラムは、ではどこにあるのだろうか。
 実は CPU に付属して、不揮発性で書き込み不可の ROM(Read Only Mmeory) があり、そこにある BIOS(Basic Input/Output System)プログラムが実行される。BIOSは、コンピュータに接続する機器を使用可能にした後、補助記憶装置にある OS を読込んで起動する。(参考:OS起動の仕組み)

OSの機能

OSの歴史でも触れたが、OSの機能には以下のものがある。
  1. 入出力装置の制御
    ドライバを組み込んで入出力装置を使用可能にする。
  2. プログラム(プロセス)の実行管理
    実行中のプログラムの状態や入出力装置、記憶装置などの使用状況を管理し、プログラムが効率よく実行する。
  3. 障害の検知と回復
    コンピュータの信頼性と安全性を確保するために、障害をいち早く検知し、被害を最小限にとどめて、システムを回復させる。
  4. 記憶管理
    キャッシュ仮想記憶の機能を実現し、データアクセスを効率化する。
  5. ファイル管理(第3節で詳述)
    コンピュータ内のデータ(プログラム)をファイルという単位で管理・制御する。
  6. ユーザ管理
    ユーザ認証(IDとパスワードの検査)や補助記憶装置上の各ユーザの占有領域の管理等を行なう。
  7. 通信管理
    コンピュータ通信を実現し、インターネットなどを使えるようにする。
  8. 言語プロセッサー(第9講で詳述)
    高級言語(FORTRAN、COBOL、BASIC、PASCAL、C、JAVA、…)で書かれたプログラムを機械が直接実行可能な機械語に翻訳し実行する。
  9. ユーザインターフェース
    GUI等のユーザが使いやすいインターフェースを実現する。

サービスプログラム(ユーティリティ)

 OS中の、コンピュータの利用を支援するソフトウェア(プログラム)群であり、プログラミングに利用するエディタリンカデバッガなどの他に、整列・併合プログラム(データを整列したり、複数のデータファイルを1つのデータファイルに併合する)、ローダ(プログラムを補助記憶装置から主記憶装置に書き込む)等がある。
 言語プロセッサとサービスプログラムを除いた部分を狭義のOS、それらを含むものを広義のOSということもある。

オブジェクト指向とGUI

 コンピュータにつながっている入出力装置やプログラム、データ等のファイル、ウィンドウなど、コンピュータシステム内の対象をオブジェクトと呼び、オブジェクトにプロパティ(属性)とメソッド(受け入れ可能な操作・命令)を持たせる考えかた(設計方針)をオブジェクト指向という。
 従来のUI(ユーザインタフェース)は、アプリケーション(プログラム)が中心でデータはその付随物(処理対象)だと考えていた。何か処理を行わせる手順は、動作を指定(アプリケーションを起動)してからその対象を指定するという、英語流の「動詞+目的語」の順であった。現在のGUIはオブジェクトを中心に設計され
  1.何を(対象)  2.どうする(操作)
という日本語の語順(目的語→動詞)で指定するのが基本である。
 対象のアイコンを右(ボタンで)クリックすると、プロパティや可能な処理(受け付ける命令)の一覧が表示される。また対象(アイコン)は、ダブルクリックすれば、デフォルト(標準)の処理が行なわれ、アプリケーション(のアイコンに)にドラッグ&ドロップすれば、そのアプリケーションで処理される。

実習.
以下の操作手順にしたがって、アイコンのコピー操作を行なえ。この操作はアイコンに限らずコンピュータ内のすべてのオブジェクトに共通で、ファイルのコピーや文章や画像、音声データのコピーにも応用できる。
  1. デスクトップ上のアイコンにマウスを合わせて右クリックする
  2. 現れたメニュ中にコピーがあればそれを選択する
  3. デスクトップ(コピーを置きたい場所)で右クリックし、貼り付けを選ぶ
  4. 3.で作成したコピーを、上記手順を参考に削除せよ

第3節 ファイルシステム

 本節では、OSのファイル管理機能について、より詳しく学ぶ。ファイルはコンピュータにおけるデータやプログラムのまとまりで、二次記憶装置に保存されるデータやプログラムはファイルとして管理される。

ファイルの種類

 ファイルはその中身・性格に応じて次のように分類され、拡張子(ファイル名のピリオッド.以下の文字列)で区別される。
  1. テキストファイル
    文字と改行記号から構成されるファイル。拡張子は.txt
  2. 実行ファイル
    機械語命令から構成されるプログラム。拡張子は.exe
  3. 画像ファイル:拡張子は、.bmp、.jpg、.gif、.png 等
  4. 音声ファイル:拡張子は、.mp3、.wav、.aiff 等
  5. 動画ファイル:拡張子は、.mpg、.avi、.mov 等
  6. 圧縮ファイル:拡張子は、.lzh、.zip、.tar 等
  7. Webページ:拡張子は、.html、.htm、.xml 等
  8. その他のデータファイル
    アプリケーションは利用するデータファイルに独自の拡張子を付ける

階層構造とファイル名

 ファイルフォルダ(ディレクトリ)に入れて整理される。フォルダにはフォルダを入れる(作る)こともできる。このような構造は、データモデルのところでも述べたように、階層構造(木構造)と呼ばれる。
 ファイル名は、階層構造上の場所を示すパスと(狭義の)ファイル名拡張子からなる。例えば
  C:\Program Files (X86)\Microsoft Office\Office16\WINWORD.EXE
は、Cドライブの「Program Files (X86)」フォルダ中の「Microsoft Office」フォルダ中の「Office16」フォルダ(パス)にあるWINWORDという名前の.EXE (実行)ファイルを表す。このようにパスは日本の住所表示同様、場所を階層(木)構造の上(根)から下(葉)に指定する。また、記憶装置に対応する(ルート)ディレクトリのことをドライブという。
問8.5.C:\Windows\system32\mspaint.exe について (ヒント)
  1. ドライブ、パス、ファイル名、拡張子を答えよ
  2. ディレクトリ(フォルダ)はどれか
  3. このファイルがある場所はどこか
  4. エクスプローラを使い、ファイル C:\Program Files (X86)\Microsoft Office\Office16\WINWORD.EXE を探し出して起動せよ。

コラム.ショートカット
ファイルシステムは階層構造であると述べたが、ショートカット(近道)機能があるため厳密には正しくない。ショートカットは階層構造の奥深くにあるフォルダやファイルへの簡便なアクセス(近道、バイパス)を提供するもので、これを考慮する場合、ファイルシステムのデータモデルは循環路(サイクル)を持たないグラフになる。
 例えば C:\Program Files (X86)\Microsoft Office\Office16\WINWORD.EXE へ至る経路には
  C:→Program Files (X86)→Microsoft Office→Office16→WINWORD.EXE
の他に、パソコンの設定によって異なるが
  デスクトップ→Wordアイコン
  スタート→すべてのプログラム→Microsoft Office→Wordアイコン
などがある。

URL(Uniform Resource Locator)

URLは、インターネット上のファイルや場所等の指定形式である。よく見るWebページの例では、
http://www.lib.otsuma.ac.jp/guide/schedule/index.html
のように記述される。httpはファイルがWebページ(正確にはWebページの要求と送受信を行う通信規約)であることを意味し、3番目の/より左側がマシーンの指定で、右側がマシーン内のファイル(場所)指定である。マシーン指定では、マシーン名がwww、その場所がlib(図書館)、otsuma(大妻女子大)、ac(教育研究機関)、jp(日本)であることを意味する。さらに右側(/以降)は、wwwマシーン上の(Webページ用ディレクトリ内の)、guideディレクトリ中のscheduleディレクトリにあるindex.htmlという名前のファイルという意味である。また、ファイル名が省略されている場合、その場所にあるトップページという意味になる。
 このように、マシーン指定は欧米流で、マシーン以下のファイル(場所)指定は日本流である。
 URLには、httpの他にも、mailto(メイル)、ftp(ファイル送受信)、file等々多くの形式がある。例えばmailtoであれば、 mailto:ユーザ名@マシーン指定、でマシーン指定の形式はhttpと同じである。

ファイルの記録形式

 ここまで、ファイルシステムの論理的な構造を説明してきたが、ファイルは、例えばハードディスクのような補助記憶装置内に、どのように配置されるのだろうか。ハードディスクにおける区画単位は、セクタと呼ばれ(第6講参照)、通常1セクタが512バイトである。
 一方、ファイルを記録するときの区画単位はクラスタと呼ばれ、通常1セクタ(512バイト)から128セクタ(64Kバイト)の間の値が設定される。クラスタサイズは大きいと無駄が増えるが、小さいと管理が煩雑になり、この後説明する断片化が多発し速度低下をまねく。

問8.6. (ヒント)
自分のパソコンのクラスタサイズを調べよ。
ヒント:小さなサイズの(テキスト)ファイルを作成し、そのプロパティで、サイズとディスク上のサイズを調べよ。

ハードディスクは、ディスク内のファイルを管理するために、以下のような仕組み(データ)を持っている。
FAT(File Allocation Table)
クラスタ毎に、状態(使用中、空き、故障、システム専用等)および連結するクラスタ番号を保持する
ディレクトリ領域
ディレクトリ(ファイル)の階層構造を管理するために、ディレクトリ(ファイル)名、サイズ、更新時刻、開始クラスタ番号等を保持する。
クラスタ
ファイル(ディレクトリ)のデータを保持する。データが複数クラスタにまたがる場合、次に続くクラスタの情報はFATで管理される。

ハードディスクの断片化

 通常、ファイルは複数のクラスタを使用するが、保存の際は、空いているクラスタに順に配置される。したがって、ファイルの削除(使用クラスタの解放)や保存が繰り返されると、ディスク上に空きクラスタと使用クラスタが分散して存在するとともに、ファイルが連続したクラスタではなく、とびとびに置かれる(断片化)ことになる。
 ファイルが断片化されると、クラスタ位置にヘッドを移動させる頭出しに時間がかかり(第6講)、ファイルアクセスの低速化を招く。
 このため、OSが定期的にディスクデフラグ(断片化されたファイル・空き領域の整理統合)を行う設定になっていることも多い。

第6講では、回転速度=6000rpm(毎分6000回転)、平均シーク時間=10ms、トラック容量=500KB のハードディスクのアクセス時間を次のように求めた。
  平均サーチ時間=1/2回転時間=60/6000×1/2秒=5ms、
  転送速度=500×6000/60(KB/s)=50MB/s=50KB/ms
だから、
  100KBのアクセス時間=10+5+100/50=17ms
となる。

問8,7.上記のハードディスクにおいて、10MBのファイルが (ヒント)
  1. 断片化されず10MB連続して配置されているときのアクセス時間を求めよ
  2. 100KBずつ100個に断片化されているときのアクセス時間を求めよ

実習.ディスク断片化の状況確認
ディスクデフラグツールを利用して、自分が使っているディスクの断片化の状況を確認せよ。