受験体験記 〜基本情報技術者試験編①〜

暑い時期は過ぎ去り、もうすぐ秋です。
食欲の秋、読書の秋・・・情報技術者試験の秋です。

というわけで、今更な気もしますがSE業界6年目にして基本情報技術者試験を受験することになりましたので、
今回はその勉強内容の備忘を兼ねて体験記を綴ります。

合格率は30%弱ほど。IT業界の適合判定試験

現時点(2018/10)時点での前回試験(2018春)の合格率は28.9%。
過去の合格率を見てもだいたい20%〜30%あたりを行ったり来たりしてます。
3〜5人中1人は合格するくらいですね。
そこまで難しい試験ではないみたいです(まだ受けてないけど)

それでも二進数や論理回路オートマトンからソートアルゴリズム
経営・マネジメントまで、それなりに幅広い内容となっています。
ただ、「基本情報」というだけあって問題のレベルはそこまで高くはなさそうです(まだ受けてないけど)

というわけで早速過去問を解きながら、穴を埋めていきたいと思います。

平成30年春 午前問題 65%

はい、偉そうなこと言っててこの正答率ですよ。
いかに知ったかぶりしていたかが思い知らされますね。
傾向的にはストラテジ系が正答率50%と圧倒的にボロボロでした。

今回はテクノロジ系を中心に間違った箇所を振り返りたいと思います。

プロセッサの仕組み

プロセッサの仕組みについて。
プロセッサには処理を実行するCPUと値を保持するレジスタと演算を実行する演算機があります。

CPUが処理を実行する流れとしては

  1. 命令の格納場所(アドレス)をレジスタ(プログラムカウンタ)から読み取る
  2. アドレスから命令を取得してレジスタ(命令レジスタ)に格納する。
  3. 命令を解析(フェッチ)する。
  4. 命令を実行する。

代表的な命令の例としては以下が挙げられる

  • メモリからのデータの取得(ロード)
  • メモリへのデータの退避(ストア)
  • 演算の実行
  • 比較の実行

代表的なレジスタの例として以下のものが挙げられる。

  • プログラムカウンタ : 命令のアドレスを保持する
  • 命令レジスタ    : 取得した命令を保持する
  • アドレスレジスタ  : アドレスを保持する。アドレスを計算するための計算回路が付随することもある。
  • データレジスタ   : 演算機へ渡すデータを保持する。
  • アキュムレーター  : 演算結果を保持する
  • ベースレジスタ   : 配列のベースとなるアドレスを保持する
  • インデックスレジスタ: 配列のインデックスを保持するレジスタ。ベースレジスタからオフセットする形で使用される。
  • 汎用レジスタ    : アドレスや演算機に渡すデータなど様々な値を保持する
  • ゼロレジスタ    : 渡された値は反映されない。取り出される値は全てゼロとなる。

割り込み処理

割り込み処理とは、プロセッサがメインルーチンにしたがって処理を実行中に、
外部もしくは内部の制御デバイスから処理要求を受けて、割り込み用のサブルーチンが実行される仕組みのこと。

外部割り込み処理には以下のような例が挙げられる

  • 機械チェック割り込み : ハードウェアに異常が発生した場合
  • タイマー割り込み   : 予め設定された間隔で起動する割り込み処理
  • 入出力割り込み    : 要求していた入出力デバイスの処理が完了した場合に発生する
  • コンソール割り込み  : コンソールから何かしらのスイッチが押された場合に発生する

内部割り込みには以下のような例が挙げられる

  • プログラム割り込み  : オーバーフローやゼロ除算など、プログラムでの例外時に発生する
  • SVC割り込み     : プログラムが入出力などOSの機能を利用するハイパーバイザコール使用時に発生する


ひとまず今回はここまで。