文系学生による基本情報技術者試験対策！

# 自己紹介
初めまして。
現在関西の私立大学（文系）の4年生で、来春より某独立系SIerにシステムエンジニアとして入社予定の者です。2021年秋試験に受かるべく、毎日ちょこちょこ勉強をしております。（8月はめちゃくちゃサボってしまいましたが、、、）

**追記(2022/5/11)**
・2021/10~2021/11の試験日程で午前・午後共に76点で合格することができました！
# 現在の知識
○ **資格**
・ITパスポート
・自動車運転免許
○ **プログラミング経験**
・Ruby(rails)でのアプリ制作
・Python(PaizaのCランク問題解けるか解けないかくらい・午後問題もPython選択予定)
・C(学校の授業で簡単な文法を学んだ程度。あまり覚えていない笑)
・フロントの知識本当にちょっと(HTML,CSS,JS)
＊実務経験などは一切ありません！
# 本記事の目的
過去問道場等で問題を解いていて
「なんやこれややこしいな！」っていうような問題や
「こんなん参考書にも載ってへんやん！」っていうような問題(午前のみ)をpick upし、次解く時に間違えないように記録しようと思います。
また更新していく予定です。

# 問題
解いてみて「間違えた・分からなかった・理解が曖昧」なものをpick upしていきます。

>問題・画像等は基本情報技術者試験過去問道場より引用。[基本情報技術者試験ドットコム](https://www.fe-siken.com/)

## 1.テクノロジ系
### ○**用語**
〜書き込み方式〜
・**<font color="Red">ライトスルー方式</font>** : キャッシュメモリ・主記憶装置への書き込みを同時に行う。
・**<font color="Red">ライトバック方式</font>** : キャッシュメモリにのみ書き込む。

〜通信プロトコル〜
・<font color = "Red">**UDP**</font> : TCP/IPのネットワークの通信処理で使われる電装生業プロトコルの一つで、通信効率・リアルタイム性を重視。
・<font color = "Red">**NTP**</font> : インターネットで標準的に利用されるノードの時刻の同期を取るプロトコル。UDPのポート123番を使用。
・<font color = "Red">**Telnet**</font> : 他のコンピュータにログインして、遠隔操作を行う機能を提供するプロトコル。
・<font color = "Red">**SMTP**</font> : メール**送信**用プロトコル！ポート番号25！
・<font color = "Red">**POP3**</font> : メール**受信**用プロトコル！

〜DBの復旧方法〜
・<font color = "Red">**ロールバック**</font> : トランザクション処理（ex.決済処理）中になんらかの障害が発生した場合、そこまでの処理を全て取り消す必要がある。その時、DB更新前の状態を更新<font color = "Red">前</font>ジャーナルから取得。
・<font color = "Red">**ロールフォワード**</font> : 突然DBが故障(ハードウェア的障害など)した場合、バックアップファイルからデータを復元する必要がある。バックアップ以降の更新<font color = "Red">後</font>ジャーナルから取得して障害発生直前の状態までにする。

〜プログラム言語〜
・<font color = "Red">**アプレット(applet)**</font> : あるアプリケーションを土台とし、その上で読み込まれ実行される小さなプログラム。(ex.Javaアプレット)
・<font color = "Red">**サーブレット(Servlet)**</font> : サーバ上でデータ処理やWebページの動的生成などを行うプログラムです。Javaプログラムである。
### ○**平成29年春期　問19**
`仮想記憶方式のコンピュータにおいて，実記憶に割り当てられるページ数は3とし，追い出すページを選ぶアルゴリズムは，FIFOとLRUの二つ考える。あるタスクのページアクセス順序が
　　1, 3, 2, 1, 4, 5, 2, 3, 4, 5
のとき，ページを置き換える回数の組合せとして適切なものはどれか。`
![19.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658045/bc5cd0c2-cb19-fdd1-f59e-9c95564e47ce.gif)

＊**解き方**＊
用語説明は軽く。
問題文にある「実記憶に割り当てられるページ数は3とし」という部分を私は、「3を取り出すには処理を何回すればいいのか」というふうに解釈してしまい間違えてしまいました。よって、正しい考え方は
①**FIFO（最初に挿入した値を最初に出す）**
1
13
132
132
432 ← 1を取り出す
452 ← 3を取り出す
452
453 ← 2を取り出す
453
453
の計3回。
②**RLU（最も長く参照していない値を取り出す)**
1
13
132
132
142 ← 3を取り出す
145 ← 2を取り出す
245 ← 1を取り出す
235 ← 4を取り出す
234 ← 5を取り出す
534 ← 2を取り出す
の計6回。
よって答えは<font color="Red">イ</font>。

### ○ **平成29年秋期　問31**
`符号化速度が192kビット／秒の音声データ2.4Mバイトを，通信速度が128kビット／秒のネットワークを用いてダウンロードしながら途切れることなく再生するためには，再生開始前のデータのバッファリング時間として最低何秒間が必要か。`

**ア** 250 **イ** 50 **ウ** 150 **エ** 100

＊**解き方**＊
この手の計算問題がかなり苦手です。。。手順としては
①<font color = "Red">再生時間を求める</font>
②<font color = "Red">ダウンロード時間を求める</font>
③<font color = "Red">この2つの時間の差分を求める</font>
です。
①**再生時間＝音声データサイズ÷符号化速度**であるので、
= 2.4Mバイト÷192kビット
= 2.4Mバイト÷24kバイト (1バイト=8ビット)
= 2400kバイト÷24kバイト(1Mバイト = 1000kバイト)
= 100[秒]
②**ダウンロード時間=音声データサイズ÷通信速度**であるので
= 2.4Mバイト÷128kビット
= 2400kバイト÷16kバイト
= 150[秒]
③よってこの差分である50秒分のデータをあらかじめ蓄えた状態で再生を開始すると、最後まで途切れずちょうど再生できる。
よって答えは<font color = "Red">イ</font>。

### ○ **令和元年秋期　問30**
`10Mビット／秒の回線で接続された端末間で，平均1Mバイトのファイルを，10秒ごとに転送するときの回線利用率は何%か。ここで，ファイル転送時には，転送量の20%が制御情報として付加されるものとし，1Mビット＝106ビットとする。`

**ア** 1.2 **イ** 9.6 **ウ** 8.0 **エ** 6.4

＊**解き方**＊
回線利用率は「<font color = "Red">①転送量÷②回線速度</font>」で求められる。
①<font color = "Red">転送量</font>
転送されるファイルサイズは平均1Mバイトですが、そこに転送量の20%が制御情報として付加されるので、実際に転送するデータ量は
1Mバイト×1.2 = 1.2Mバイト
それが10秒ごとに行われるので、1秒当たりの平均転送量は、
1.2Mバイト÷10 = **0.12Mバイト**

②<font color = "Red">回線速度</font>
「10Mビット／秒の回線で接続された端末間」より、単位をバイトに揃えて、
10Mビット÷8 = **1.25Mバイト**

よって回線利用率は0.12÷1.25 = 0.096 = 9.6%となる。答えは<font color = "Red">イ</font>。

### ○ **令和元年秋期　問44**
`電子メールをドメインAの送信者がドメインBの宛先に送信するとき，送信者をドメインAのメールサーバで認証するためのものはどれか。`

**ア** APOP
**イ** SMTP-AUTH
**ウ** S/MINE
**エ** POP3S

＊**解き方**＊
どれも聞いた事のない用語ばかり。以下に簡単に用語の概要を記載します。
・<font color = "Red">**APOP**</font> : 従来のPOP3に、メールを受信する際のパスワードのデータを暗号化してサーバーに送信する機能を追加した仕様。
・<font color = "Red">**SMTP-AUTH**</font> : 従来のSMTPに、ユーザー認証機能を追加した仕様。
・<font color = "Red">**S/MINE**</font> : 公開鍵暗号技術を使用して認証、改ざん検出、暗号化などの機能を電子メールソフトに提供するもの
・<font color = "Red">**POP3S**</font> : TLSのセキュアな通信路上でメールソフトからメールサーバ間のPOP通信を行うプロトコル

よって答えは<font color = "Red">**イ**</font>。

### ○ **平成29年春期　問22**
`図に示す，1桁の2進数xとyを加算して，z(和の1桁目)及びc(桁上げ)を出力する半加算器において，AとBの素子の組合せとして，適切なものはどれか。`

![22.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658045/2b892fd5-e3ce-44a5-393a-64cda9c3c336.gif)

![22a.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658045/3a01c3b9-b8ad-addf-755a-4b7486e5a778.gif)

＊**解き方**＊
論理演算を用いて加算を実現する加算器の問題。今回は半加算器。
まずそもそも半加算器というのは、<font color = "Red">**1桁の2進数を2つ加算するもの**</font> です。
この加算パターンは、
・0 + 0 = 00
・0 + 1 = 01
・1 + 0 = 01
・1 + 1 = 10
の4パターンがあります。この計算結果に今回の問題の値を当てはめて真理値表を作ってみます。
![スクリーンショット 2021-09-07 16.12.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658045/76d9306b-d005-7d8b-dfbb-6f5199763fbe.png)
この真理値表をよく見るとある事に気づくはずです。。あっ！

**cはxとyのAND演算(論理積)になってて、
zはxとyのXOR演算(排他的論理和)になってる！**

よって答えは<font color = "Red">**ア**</font>となります。

### ○ **平成30年秋期　問41**
`ボットネットにおけるC&Cサーバの役割として，適切なものはどれか。`

**ア** 
外部からインターネットを経由して社内ネットワークにアクセスする際に，CHAPなどのプロトコルを用いることによって，利用者認証時のパスワードの盗聴を防止する。
**イ** 
外部からインターネットを経由して社内ネットワークにアクセスする際に，チャレンジレスポンス方式を採用したワンタイムパスワードを用いることによって，利用者認証時のパスワードの盗聴を防止する。
**ウ** 
侵入して乗っ取ったコンピュータに対して，他のコンピュータへの攻撃などの不正な操作をするよう，外部から命令を出したり応答を受け取ったりする。
**エ** 
Webサイトのコンテンツをキャッシュし，本来のサーバに代わってコンテンツを利用者に配信することによって，ネットワークやサーバの負荷を軽減する。

＊**解き方**＊
まずこの問題を見て「ボットネット？」「C&Cサーバ？」ってなりました。
この手の問題は若干捨て門で運ゲーであると認識しているのですが、もし次この知識が必要になった時に思い出せるようにしっかり復習します。
まず用語の説明から。

・<font color = "Red">**ボットネット**</font> : 他人の端末を第三者の指示通りに動くロボットのようにしてしまう悪意のあるプログラムを集めたもの。
・<font color = "Red">**C&Cサーバ**</font> : 上記 (ボットネット)の指令(Command)・制御(Control)をする中心的なサーバ。

用語を知ってたら超簡単な問題でしたね。よって答えは<font color = "Red">**ウ**</font>。

### ○ **平成25年春期 午前問9**
`50MIPSのプロセッサの平均命令実行時間は幾らか。`

**ア** 50ナノ秒
**イ** 5マイクロ秒
**ウ** 2マイクロ秒
**エ** 20ナノ秒

＊**解き方**＊
MIPSは名前にMilionとあるように、1秒間の命令実行回数を100万単位で表すものです。
50MIPSの場合は、1秒間に5000万回命令実行を行うので
1 ÷ 50000000 = 0.00000002
ここで、選択肢は「2マイクロ秒」か「20ナノ秒」に絞られます。
時間の単位は「<font color = "Red">秒→ミリ→マイクロ→ナノ</font>」で小さくなります。
つまり、
**1秒 = 1000ミリ秒(10の３乗) = 1000000マイクロ秒(10の6乗) = 1000000000ナノ秒(10の9乗)**
であり,<font color = "Red">**0が3つずつ増えています**</font>ます。
よって0.00000002秒は8桁分に相当するので<font color = "Red">**20ナノ秒**</font>となり、答えは<font color = "Red">**エ**</font>となります。

## 2.マネジメント系
### ○**用語**
〜要件定義〜
・<font color = "Red">**機能要件**</font> : システムがどんな機能を持つか、どんな動作をするか。
・<font color = "Red">**非機能要件**</font> : 上記以外の要件。システムの性能など**10種類**定義。
　→ [機能性・信頼性・使用性・効率性・保守性・移行性・障害抑制性・運用性・効果性・技術要件]
    問題文に「〇〇性〜」とあったら非機能要件！！

〜PJマネジメント〜
・<font color = "Red">**デルフォイ法**</font> : 複数の専門家から得られた匿名の見解を要約して，再配布することを何度か繰り返して意見収束する方法
### ○ **平成29年秋期　問57**
`落雷によって発生する過電圧の被害から情報システムを守るための手段として，有効なものはどれか。`

**ア** 自家発電装置を設置する
**イ** 通信線を、経路の異なる２系統とする
**ウ** サージ保護デバイス(SPD)を介して通信ケーブルとコンピュータを接続する
**エ** 電源設備の制御回路をデジタル化する

＊**解き方**＊
僕は「片方が過電圧で壊れてもいいように２系統にするのが正しいやろ。よってイ！」と思いましたが、違いました。
実際、落雷時には２系統両方に大きな電流が流れるため、効果がないからです。
よって正しい手段としては、過電圧の被害から機器を防御する、SPD(Surge Protective Device，サージ防護機器)やOAタップなどに装備されているサージプロテクト機能を用いること。よって答えは<font color = "Red">ウ</font>。
＊<font color = "Red">サージ</font> : 施設の近くで落雷があると瞬間的に発生する高い電圧 


## 3.ストラテジ系
### ○**用語**
〜エンジニアリングシステム〜
・<font color = "Red">**CAM(Computer Aided Manufacturing)**</font> : 工作機械を使って製品を作る際に、図面の情報を工作機械用の言語に変換して、工作機械の動き方を指令するためのツール
・<font color = "Red">**CAD(Computer Aided Design)**</font> : 製品の設計図を描くための製図ツール
　→　2つの違いは英語からなんとなくわかりそう！

〜標準化関連〜
・<font color = "Red">**IETF(Internet Engineering Task Force)**</font> : インターネットで使用される技術の標準化を推進する任意団体。TCP/IP・HTTP・SMTPなど、標準化が行われたものは**RFC**として誰もが自由に閲覧できる。
### ○ **平成31年春期　問74**
`ディジタルサイネージの説明として，適切なものはどれか。`

**ア** 情報の正当性を保証するために使用される電子的な署名
**イ** 情報技術を利用する機会又は能力によって，地域間又は個人間に生じる経済的又は社会的な格差
**ウ** ディスプレイに映像，文字などの情報を表示する電子看板
**エ** 不正利用を防止するためにデータに識別情報を埋め込む技術

＊**解き方**＊
アとイはそれぞれデジタル署名とデジタルディバイドの説明であるので除外。その後二択で迷い外してしまいました。
答えは<font color = "Red">ウ</font>です。エは電子透かしの説明です。