工学じじいの縁側日記

工学じじいの縁側日記

引退間際の工学じじいがきままに、プログラミングやデバイス、工学について呟きます。

【基本情報処理技術者試験】最新問題のテクノロジ系をまったり解く 問16~問20【令和元年度秋試験】

R01基本情報技術者試験 秋期試験に挑戦

f:id:gomta777:20191101011409p:plain

キタミ式イラストIT塾 基本情報技術者 平成31/01年 (情報処理技術者試験)


令和元年度 基本情報技術者試験 午前問題 問16~問20

令和元年度 基本情報技術者試験 午前問題 問16

2台の処理装置からなるシステムがある。少なくともいずれか一方が正常に動作すればよいときの稼働率と、2台とも正常に動作しなければならない時の稼働率の差はいくらか。ここで、処理装置の稼働率はいずれも0.9とし、処理装置以外の要因は考慮しないものとする。

0.09 0.10 0.18 0.19
解説

システムの稼働率の計算です。この問題は、3年に1回くらいは見ますね。
こんな感じで基本情報技術者試験の問題の4割は過去問ゲーなので、過去問チェックは大事です!
2台の装置があって、2つのケースが設定されています。

①システムとして、一方が動作していれば稼働するもの
②システムとして、両方が正常に動作しなければならないもの

これは、言い換えると、

①並列に装置を並べたシステム
②直列に装置を並べたシステム

となります。それぞれの稼働率の計算は以下のようになります。

図:システム稼働率の計算

計算していきます。それぞれの稼働率は0.9なので、

①(並列の稼働率)= 1 - (1 - 0.9)×(1 - 0.9) = 0.99
②(直列の稼働率)= 0.9 × 0.9 = 0.81

①-②=0.18 となり、「ウ」が正解

ところで、直列の時の稼働率は、両方の装置が同時に動いている確率を出せばいいので、二つの装置の稼働率同士をかければいいのは、直感的でわかりやすいと思います。それでは、並列の場合の稼働率はどうやって導き出したらいいでしょうか?参考書やその辺のページ見ても、結構公式だけ書いちゃってるものが多いです。

そこで・・・ちょいと考えてみます。
2台を並列に並べた時の、稼働状態をすべて考えてみます。

稼働=〇、故障=×で表します。

装置S1 装置S2 確率
0.9×0.9 = 0.81
×
0.9 × (1-0.9) = 0.09
×
0.9 × (1-0.9) = 0.09
×
×
(1 - 0.9) × (1 - 0.9) = 0.01

どちらかが正常稼働していれば良い=①+②+③ = 1 - ④ = 0.99
となります。並べてみると簡単ですね。


令和元年度 基本情報技術者試験 午前問題 問17

図の送信タスクから受信託すくにT秒間連続してデータを送信する。1秒当たりの送信量をS、1秒当たりの受信料をRとしたとき、バッファがオーバーフローしないバッファサイズLを表す関係式として適切なものはどれか。ここで、受信タスクよりも送信タスクの方が転送速度は速く、次の転送開始までの時間間隔は十分にあるものとする。


(送信タスク)-(S)ー>(バッファサイズ:L)-(R)->(受信タスク)


 L < (R-S) \times T
 L < (S-R) \times T
 L \geqq (R-S) \times T
 L \geqq (S-R) \times T
解説

バッファと送受信データ量の関係に関する問題です。
単純に考えちゃえば解けます。
バッファLには1秒当たり、Sのデータが入ってきて、
バッファLから1秒当たり、Rのデータが受信タスクに吸い取られます。
つまり、T秒後には (S-R)×T のデータがバッファに残っているということになります。
それがL以下の時はバッファはあふれないので、「エ」の  L \geqq (S-R) \times T が正解!

令和元年度 基本情報技術者試験 午前問題 問18

優先度に基づくプリエンプティブなスケジューリングを行うリアルタイムOSで、2つのタスクA、Bをスケジューリングする。Aの方がBよりも優先度が高い場合にリアルタイムOSが行う動作のうち、適切なものはどれか?

Aの実行中にBに起動がかかると、Aを実行可能状態にしてBを実行する。
Aの実行中にBに起動がかかると、Aを待ち状態にしてBを実行する。
Bの実行中にAに起動がかかると、Bを実行可能状態にしてAを実行する。
Bの実行中にAに起動がかかると、Bを待ち状態にしてAを実行する。
解説

リアルタイムOSマルチタスクのスケジューリング方式の問題です。
マルチタスクの方式には、
①ノンプリエンプティブ方式
 →プログラム側が短時間で区切られていた時間ごとにOSに制御を返し、別の処理に切り替える方式のこと。切り替えタイミングはプログラムごとに決められる。
②プリエンプティブ方式
 →ユーザーやOS側が決めた優先度順に、プログラムを実行待機状態にしておき、実行するプログラムを切り替える方式。待たされるほうは、状態を保存しておきすぐに再開可能な状態で待機する。

選択肢中の待ち状態というのが問題になるんでしょうね。「Bの起動中に優先度の高いAが起動すると」までは、おそらくいいのですが、Bを待ち状態にするのか、Bを実行可能状態にするのかが正解、不正解の分かれ目になると思います。
この場合に正しいのは、Bは、待っている間でも、以前の状態を保存してすぐに実行可能な状態で待っているので、「ウ」が正解ということらしいです。(私は間違えました(笑))

タスクの状態には、以下の3つがあります。

待ち状態 入力待ちなどで、タスクが止まっている状態
実行可能状態 CPUさえ空けばすぐに実行可能な状態
実行状態 タスクが実行されている状態

基本的に、1つのタスクしか実効状態にはできないので、OSの機能でこれらをうまく制御して様々なタスクが、あたかも同時に動いているように見せるのがスケジューラーということになります。

関連する用語として、

  • プリエンプション
  • ディスパッチ
  • コンテキスト切り替え

なども調べおくといいかもしれません。(今回は省きますw)

令和元年度 基本情報技術者試験 午前問題 問19

バックアップ方式の説明のうち、増分バックアップはどれか。ここで最初のバックアップでは、すべてのファイルのバックアップを取得し、OSが管理しているファイル更新を示す情報はリセットされるものとする。

最初のバックアップの後、ファイル更新を示す情報があるファイルだけをバックアップし、ファイル更新を示す情報は更新しないでそのまま残しておく。
最初のバックアップの後、ファイル更新を示す情報にかかわらず、すべてのファイルをバックアップし、ファイル更新を示す情報はリセットする。
直前に行ったバックアップの後、ファイル更新を示す情報があるファイルだけをバックアップし、ファイル更新を示す情報はリセットする。
直前に行ったバックアップの後、ファイル更新を示す情報にかかかわらず、すべてのファイルをバックアップし、ファイル更新を示す情報は変更しないでそのまま残しておく。
解説

ファイルシステムとバックアップに関する問題です。
増分バックアップについての問題で、まず用語を知らないとですね。
増分バックアップでは、前回のバックアップ時から、更新や追加のあった部分のみをバックアップしていきます。毎回毎回、前回と変わった部分のみがバックアップされます。
なので、

直前に行ったバックアップの後、ファイル更新を示す情報があるファイルだけをバックアップし、ファイル更新を示す情報はリセットする。

とありますので、「ウ」が正解!

ところで、似たようなバックアップ法に差分バックアップがあります。
用語が似ていますが、差分バックアップでは、初回フルバックアップまでは同じですが、次のバックアップ時から毎回、初回バックアップから更新・追加された部分をバックアップします。

バックアップ法 初回 2回目 3回目 ・・・
差分バックアップ フルバックアップ 初回からの差分 初回からの差分 初回からの差分 ・・・
増分バックアップ フルバックアップ 初回からの差分 1回目からの差分 2回目からの差分 ・・・

ここで、差分=更新・追加箇所のこととする。

差分バックアップでは、初回バックアップからある程度の期間がたち、初回からの差分が大きくなるとバックアップの時間と容量が増えてしまいます。また、毎回のバックアップを残しておくと、差分が大きくなればなるほど毎回大きな差分ファイルを保存することになります。(世代を残しておくと容量をくう)
復元時には、必ず「初回バックアップ+ある世代の差分」の2ファイルから復元なのでシンプルです。
一方、増分バックアップでは、前回との差分のみ残しておくので、更新・追加部分がなければないほどファイル容量は小さく、バックアップ時間も短くなります。世代を残すときでも容量の増加は少なくて済みます。
復元時には、その世代から初回バックアップまでの間のすべての差分ファイルが必要になり、復元作業が複雑になりがちです。また、途中の世代の差分に障害が生じたりすると目も当てられない状況に。。。
ちなみに、私は、lsyncdでバックアップサーバーを立てておいて、さらに差分派です。

令和元年度 基本情報技術者試験 午前問題 問20

DRAMの特徴はどれか。

書き込み及び消去を一括またはブロック単位で行う
データを保存するためのリフレッシュ操作またはアクセス操作が不要である
電源が遮断された状態でも、記憶した情報を保持することができる。
メモリセル構造が単純なので高集積化することができ、ビット単価を安くできる。
解説

DRAMの特徴に関する問題です。この問題も3年に1回くらい見る気がします。
RAMとROMの違いは、大丈夫ですよね?
RAM:Random Access Memory の略で、読み出し専用のデータ保存専門のメモリです。
RAM:Random Access Memory の略で、読み書きができる作業用のメモリです。
そして、次にそのRAMの種類のはなしになります。

DRAM Dynamic RAM 揮発性*1 記憶を保持し続けるためにリフレッシュが必要 比較的安価
SRAM Static RAM 揮発性 アクセスが高速でリフレッシュ不要 比較的高価

SRAMキャッシュメモリなどに用いられて比較的高価で容量が稼げません。
ということで、DRAMのことを書いてあるのは「エ」ということになります。

その他にフラッシュROMなんてのもあります。フラッシュメモリとも呼ばれ、不揮発性で書き換え可能なROMです。(もうROMの定義がw)
書き換え可能ですが、開発由来がROMの方から来ているのでROMに分類されているみたいです。
NAND型とNOR型の2種類があります。USBメモリやSDメモリに用いられている技術です。

ちなみに、スマホなどのスペック表記でRAM/ROMというのを見かけることがあります。
基本情報を受けるぐらいの人にはわかると思いますが、あれっておかしい感じがしますよね。

RAM=CPUに対するメインメモリ
ROM=システムに対する内蔵されている外部メモリ

の意味で使われているようです。
今度気を付けてみてみてください!

次回予告

まったりと、ちょっとずつ解いていますが、なんだかんだ問20まで来ましたね。
過去問が結構登場している感じがしますが、どうでしょうか?
次も頑張って、解いていきましょう!


良かったら、押してください!↓↓↓
にほんブログ村 科学ブログ コンピュータサイエンスへ
にほんブログ村

*1:電力供給がないとデータ消える