平成20年度 春期 ソフトウェア開発技術者試験 問21−40 解答編




このページは

ソフ開

(ソフトウェア開発技術者試験)

解答と解説のページです。

問題だけで勉強したい方は目次へ戻ってください



問21 1画素当たり24ビットのカラー情報をビデオメモリに記憶する場合、横1,024画素、縦768画素の画面表示に必要なメモリ量は、約何Mバイトか。ここで、1Mバイトは106とする。
0.8
2.4
6.3
18.9
解答
解説 まず、1画面の画素数が1024×768=786432。それぞれのカラー情報が24ビット=3バイトなので、786432×3=2,359,296≒2.4Mバイトとなります。

問22 ページング方式の仮想記憶において、あるプロセスが仮想アドレス空間全体に対応したページテーブルをもつ場合、ページテーブルに必要な領域の大きさを2xバイトで表すとすると、xを表す式はどれか。ここで、仮想アドレス空間の大きさは2Lバイト、ページサイズは2Nバイト、ページテーブルの各エントリの大きさは2Eバイトとし、その他の情報については考慮しないものとする。
L+N+E
L+N−E
L−N+E
L−N−E
解答
解説 ページテーブルに必要な領域の大きさはエントリ数×エントリサイズにより表すことができます。エントリ数は、仮想アドレス空間の大きさ/ページサイズにより求めることができます。

つまり、エントリ数は仮想アドレス全体が2Lバイト、ページサイズが2Nなので、2L/2N個になります。
そして、ページテーブルの大きさは、2L/2N×2Eにより求めることができます。

指数法則により、2L/2N×2E=2(L-N+E)となります。質問では指数部を問われていますので、L−N+Eが正解となります。

問23 仮想記憶方式に関する記述のうち、適切なものはどれか。
LRUアルゴリズムは、使用後の経過時間が最長のページを置換対象とするページ置換アルゴリズムである。
アドレス変換をインデックス方式で行う場合は、主記憶に存在する全ページ分のページテーブルが必要になる。
ページフォールトが発生した場合は、ガーベジコレクションが必要である。
ページングが繰り返されるうちに多数の小さな空きメモリ領域が発生することを、フラグメンテーションという。
解答
解説 仮想記憶方式とは、主記憶の容量が少なくプログラムが実行できないときなどに利用される技術です。ハードディスクの一部を主記憶のように使うことで、主記憶の見かけ上の容量が増加しますが、実際にはハードディスクを利用するわけですから、アクセス速度は低下します。

選択肢ア:LRU(Least Recently Used)は最も最後に使用されてから時間が経過したものをページアウトするアルゴリズムです。
選択肢イ:インデックスを利用してアドレスを計算する場合には、ページテーブルは不要となります。
選択肢ウ:仮想記憶のページフォールトとガーベジコレクション(使用されていないメモリ空間を開放し、整理するシステム)は関係がありません。
選択肢エ:ページングは固定長のサイズで行われるため、可変長であるセグメント方式のようにフラグメンテーションは発生しません。

問24 イベントドリブンプリエンプション方式を用いたリアルタイムシステムのタスクA、B、Cそれぞれの処理時間と、イベントが発生してから応答するまでに許容される時間(許容応答時間)を表に示す。タスクの優先順位は、すべてのタスクが許容応答時間以内に応答できるように定めた。タスクA、B、Cが同時に実行可能状態になったとき、発生する状況はどれか。

画像(問24)を表示できません
タスクAが実行状態になり、タスクB、Cは実行可能状態のまま。
タスクAが実行状態になり、タスクB、Cは待ち状態になる。
タスクBが実行状態になり、タスクA、Cは実行可能状態のまま。
タスクCが実行状態になり、タスクA、Bは待ち状態になる。
解答
解説 同時に実行可能になった場合に間に合うかを許容応答時間から考え、タスクの優先順位を考えます。

タスクA:タスクB、あるいはタスクCを実行してからでは、許容応答時間に間に合いませんので、タスクAはタスクB,タスクCよりも優先度を高くする必要があります。
タスクB:タスクA、タスクBを実行した後でも、許容応答時間に間に合うので、タスクBの優先度は低くても問題ありません。
タスクC:タスクAとタスクBを実行したあとで、タスクCを実行した場合のみ間に合いませんので、どちらかより優先度を高くする必要があります。

3つのタスクの優先度条件から、タスクA>タスクC>タスクBという優先度になることが分かります。つまり、タスクA,B,Cが同時に実行可能になった場合には、タスクAが実行状態になり、タスクB,タスクCは実行可能状態のままになるといえます。待ち状態とは、入出力の完了などを待っている状態をいいます。

問25 タスクが実行状態、実行可能状態、待ち状態のいずれかの状態をとるとき、実行状態のタスクがプリエンプションによってほかのタスクに実行を中断され、再び実行状態となるまでの状態の変化を示したものはどれか。
実行状態、実行可能状態、実行状態
実行状態、実行可能状態、待ち状態、実行状態
実行状態、待ち状態、実行可能状態、実行状態
実行状態、待ち状態、実行状態
解答
解説 まず、タスクの3つの状態とその遷移が行われる条件をまとめます。

状態遷移を表示できません

今回は、自分より優先度の高いタスクに処理の権限を取られてしまったので、一時的に実行可能状態になり、その後優先度の高いタスクが処理を終了すれば実行状態に戻ることができます。

なお、プリエンプションとは実行中のタスクを一時的に中断/再開させる機構をいいます。

問26 ファイル領域割当て方式のうち、連続したブロックにすき間なく格納する方式と比較したときの、ブロックをリンクで連結する方式の特徴として、適切なものはどれか。
ファイル作成時に必要なブロック数を割り当てるので、領域の拡張が難しい。
ファイルに対する直接アクセスの効率が良い。
ファイルの作成と削除を繰り返しても、ファイルに割り当てられない無駄な領域が発生しない。
ファイルは開始ブロック位置とブロック数で管理されるので、領域管理が容易である。
解答
解説 データ構造としては、配列とリストの違いを考えるとよいかと思います。2つのイメージ図を以下に示します。

配列とリストを表示できません

選択肢ア:リンクで接続できるほうが、領域の拡張がしやすいといえます。
選択肢イ:リンクで接続する場合には、先頭や末尾から目的のブロックをたどる必要があるので、効率は悪くなります。
選択肢ウ:リンクで接続する場合は、次のブロックのアドレスを修正するため、追加、削除にともなう無駄な領域は少ないといえます。
選択肢エ:連続したブロックへ格納する方式の説明です。リンクで接続する場合には、次のブロックへのリンク情報などの管理も必要となります。

問27 入出力管理におけるバッファキャッシュ機能の記述として、適切なものはどれか。
一度アクセスしたデータブロックは再利用される可能性が高いので、入出力に利用したバッファをすぐには開放せずに、しばらく保持する。
仮想記憶に複数のバッファを用意してデータの参照と更新を行い、プログラム終了時に一括して磁気ディスクに書き込む。
頻繁に使用するファイルに高速にアクセスするために、主記憶の一部を仮想的な記憶媒体として割り当てる。
ファイルの読取りを高速に行うために、複数のバッファを用意して、連続ブロックの先読みを行う。
解答
解説 バッファキャッシュ機能とは、入出力と結果を格納する場所の間にメモリを配置し、一時的に情報を記憶しておく機能のことをいいます。これにより同じ情報へのアクセスを高速化したり、一定量の情報をまとめて転送することができます。しかし、情報が即時に反映されない場合があるなどのデメリットもあります。

問28 3層クライアントサーバシステムのファンクション層で処理される二つの機能の組合せはどれか。
検索条件の入力、データ処理条件の組立て
検索条件の入力、データベースへのアクセス
データ処理条件の組立て、データの加工
データへのアクセス、データの加工
解答
解説 サーバとはサービスを提供するもので、クライアントとはサービスを依頼する(受け取る)ものです。まず、2層と3層についてまとめます。

2層:サーバとクライアント
3層:プレゼンテーション層・ファンクション層(アプリケーション層)・データベース層

プレゼンテーション層がクライアントに該当する部分で、ファンクション層とデータベース層がサーバに該当する部分になり、主な機能は以下のようになります。

プレゼンテーション層:クライアントへのインタフェース部分
ファンクション層:データの加工
データベース層:データへのアクセス

問29 NAS(Network Attached Storage)を導入する利点はどれか。
直接LANに接続し、異なるOSの複数のコンピュータでファイルを共有することができる。
データをブロック単位で共有し、高いスループットを実現することができる。
ネットワークへの負荷を軽減し、ファイバチャネルを介した高速なデータ送受信を行うことができる。
汎用サーバに構築されたファイルシステムを共有し、ファイル利用の自由度を高めることができる。
解答
解説 NAS(ネットワーク接続ストレージ)とは、ネットワークに直接接続して利用するファイルサーバをいいます。NASは異なるOS間で情報を共有したり、ファイル単位でアクセス権などを設定したりできます。NASにRAIDなどの機能を付加することで、保守性や利便性を向上させることができます。ただし、ファイルの改ざんには別の機能を必要とします。

NASの概要図を以下に示します。

NASを表示できません

問30 グリッドコンピューティングの利用形態に関する記述のうち、適切なものはどれか。
多数のPCやサーバで集めたデータを、中央のサーバに送って集中処理する。
多数のPCやサーバに分散して格納されているデータのバックアップを、中央のサーバに取得する。
中央のサーバで、処理を並列処理可能な単位に分割し、それらを多数のPCやサーバで並列処理する。
中央のサーバに集中して格納されているデータを、多数のPCやサーバで共有する。
解答
解説 それぞれの選択肢の用語を以下にまとめます。

選択肢ア:ホストコンピュータの説明です。
選択肢イ:バックアップサーバの説明です。
選択肢ウ:グリッドコンピューティングの説明です。
選択肢エ:ファイルサーバの説明です。

問31 コンピュータによる伝票処理システムがある。このシステムは、伝票データをためる待ち行列をもち、M/M/1の待ち行列モデルが適用できるものとする。平均待ち時間がT秒以上となるのは、処理装置の利用率が少なくとも何%以上となったときか。ここで、伝票データをためる待ち行列の特徴は次のとおりである。

・伝票データは、ポアソン分布に従って発生する。
・伝票データのたまる数に制限はない。
・1件の伝票データの処理時間は、平均T秒の指数分布に従う。
33
50
67
80
解答
解説 まず、待ち行列モデル(M/M/1モデル)を以下に図示します。

MM1モデルを表示できません

平均待ち時間Wは窓口利用率ρ×T/(1−ρ)となります。
今WはT以上であるとされるので、T≦ρ×T/(1−ρ)より、1≦ρ/(1−ρ)となり、1−ρ=ρによりρ=1/2が導けます。

問32 1台のCPUの性能を1とするとき、そのCPUをn台用いたマルチプロセッサの性能Pが

画像(問32)を表示できません


で表されるとする。ここで、aはオーバヘッドを表す定数である。例えば、a=0.1、n=4とすると、P≒3なので、4台のCPUからなるマルチプロセッサの性能は約3倍になる。この式で表されるマルチプロセッサの性能には上限があり、nを幾ら大きくしてもある値以上には大きくならない。a=0.1の場合、その値は幾らか。
10
15
20
解答
解説 a=0.1を代入し、式を展開するとn/(1+0.1n−0.1)となります。定数部分はnが非常に大きくなると無視して近値しても影響がなくなります。つまり、P≒n/0.1nとみなすことができます。つまり、nを十分に大きくするとP≒10に収束するといえます。

問33 図のように、1台のサーバ、3台のクライアント及び2台のプリンタがLANで接続されている。このシステムはクライアントからの指示に基づいて、サーバにあるデータをプリンタに出力する。各装置の稼働率が表のとおりであるならば、このシステムの稼働率を表す計算式はどれか。ここで、クライアントは3台のうち1台でも稼動していれば正常とみなし、プリンタは2台のうちどちらかが稼動していれば正常とみなす。

画像(問33)を表示できません
ab32
a(1−b3)(1−c2
a(1−b)3(1−c)2
a(1−(1−b)3)(1−(1−c)2
解答
解説 まず、稼働率Aのシステムの直列と並列の稼働率の式を下にまとめます。

直列:A×A=A2
並列:1−(1−A)×(1−A)=1−(1−A)2

このシステムは、サーバとクライアントの集合とプリンタの集合の直列と見ることがきます。そして、クライアントの集合は3台の並列接続、プリンタの集合は2台の並列接続と見ることができます。よって、a×プリンタの集合稼働率×サーバの集合の稼働率=a×(1−(1−b)3)×(1−(1−c)2)となり、選択肢エが正解となります。

問34 システムに異常が起きた際の対応方法に“フェールセーフ”と“フェールソフト”がある。“フェールソフト”として適切な動作はどれか。
警告を出し、処理続行の判断をオペレータに任せる。
システムのサービスを順次、安全に停止する。
性能が低下しても、処理を継続する。
データや装置を損なうことなく運転を停止する。
解答
解説 重要な高信頼システム設計法についてまとめておきます。

フォールトトレラント:障害時に全体が停止するということなく、動作し続けるようなシステムを設計すること。
フォールトアボイダンス:システムの構成要素の信頼性を高め, 元から故障が極力発生しないように設計すること。
フォールトマスキング:障害が発生したときに、その部分を他の機器から隠蔽したり、自律回復するように設計すること。
フェールセーフ:障害が発生した場合、常に安全側に制御・停止すること。
フェールソフト:障害が発生した場合、故障した個所を切り離すなどして、稼動を続けること。
フェールオーバ:障害が発生した場合、ユーザに切り替えを意識させないように、別のシステムに引き継がせること。
フールプルーフ:ユーザが誤った操作をした場合、危険に晒されることがないように、事前に安全策を行うこと。

選択肢アは、フールプルーフの説明です。
選択肢イ、エはフェールセーフの説明です。

問35 コンピュータシステムのライフサイクルを故障の面から、偶発故障期、初期故障期、磨耗故障期の三つの期間に分割するとき、適切な記述はどれか。
偶発故障期に不良品が十分除去されていれば、磨耗故障期では、まれにしか故障が発生しない安定した時期が迎えられる。
時間とともに初期故障は増大するので、できるだけ初期故障期を短く済ませて、早く偶発故障期を迎えることが重要である。
システムの故障率が増大する初期故障期と減少する磨耗故障期の繰返しの後に、一定の故障が発生する安定的な偶発故障期を迎える。
システムを故障ないし長い時間動かすためには、偶発故障期に定期点検で部品を交換することによって、磨耗故障期を迎える時期を遅れさせることが重要である。
解答
解説 まずは、システムのライフサイクルを時間と故障率で表現したバスタブ曲線を以下に示します。

バスタブ曲線を表示できません

システムのライフサイクルは、導入時はトラブルや障害が多発しその後落ち着いていきます。その後安定した時期では偶発的な故障のみが発生し、壊れて使えなくなる頃に故障が増え始めます。

選択肢ア:偶発故障期に不良が除去されても、年数劣化が主な原因の磨耗故障期の故障減少にはあまり関係がありません。
選択肢イ:初期故障は、時間と共に減少していきます。
選択肢ウ:初期故障期と磨耗故障期は順に推移するもので、繰返し発生するわけではありません。

問36 再入可能(リエントラント)プログラムに関する記述のうち、適切なものはどれか。
再入可能プログラムは、局所変数をタスク単位に格納しなければならない。
再入可能プログラムは、逐次再使用可能プログラムから読み出すことはできない。
実行途中で待ち状態が発生するプログラムは、再入可能ではない。
逐次再使用可能なプログラムは、再入可能プログラムでもある。
解答
解説 プログラムの性質について以下にまとめます。

再入可能(リエントラント):同時、非同期的に呼び出されても互いに干渉せずに動作できる性質
再帰(リカーシブル):自分自身を呼び出すことができる性質
再使用可能(リユーザブル):終わったプログラムを再ロードすることなく、また、使うことができる性質
再配置可能(リロケータブル):メモリ上のどの番地に呼び出されても使用することができる性質

再入可能は、個々のプロセスが独自に値を保有するため、データ部分をタスク(プロセス)ごとに持つ必要あります。

問37 あるコンピュータ上で、異なる命令形式のコンピュータで実行できる目的プログラムを作成する言語プログラムはどれか。
エミュレータ
クロスコンパイラ
最適化コンパイラ
プログラムジェネレータ
解答
解説 コンパイラは、プログラミング言語を機械語(実行可能ファイル)に変換(コンパイル)するプログラムですが、そのコンピュータ上ではなく別の実行環境で動作するように変換するものをクロスコンパイラといいます。最適化コンパイラは、プログラム言語で冗長なものを実行速度や、メモリ容量などが少なくなるようにコンパイルするものです。

エミュレータは、ほかのコンピュータの機能をソフトウェアで仮想的に再現するソフトウェアをいいます。
ジェネレータは、擬似乱数発生関数のような特殊なサブルーチンをいいます。

問38 OSS(Open Source Software)を利用する上での留意点のうち、適切なものはどれか。
OSS開発者にはソフトウェアの品質を保証する責任があるので、OSSの不具合が原因で障害が発生したとき、利用者はOSS開発者に対して損害賠償を請求することができる。
OSSの利用分野を経理システムなどに限定することによって、OSS又はOSS関連のソフトウェアを、ソースコードは非公開にして提供することができる。
OSSを商用ソフトウェアに組み込んだ場合には、ライセンスによっては商用ソフトウェアのソースコードを公開することが求められる。
OSSを変更して新しいOSSを提供する場合は、ライセンス条件にかかわらず新しいOSSの開発者が自分の判断でソースコードを非公開にすることができる。
解答
解説 一般的にOSS(オープンソースソフトウェア)はOSI(Open Source Initiative)が定義したOSD(The Open Source Definition)の以下の10個の条件を満たしたものをさします。

1. 自由な再頒布ができること
2. ソースコードを入手できること
3. 派生物が存在でき、派生物に同じライセンスを適用できること
4. 差分情報の配布を認める場合には、同一性の保持を要求してもかまわない
5. 個人やグループを差別しないこと
6. 適用領域に基づいた差別をしないこと
7. 再配布において追加ライセンスを必要としないこと
8. 特定製品に依存しないこと
9. 同じ媒体で配布される他のソフトウェアを制限しないこと
10. 技術的な中立を保っていること

なお、著作権は放棄されておらず、著作権が放棄されたソフトをパブリックドメインソフトといいます。さらに無償である義務もありません。
さらに、条件5、6により制限的な配布はできませんし、条件2によりソースコードの非公開もできません。

問39 サーバでの実行を前提とした、オブジェクト指向開発によるコンポーネントソフトウェアの仕様はどれか。
EAI(Enterprise Application Integration)
EJB(Enterprise JavaBeans)
ERP(Enterprise Resource Planning)
UML(Unified Modeling Language)
解答
解説 4つの専門用語の意味を以下にまとめます。

EAI:企業でバラバラに使われているアプリケーションなどを統合して効率化を行うこと。
EJB:Beanと呼ばれるJavaの部品化されたプログラムのパーツ(モジュール)を組み合わせて、アプリケーションを開発すること
ERP:企業の業務資源を見直し、最適化・効率化を図る手法のこと
UML:統一モデリング言語と略され、オブジェクト指向のプログラム言語の仕様を記述するための言語

問40 ソフトウェア開発組織の活動状態のうち、プロセス成熟度モデルにおけるプロセス成熟度が最も高いものはどれか。
実績が定量的に把握されており、プロセスが組織的に管理されている。
スケジュールと予算は、統計的に容認できる範囲内に収まっている。
プロセスが明文化されて、組織内のすべての人がそれを利用している。
プロセスそれ自体を改善していくための仕組みが機能している。
解答
解説 組織がプロセスを適切に管理できるように、守るべき指針を体系化ものの代表的なものにCMMI(Capability Maturity Model Integration:能力成熟度モデル統合)というものがあります。以下のような段階に分かれています。

LV1:初期段階:何もルールがない
LV2:管理段階:システム開発の計画・コスト見積りの経験則ができている。
LV3:定義段階:システム開発の経験が組織として共有され、標準プロセスが確立している。
LV4:管理段階:プロセスからの定量的なフィードバックによって、継続的に改善されている。
LV5:最適化段階:プロセスの測定基準が定められ、組織的に分析が進められている。

選択肢アは、LV4の内容です。
選択肢イは、LV2の内容です。
選択肢ウは、LV3の内容です。
選択肢エは、LV5の内容です。