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




このページは

ソフ開

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

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

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



問21 システムバスの説明として、適切なものはどれか。
多くのパソコンで用いられており、モデムや周辺装置との間でデータを直列に転送するための規格である。
入出力装置と主記憶との間のデータ転送をCPUと独立に行う機構である。
バックプレーンや拡張スロットで使用されており、複数の装置が共有するディジタル信号伝送路である。
バスによるツリー構造の接続ができ、データ転送には高速、低速の二つのモードがある。
解答
解説 それぞれの用語を以下にまとめます。

選択肢アは、シリアルインタフェースの説明です。
選択肢イは、ダイレクトメモリアクセス(DMA)の説明です。
選択肢ウは、システムバスの説明です。
選択肢エは、USBの説明です。

問22 ディスプレイの解像度が800×600画素のとき、最大216色の色数で表示できるパソコンがある。解像度を1,600×1,200画素にしたとき、表示できる最大の色数は幾らか。ここで、主記憶の一部をビデオメモリとして使用することはないものとする。
4
8
12
16
解答
解説 まず、前半の文章からビデオメモリの容量を計算します。サイズ×色数を表わすビット数=800×600×16=48*2KB=96KBとなります。

つぎに、この容量から1,600×1,200で利用する際の色数を計算します。96KB/(1600*1200)=96*8Bit/192=4

よって、24まで表現できることになります。

計算については、自分が間違わないような計算をされると良いと思います。

問23 仮想記憶のページ置換えアルゴリズムの一つであるFIFOに関する記述のうち、適切なものはどれか。
LRUアルゴリズムよりも置き換えるページを決定する処理に時間がかかる。
LRUアルゴリズムよりもページフォールトの回数が少なくなる。
ある種のページ参照列に対して、割当て主記憶量を増やすと、かえってページフォールトの回数が増加する。
主記憶のページ数を小さくすると、ページフォールトの回数が減る。
解答
解説 まず、ページ(ブロック)の置換えのアルゴリズムについて以下にまとめます。

NRU(Not Recently Used):最近使われていないものから順に置き換える
LRU(Least Recently Used):最後に参照されてから最も時間が経過したものから順に置き換える
LFU(Least Frequently Used):最も使用頻度の低いものから順に置き換える
FIFO(First In First Out):最初に読んだものから順に置き換える
LIFO(Last in First Out)は、最後に入れたものを最初に使うというもので、再帰プログラムやスタックとかかわりが深いものです。ページの置換えには使われません。

次に、選択肢についてみていきます。
選択肢ア:LRUのほうが参照情報を調べるので、時間がかかるといえます。
選択肢イ:ページフォールトの回数が少なくなるという保証はありません。
選択肢ウ:Beladyの例外と呼ばれる現象です。
選択肢エ:主記憶のページ数を小さくすると、ページフォールトの回数は増えます。


問24 セマフォに関する記述のうち、適切なものはどれか。
V操作は、待ち状態のプロセスがあれば、そのプロセスを一つ実行可能状態へ移す。
あるセマフォに対してP操作を行うためには、それに先立ってV操作が実行されていなければならない。
同一のセマフォに対して、V操作を連続して実行することはできない。
一つのプログラム内では、同時に使用できるセマフォの数は一つだけである。
解答
解説 セマフォとは、手旗信号を語源とし、複数のタスクでひとつの資源を共有するために利用される共通領域上にとられたフラグのことをいいます。まず、P操作で資源を取得しV操作で資源を解放します。また、プログラム内で使用されるセマフォは1つとは限りません。

問25 OSのプロセス制御におけるプリエンプティブ方式に関する記述として、適切なものはどれか。
各プロセスがシステム資源を自主管理できるので、マルチプログラミングに向いている。
ノンプリエンプティブ方式に比べて、コンテキスト切換えのためのオーバヘッドが小さい。
ノンプリエンプティブ方式に比べて、特定のプロセスがプロセッサを独占することが多い。
プリエンプティブ方式が実現するには、OSがプロセスを強制的に切り替えて実行する機構が必要になる。
解答
解説 プリエンプティブ方式とは、現在主流となっているOSがCPUの割り当てを管理し、タイマーなどを利用しながらマルチタスクを実現する方式です。一方でアプリケーションが自発的に空き時間を解放することによってマルチタスクを実現する方式をノンプリエンプティブ方式といいます。

選択肢ア:プリエンプティブでは、システム資源はOSが管理します。
選択肢イ:OSが間に挟まって切り替えを行うので、ノンプリエンプティブに比べてオーバヘッドは大きいといえます。
選択肢ウ:ノンプリエンプティブでは、プロセスがプロセッサを独占する場合がありますが、プリエンプティブでは、OSが強制的に切り替えるので、独占はありません。

問26 仮想記憶方式において、仮想アドレスと物理アドレスとを対応付けるアドレス変換機能に付加情報を与えることで、実現が容易になるものはどれか。
オーバレイ
記憶保護
メモリインタリーブ
メモリコンパクション
解答
解説 それぞれの用語を以下にまとめます。

オーバレイ:大きなプログラムをメモリ上で交換しながら動かす技術
記憶保護:プログラムのミスや、エラーによってほかのメモリ領域を壊さないように保護する機能
メモリインタリーブ:主記憶を複数の独立したグループに分けて、アクセスすることによって主記憶へのアクセスの高速化を図る。
メモリコンパクション:メモリ上での割当てと解放を繰り返すことで使用されない領域が発生するため、これを解消する処理をいいます。

一般的に、ページテーブルや保護機能はメモリ管理ユニット (Memory Management Unit:MMU)が保有しています。

問27 OSによる時間監視処理の対象となるものはどれか。
CPU命令の実行完了待ち
キーボードの入力待ち
資源の解放待ち
ほかのタスクからの起動要求待ち
解答
解説 資源の解放待ちは、プログラムのミスによって、資源が占有されて解放されないことやデッドロックが生じている可能性があるので、OSが監視しています。ほかのCPU、キーボード、タスクの起動はほかのプロセスに影響があまりないので、監視されることは少ないです。

問28 2階層型のクライアントサーバ方式の業務システムを、ストアドプロシージャを使って書き直す場合、最も期待できる効果はどれか。
クライアントとサーバ間の通信回数が減少する。
サーバのCPU負荷が減少する。
サーバのディスクアクセスの回数が減少する。
データベースへの、より複雑なアクセスが可能となる。
解答
解説 ストアドプロシージャ機能とは、データベースサーバにおいて、あらかじめ使用頻度の高い命令群をサーバ側に用意しておくことで、わずかな引数のやり取りだけでSQL文などを実行する機能のことです。

クライアントとサーバ間の通信量・通信回数を減らすことができます。サーバ側では同じ処理をするので、負荷やディスクアクセスなどは変化しません。

問29 シングルプロセッサシステムの性能と比較したとき、密結合マルチプロセッサシステムのプロセッサ1台当たりの性能が低下する最大の要因はどれか。
1アクセス当たりの主記憶の参照量
主記憶のアクセス速度
主記憶のアクセスに対する排他制御
主記憶のアクセス頻度
解答
解説 まず、密結合マルチプロセッサとは、複数のCPUが単一のOSで主記憶やデータを共有する形態をいいます(各々のCPUが占有の主記憶、OS、データをもち、バスで接続されている形態を疎結合マルチプロセッサといいます。)

複数のCPUがOSや主記憶を共有するわけですから、1つのCPUが占有を行う排他制御はほかのCPUの処理を止めてしまう可能性があり、性能低下の要因となります。

問30 M/M/1の待ち行列モデルにおける、平均待ち時間(W)と窓口利用率(ρ)の関係で、ρが0.25から0.75になったとき、Wは何倍になるか。
1/3
4.5
解答
解説 M/M/1モデルの最初のMはサービスを受けるものの到着頻度はポアソン分布に従うという意味で、次のMはサービス時間は指数分布に従うという意味で、最後の1は窓口の個数を表しています。図にすると以下のようになります。

M/M/1を表示できません

平均待ち時間(W)はTs×ρ/(1−ρ)となります。Tsはサービス時間

ρ=0.25のときは、0.25/0.75Ts=1/3Ts
ρ=0.75のときは、0.75/0.25Ts=3Ts

よって、9倍になるといえます。

待ち行列は出題頻度が比較的高いので、一通り勉強しておいたほうがよいでしょう。
ρは、ピーではなくローです。

問31 1件のデータについて、読取りに40ミリ秒、CPU処理に30ミリ秒、書込みに50ミリ秒かかるプログラムがある。このプログラムで、n件の書込みに併せてn+1件目のCPU処理とn+2番目の読取りを並行して行うと、1分当たりの最大データ処理件数は幾つか。ここで、OSのオーバヘッドは考慮しないものとする。
500
666
750
1,200
解答
解説 この問題は、パイプラインに関する問題です。まず、パイプラインの概念を以下にまとめます。

パイプラインを表示できません

流れを少し書き出してみましょう
1.1件目の読み出し
2.1件目のCPU処理
3.1件目の書き込み、2件目の読み出し
4.2件目の書き込み、3件目のCPU処理、4件目の読み出し
5.3件目の書き込み、4件目のCPU処理、5件目の読み出し

つまり、40ミリ秒+30ミリ秒+50ミリ秒×nが1分(60000ミリ秒)以下になるようにnをできるだけ大きくしたいということです。
また、40、30は60000に比べて十分小さいので無視して計算しても大丈夫です。
60000/50=1,200となります。

問32 客観的な性能評価を行う目的で設定された指標又はベンチマークのうち、端末、ネットワーク、ソフトウェアなども含んだ、システム全体としての性能を評価するものはどれか。
Dhrystone/MIPS
Linpack
SPECint/SPECfp
TPC−C
解答
解説 それぞれの用語を以下にまとめます。

Dhrystone/MIPS:1秒間に何百万個の命令が処理できるかを表す
Linpack:線型方程式系をガウスの消去法で解く速度を測定し、システムの浮動小数点演算性能を評価する。
SPECint/SPECfp:前者は整数。後者は浮動小数点数を評価するためのベンチマーク
TPC−C:実際のシステムに近い性能指標をトランザクションの処理能力で評価する。A,B,C,DとありますがCが一般的です。

問33 コンピュータシステムにおいて、改善手法を適用した機能部分の全体に対する割合をR(0<R<1)、その部分の改善手法を適用する前に対する適用した後の性能比をAとする。このとき、全体の性能比を表す式はどれか。
画像(問33ans)を表示できません
解答
解説 少し問題がわかりにくいので整理しながら解答していきます。

まず、全体のうちのR%だけ部分的に改善を行いました。必然的に改善を行わなかった部分は(1−R)となります。
そして、改善をした部分は、A%改善されました。
もともとの性能を1とした場合に、改善後はどのような式で表せるでしょうか。という問題です。

それでは、計算に入ります。
まず、改善部分はR/A、改善されていない部分はそのまま(1−R)×1の両方が必要です。
(例:1.1倍になるということは、処理時間は1.1割るということです。)

次に、元々の性能比を1とするので、1/{R/A+(1−R)}

問34 キャパシティプランニングにおけるサービス管理の説明のうち、適切なものはどれか。
単位時間に処理可能な作業量を見積もって、ハードウェア構成や機器を選択する。
提供するサービスの水準を達成するのに必要な経費を管理する。
ハードウェア構成管理や機器の処理速度を決定するために、業務負荷の特性及び組成要素を明らかにする。
ユーザ部門が期待するパフォーマンスと提供されるサービスのコストを、責任分担を明らかにして管理する。
解答
解説 キャパシティとは容量のことで、適切な場所に適切な量の資源を配分・管理することをいいます。サービス管理はその中でサービスに関するキャパシティを扱う部分をいいます。

問35 三つの装置A〜Cで構成されるシステムがある。三つの装置がすべてが正常に稼動していないとシステムは機能しない。各装置のMTBFは表のとおりである。システム全体のMTBFは何時間か。

画像(問35)を表示できません
300
600
900
1100
解答
解説 まず、MTBFは平均故障間隔のことで、故障から故障までの間隔=稼働時間の平均を表しています。故障率は1/MTBFによってあらわすことができます。

故障率を求め、稼働率になおし、並列接続での稼働率から故障率にもどし、時間を求めてもよいのですが、ここでは原点に返り、MTBFの意味から答えを計算します。

MTBFは、連続して稼働できる時間ですので以下のように考えることもできます。
装置A:MTBFが600時間→600時間で1回故障する→1800時間で3回故障する
装置B:MTBFが900時間→900時間で1回故障する→1800時間で2回故障する。
装置C:MTBFが1800時間→1800時間で1回故障する。

よって、全体では1800時間で6回故障すると予想できます。
つまり、1800/6で全体のMTBFは300時間と計算できます。

問36 リアルタイムシステムにおいて、複数のタスクから並行して呼び出される共用ライブラリに要求される性質はどれか。
リエントラント
リカーシブ
リユーザブル
リロケータブル
解答
解説 プログラムの性質について以下にまとめます。

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

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

今回は共用ライブラリなので、複数のプログラムから利用されても正しく動作する必要があるので、リエントラントである必要があります。

問37 抽象データ型の特徴を説明したものはどれか。
同じデータ構造をもつデータを1列に並べて定義したものであり、各データへのアクセスはポインタを用いて行う。
異なった型のデータを組み合わせて定義したものであり、各データへのアクセスはデータの組に与えた名前で修飾して行う。
データとそれに対する操作を一体化して定義したものであり、データへのアクセスは定義された操作を用いて行う。
同一の型のデータを指定された個数だけ並べて定義したものであり、各データへのアクセスはインデックスを用いて行う。
解答
解説 それぞれの用語を以下にまとめます。

選択肢アは、ポインタによるアクセスの説明です。
選択肢イは、構造体の説明です。
選択肢ウは、抽象データ型の説明です。
選択肢エは、配列の説明です。

問38 ソフトウェア開発におけるリポジトリの説明として、適切なものはどれか。
開発を支援するために提供されるソフトウェア部品のデータベースのことである。
ソフトウェアの開発及び保守における設計情報やプログラム情報を一元的に管理するためのデータベースのことである。
ソフトウェアを開発するためのツールと、データモデルを格納するためのデータベースのことである。
リバースエンジニアリングを行うためのソースプログラム解析用ソフトウェアと、解析結果を格納するためのデータベースのことである。
解答
解説 リポジトリとは、貯蔵庫・倉庫などの意味があり、ファイルやフォルダの一元管理を行うことができる空間のことです。(バージョン管理ソフトウェアなどを使う場合が多いです)これにより、開発効率が向上するなどがあります。代表的なフリーソフトにMercurialやSubversionがあります。

問39 CMMに関する記述として、適切なものはどれか。
各種のソフトウェア設計・開発技法を使って開発作業を自動化し、ソフトウェア開発の生産性向上を図る。
ソフトウェアライフサイクルを、主プロセス、支援プロセス、組織プロセスの三つに分けて作業内容を定め、ソフトウェアプロセスの標準化を図る。
ソフトウェアを開発する組織のプロセス成熟度モデルを使って、プロセスの改善を図る。
特定の購入者と製作者の間で授受されるソフトウェア製品の品質保証を行う。
解答
解説 CMMは改良され、現在CMMIというモデルになっています。

CMMI(Capability Maturity Model Integration)は能力成熟度モデル統合と略され、組織がプロセスを適切に管理できるように、守るべき指針を体系化したもので、以下のような段階に分かれています。

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

問40 構造化チャートに関する記述として、最も適切なものはどれか。
GOTOを表現する方法をもたず、モジュール内の論理構造を表現するのに適した図式である。
システム分析・設計に用いられる図式であり、システムの状態の変化を記述するのに適している。
データの流れを表すのが容易な図式であるが、処理の手順を表しにくい。
モジュール構造図を示す図式目次と、各モジュールの機能を入力・処理・出力の形式で記述した図であり、構造化手法の特徴であるトップダウン設計に向いている。
解答
解説 プログラムの代表的なチャートに構造化チャートとフローチャートがあります。

構造化チャート:NSチャートやPADが代表的で、論理構造を階層的に表現するのに向いている。
フローチャート:アルゴリズムなどを可視化するために用いられるもので、手順の流れを表すのに向いている。