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




このページは

ソフ開

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

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

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



問21 80Gバイトの磁気ディスク6台を、予備ディスク(ホットスペアディスク)1台込みのRAID5構成にした場合、実効データ容量は何GBになるか。
240
320
400
480
解答
解説 まず、全体の容量は80Gバイト×6で480Gバイトですが、1台は予備なので、実質的には80×5=400Gバイト分がRAID5の対象となります。RAID5では、1台分の容量を分散させて保存するので、80×(5−1)=320Gバイト実効データといえます。

問22 DMA制御方式による入出力処理の記述として、最も適切なものはどれか。
CPUが入出力装置を直接制御することによって、データ転送が行われる。
CPUを介さずに入出力装置が主記憶装置との間のデータ転送が行われる。
チャネル接続によって、入出力装置と主記憶装置の間のデータ転送が行われる。
入出力制御専用のプロセッサによってデータ転送が制御される。
解答
解説 DMA(Direct Memory Access)とは、CPUを介さず、メモリ間、メモリとI/Oデバイス間で直接データを転送することで、DMAコントローラは、DMAを制御するものをいいます。CPUの指示を待つ時間等を高速化でき、アクセス速度の向上につながります。

問23 ページング方式の仮想記憶においてアドレスを変換する処理を順に述べたものはどれか。ここで、処理A〜Fは次のとおりである。

A:アクセス対象の仮想記憶アドレスに対応するページテーブルの先頭アドレスを得る。
B:アクセス対象の主記憶アドレスに対応するページテーブルの先頭アドレスを得る。
C:ページテーブルを検索し、該当ページの状態を調べる。
D:ページ内変位を加えて、求める仮想記憶アドレスを得る。
E:ページ内変位を加えて、求める主記憶アドレスを得る。
F:ページフォールトならばページイン処理を行う。
A,C,E,F
A,C,F,E
B,C,D,F
B,C,F,D
解答
解説 仮想記憶とは、主記憶が少ない時に、HDDなどをメモリの一部のようにみなして利用する技術です。

実記憶のマッピングの処理の流れは次のようになります。
1.仮想記憶を管理するページテーブルを検索する
2.該当するデータがあるかを調べる。
2−1.該当するデータがある場合は、対応する主記憶のアドレスを求める
2−2.該当するデータがない場合は、ページインを行う

先頭アドレスと、ページ内変位を順位行っていますが、これは、まず先頭アドレスをインデックスとして大まかに求め、その後差分を変位で計算するためです。

問24 主記憶へのアクセスを1命令当たり平均2回行い、ページフォールトが発生すると1回当たり40ミリ秒のオーバヘッドを伴うシステムがある。ページフォールトによる命令実行の遅れを1命令当たり平均0.4マイクロ秒以下にするために許容できるページフォールト発生率は最大幾らか。ここで、ほかのオーバヘッドは考慮しないものとする。
5×10-6
1×10-5
5×10-5
1×10-4
解答
解説 1命令でオーバヘッドは40ミリ×2=80ミリ秒かかります。ここで、ページフォールト発生率を小さくすることで、この時間を0.4マイクロ秒以下にしたいので、以下のような式になります。

80ミリ秒×ページフォールト率≦0.4マイクロ秒
80×10-3×ページフォールト率≦0.4×10-6
ページフォールト率≦5×10-5となります。

問25 仮想記憶管理におけるページ置換えアルゴリズムとして、LRU方式を採用する。参照かつ更新されるページ番号の順番が、1,2,3,4,1,2,5,1,2,3,6,5で、ページ枠が4のとき、ページフォールトに伴って発生するページアウトは何回か。ここで、初期状態では、いずれのページも読み込まれていないものとする。
解答
解説 LRU(Least Recently Used):最後に参照されてから最も時間が経過したものから順に置き換えるアルゴリズムです。

左側に行くほど古いデータとすると以下のようになります。
1.<1>
2.<1,2>
3.<1,2,3>
4.<1,2,3,4>
5.<2,3,4,1>
6.<3,4,1,2>
7.<4,1,2,5>(1回目:3がページアウト)
8.<4,2,5,1>
9.<4,5,1,2>
10.<5,1,2,3>(2回目:4がページアウト)
11.<1,2,3,6>(3回目:5がページアウト)
12.<2.3.6.5>(4回目:1がページアウト)

上記のように4回のページアウトが発生します。

問26 三つのタスクA〜Cの優先度と各タスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は、表のとおりである。A〜Cが同時に実行可能状態になって3ミリ秒経過から7ミリ秒間のスケジューリングの状況を表したものはどれか。ここで、I/Oは競合せず、OSのオーバヘッドは考慮しないものとする。また、表の( )内の数字は処理時間を表すものとし、解答群の中の“待ち”は、タスクが実行可能状態にあり、CPUの割当て待ちであることを意味する。

画像(問26)を表示できません
画像(問26ans)を表示できません
解答
解説 スケジュールをすべて図にするのが最も最適ですが、ここでは、タスクAに注目して解答を導きます。タスクAは最も優先度が高く、常にCPUを利用することができ、I/Oが競合することがないということを考えるとタスクAは以下のようになります。

時間0から2:CPU
時間2から4:I/O
時間4から6:CPU

よって、これに合致する選択肢ウが正解となります。

問27 三つの資源X〜Zを占有して処理を行う四つのプロセスA〜Dがある。各プロセスは処理の進行に伴い、表中の数値の順に資源を占有し、実行終了時に三つの資源を一括して解放する。プロセスAとデッドロックを起こす可能性のあるプロセスはどれか。

画像(問27)を表示できません
B,C,D
C,D
Cだけ
Dだけ
解答
解説 データ更新中にデータを参照しようとすると、更新が失敗したり正しいデータが参照できなかったりします。よって、更新処理が完了するまで参照を待たせます。これを占有ロックといいます。また、データを読み出す場合に、書き換えられないようにかけるロックを共有ロックといいます。そして、ロックを互いにかけたまま処理が進まなくなる場合もあり、これをデッドロックといいます。デッドロックの例を下に示します。

デッドロックを表示できません

それでは回答に移ります。
まず、プロセスAは、X→Y→Zの順に資源を確保します。
プロセスBは、Z→Y→Xの順に資源を確保するので、プロセスAがXを確保しプロセスBがYを確保するとデッドロックとなります(YとZでも発生する可能性があります)
プロセスCは、Z→X→Yの順に資源を確保するので、プロセスAがXを確保しプロセスBがZを確保すると、プロセスAがYを確保した時点でデッドロックとなります。
プロセスDは、プロセスAと同じ順番に資源を確保するので、デッドロックは発生しません。

プロセスが一括で資源を解放するところに注意してください。

問28 UNIXの特徴のうち、適切なものはどれか。
周辺装置をディレクトリ階層の中のファイルとして扱うことができる。
プロセス間の双方向通信を、リダイレクションという機能で提供している。
ユーザインタフェースは、シェルが提供するGUIであり、操作にはマウスが必須である。
利用できるファイルは、順編成の固定長レコード形式だけである。
解答
解説 それぞれの選択肢を見ていきます。

選択肢ア:UNIX系では、Windowsのようにドライブではなく、マウントという概念でパスを指定してアクセスします。周辺機器も同様に大抵は/devの下に配置されます。
選択肢イ:リダイレクションは、プログラム > 出力ファイルや プログラム < 入力ファイルのように前のプログラムの標準入力や標準出力をファイルなどに切り替える機能です。
選択肢ウ:シェル(コマンドを解釈し、プロセスやプログラムを動かすプログラム)は、基本的にCUIで行われます。
選択肢エ:UNIX系でも、さまざまな形式のファイルを利用できます。

問29 密結合マルチプロセッサの性能が、1台当たりのプロセッサの性能とプロセッサ数の積に等しくならない要因として、最も適切なものはどれか。
主記憶へのアクセスの競合
通信回線を介したプロセッサ間の通信
プロセッサのディスパッチ処理
割込み処理
解答
解説 まず、密結合マルチプロセッサと疎結合マルチプロセッサの概要図を以下にまとめます。

密結合マルチプロセッサと疎結合マルチプロセッサを表示できません

密結合マルチプロセッサでは、主記憶を共有するため、必要なデータが競合する可能性があり、他方が待たされることがあります。
これにより、プロセッサ数に完全には比例しない結果となります。

なお、プロセッサ数に比例するような性質をスケーラビリティといいます。

問30 コンピュータシステムの構成の名称とその構成図の組合せのうち、適切なものはどれか。
画像(問30ans)を表示できません
解答
解説 それぞれの選択肢のシステム構成を見ていきます。

選択肢ア:複数のCPUからメモリとOSを共有する形態を密結合マルチプロセッサといいます。
選択肢イ:複数のCPUがそれぞれメモリとOSを所有し、協調する形態を疎結合マルチプロセッサといいます。(正解)
選択肢ウ:OSを2つ搭載した形態をデュアルブート(3つ以上はマルチブート)といいます。起動時にどのOSを起動するかを選択します。
選択肢エ:独立したシステムが、計算結果を照合する形態をデュアル構成といいます。

なお、
クラスタ構成は、複数のシステムが連結され(クラスタリング)大きな1つの塊のようなシステムを構成する形態をいいます。
デュプレックスシステムは、2組のシステムを準備し普段は片方が動作していますが、故障時にもう一方へ切り替える形態をいいます。

問31 複数台のPCで1台のプリンタを共有するシステムがある。このプリンタに対する平均印刷要求が毎分1回のとき、このプリンタの平均印刷時間(印刷を要求してから終了するまでの時間)は何秒か。ここで、プリンタは、平均が15秒の指数分布に従う時間で印刷要求を処理するものとし、プリンタに対する印刷要求はポアソン分布に従うものとする。
15
18
20
30
解答
解説 まず、問題で用いられているM/M/1モデルについて以下に図示します。

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

次に、重要な値について整理します。
平均到着間隔(Ta)
平均サービス時間(Ts)
とするとき、

平均到着率(λ=1/Ta):単位時間当たりの処理要求数)
平均サービス率(μ=1/Ts):単位時間当たりのサービス可能数)

窓口利用率(ρ)=λ/μ(=λ×Ts)
行列の長さ(L)=ρ/(1−ρ)
サービスを受けるまでの平均待ち時間(Tw)=L×Ts
自分を受け終わる応答時間(Tq)=Tw+Ts

それでは、問題の応答時間を求めます。
平均到着間隔Ta=60。平均サービス時間=15なので、窓口利用率ρ=15/60=0.25となります。
そして、行列の長さL=0.25/(1−0.25)=1/3。平均待ち時間W=1/3×15=5となり、最終的な応答時間Tqは5+15=20秒となります。

問32 複数のクライアントから呼び出されるあるサーバのタスク処理時間は、タスクの多重度が2以下の場合、常に4秒である。このサーバのタスクに1秒間隔で4件の処理要求が到着した場合、すべての処理が終わるまでの時間はタスクの多重度が1のときと2のときとで、何秒の差があるか。
解答
解説 まず、多重度が1の場合は、4秒×4件=16秒となります。そして、多重度が2の場合は以下のようになります。

32kaiを表示できません

よって、9秒となり、16−9=7秒差があるといえます。

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

画像(問33)を表示できません
300
600
900
1,100
解答
解説 故障率は、1/MTBFによって、表すことができます。よって装置の故障率は以下のようになります。

装置3つが全て稼動している率は=1−(1−装置Aの故障率)×(1−装置Bの故障率)×(1−装置Cの故障率)となります。

しかし、ここでは、単位時間当たりに何回故障するかを考えることで回答を導くほうが簡単です。
装置A:1800時間で3回故障する。
装置B:1800時間で2回故障する。
装置C:1800時間で1回故障する。

よって、全体では、1800時間で6回故障します。つまり、平均故障間隔MTBFは1800/6=300となります。

問34 平均故障間隔がx時間、平均修理時間がy時間のシステムがある。使用条件が変わったので、平均故障間隔、平均修理時間がともに従来の1.5倍になった。新しい使用条件での稼働率はどうなるか。
x、yの値によって変化するが、従来の稼働率よりは大きい値になる。
従来の稼働率と同じ値である。
従来の稼働率の1.5倍になる。
従来の稼働率の2/3倍になる。
解答
解説 まず、稼働率は、MTBF/(MTBF+MTTR)によって計算されます。これが両方とも1.5倍されるので、1.5×MTBF/(1.5×MTBF+1.5×MTTR)両辺が1.5でキャンセルされるので、MTBF/(MTBF+MTTR)となり、もとの稼働率と同じになります。

問35 ダイナミックDNS(DNS UPDATE)の説明として、適切なものはどれか。
PCのIPアドレスが変わっても、そのPCには同じホスト名でアクセスできる。
PCのホスト名が変わっても、そのPCには同じIPアドレスでアクセスできる。
ネットワークに接続されたPCの起動時に自動的にIPアドレスを割り当てる。
ネットワークに接続されたPCの起動時に自動的にホスト名を割り当てる。
解答
解説 ダイナミックDNS(DDNS)は、DHCPによるIPアドレスが変更された場合でも、IPとホスト名の対応を動的に更新することで、対象のPCに同じホスト名でアクセスできるようにする仕組みです。

問36 メインプログラムを実行した後、メインプログラムの変数X、Yの値は幾つになるか。ここで、仮引数Xは値渡し(call by value)、仮引数Yは参照呼出し(call by reference)であるとする。

画像(問36)を表示できません
画像(問36ans)を表示できません
解答
解説 まず、値渡しの場合は、呼び出した関数側の変数(仮引数)へ値がコピーされて利用されるので、呼び出された側で値が書き換えられても呼び出した側の関数には反映されません。参照呼出しの場合は、アドレスが渡るので、呼び出された側で値が書き換えられた場合は、呼び出した側の値も書き換えられます。

add(2,2)がメインプログラムで実行され、X=2+2によりX=4となります。つぎに、Y=4+2によりY=6となります。Xはメイン関数に反映されず、Yだけがメイン関数に反映されるので、Xは2のまま、Yは書き換えられた6となります。

問37 度々発生する設計上の課題を解決するために繰り返し用いる、オブジェクトやクラス構造を記述したものはどれか。
イディオム
デザインパターン
フレームワーク
モデリング
解答
解説 それぞれの用語をいかにまとめます。

イディオム:プログラムソース中によく現れる慣用的なパターン
デザインパターン:設計上の課題や問題を解決するために、用いられる構造を記述したもの
フレームワーク:ソフトウェアを開発するでの土台となるもので、汎用的に利用されるライブラリ群などからなる
モデリング:システムを抽象化的な図などで表現することで、システムの理解を促進するために用いられる。代表的なものにUMLがある。

問38 JavaScriptの非同期通信の機能を使うことによって、画面遷移が起こらない動的なユーザインタフェースを実現する技術はどれか。
Ajax
JSF
RSS
SNS
解答
解説 それぞれの用語を以下にまとめます。

Ajax(Asynchronous javascript + XML):ブラウザとWebサーバとがXML形式のデータを用いて非同期の通信をし、動的に画面を再描画する仕組み
JSF(JavaServerFaces):javaベースのWebアプリケーションを容易に構築するためのフレームワーク
RSS(RDF site summary):ニュースやブログ、Webページなどの更新情報を配信するためのフォーマット
SNS(Social Network Service):mixiなどに代表される主に会員制や紹介制によって構築される社会的ネットワークサービス

問39 DFDの説明はどれか。
業務などの処理手順を流れ図記号を用いて視覚的に表現したもの
システムの状態がどのように推移していくかを視覚的に表現したもの
実体及び実体間の関連という概念を用いてデータの構造を視覚的に表現したもの
適用業務をデータの流れに注目して視覚的に表現したもの
解答
解説 DFD(Data Flow Diaglam)とは、データの源泉/データの流れ/プロセス/データストアなどを使って業務を視覚的にあらわした図です。

DFDを表示できません

問40 次のE−R図の解釈として、適切なものはどれか。ここで、* *は多対多の関連を表し、自己参照は除くものとする。

画像(問40)を表示できません
子組織の数より親組織の数が多い可能性がある。
組織は2段階の階層構造である。
組織は必ず子組織をもつ。
組織はネットワーク構造になっていない。
解答
解説 *の多とは、0以上の複数という意味です。

選択肢ア:親1に対して、子が複数あることはありえます。(正解)
選択肢イ:再帰的な構造なので、2段階以上の階層構造もありえます。また、1段階構造の場合もありえます。
選択肢ウ:0以上なので、0の場合には子組織はもちません。
選択肢エ:親と子が多対多の関係なので、ネットワーク構造といえます。