勉強メモ1

### パイプライン方式
複数の命令を1ステージずつずらしながら並行処理する方式

・分岐予測:実行される確率の高い方を予測する

・投機実行:予測した分岐先の命令を介して結果を保持し正しければ結果を利用する

### RAM
読み出し可能なメモリ。電源を切ると記憶内容が消えてしまう揮発性

・DRAM:主記憶に用いられる。リフレッシュ（再書き込み）可能。価格は安価

・SRAM:キャッシュメモリに用いられる。価格は高価。フリップフロップ回路で構成（高速）
※ROM:読み出し専用のメモリ。不揮発性

### キャッシュメモリ
CPUと主記憶の速度差を吸収しアクセスの高速化をはかる
```
キャッシュメモリアクセスを使用した実行アクセス時間　　
キャッシュメモリアクセス時間×ヒット率＋主記憶装置のアクセス時間×（1-ヒット率)
```
・ライトスルー方式:キャッシュメモリと主記憶の両方を書込む方式

・ライトバック方式:キャッシュメモリに書込みデータがキャッシュメモリから追い出される時に主記憶へ書込む方式

### 磁気ディスク（平均アクセス時間の計算式）

・平均アクセス時間:シーク時間(位置決め)、サーチ時間(回転待ち※1回転するのに要する時間の1/2)、転送時間(データ転送)の合計値

### ジョブ管理
・スプーリング:主記憶装置と入出力装置との間のデータを補助記憶装置を介して行い全体処理を高める。

### タスク管理
・ディスパッチ:実行可能なタスクに対してプロセッサの使用権を割り当てること

### 主記憶管理
・メモリリーク:OSやアプリのバグなどが原因で動作中に確保した主記憶が解放されないこと。※これにより使用可能な主記憶の容量が減少する現象

・ガベージコレクション:メモリリークを解消する方法で不要になった領域を解放

・スラッシング:アプリの同時実行数を増やした場合に主記憶容量が不足し処理時間のほとんどがページングに費やされスループットの低下を招く

・フラグメンテーション:主記憶で空き容量は足りているのに、不連続な未使用領域が生じる現象。一つのデータが飛び飛びの領域に記録される。

### 仮想記憶装置
補助記憶の一部をあたかも主記憶のように使用する方法
実行に必要なページを補助記憶から主記憶にロードし不要になったページは補助記憶に退避する。

・ページング方式:主記憶とプログラムを固定長（ページ）に分割しページ単位で管理する方式
→FIFO方式:もっとも古い主記憶に存在するページを置き換える
→LRU方式:最後に参照されてから経過時間が最も長いページを書き換える
→LFU方式:参照回数が最も少ないページを書き換える

### コンピュータ制御技術
・フィードバック制御:環境など外部の作用の影響をセンサで検知しコンピュータが判断して修正動作を行う方式

・フィードフォワード制御:前もって必要な動作を行う方式

・シーケンス制御:制御の各段階を逐次進めていく方式

・アクチュエータ:コンピュータが出力した電気信号を回転運動・直線運動など力学的な運動に変える

### データの整列
・基本交換法:隣り合うデータを比較し交換する整列法

・基本選択法:データ列から最小値(最大値)を選択して交換する整列法

・基本挿入法:整列済みの正しい位置にデータを挿入する整列法

・クイックソート：適当な基準値を決めて基準値より小さい値のグループと基準値より大きい値のグループに分ける操作を繰り返す整列法

### プログラムの性質
・再配置可能(リロケータブル):主記憶のどこに配置しても実行可能

・再入可能(リエントラント):複数のタスクが同時に実行可能

・再使用可能(リエントラント):再ロードしなくても使用可能

・再帰的(リカーシブ):自分自身を呼び出す

### 言語プロセッサ
・インタプリタ:原子プログラムを1命令ずつ解釈しながら実行

・コンパイラ:原子プログラムから一括で目的プログラムを生成する

### マークアップ言語
・XML:取引データの起票など様々な分野で応用される。利用者独自のタグを定義できる。

・HTML：WEBページを作成するためのマークアップ言語。CSSを指定することでデザインの統一をしたり保守性を高めたりする。

### システム構成
・デュプレックスシステム:稼働系と待機系の二系統システム。障害発生時には稼働系から待機系に切り替える。

・デュアルシステム:二系統で同じ処理を行い照合する。障害発生時は片方で処理を継続する。

・ホットスタンバイ:待機系をいつまでも稼働できる状態にして待機。

・コールドスタンバイ:待機系を準備し障害発生時には待機系を起動して切り替える。

### 信頼性設計
・フォールトアボイダンス:構成要素の信頼性を高め、故障そのものを発生しない様にする設計

・フォールトトレランス:故障が発生した場合でも機能を縮退させることなく継続する設計

・フェールセーフ:故障が発生した場合に危険が生じないような構造や仕組みを取り入れ全体として安全が維持されるそうな設計

・フェールソフト:故障が発生した場合一部のサービスレベルを低下させても継続させる構造や仕組みを取り入れる設計

### システムの性能評価
・スループット:単位時間あたりに処理される仕事の量

・ターンアラウンドタイム:処理依頼から結果出力が終了するまでの時間

・レスポンスタイム:処理を依頼してから端末に処理結果が出始めるまでの時間（応答時間）

・ベンチマークテスト:使用目的に合わせて選定した標準的なプログラムを実行させシステムの処理性能を測定(評価)する

### システムの評価/指標

・稼働率※正常に稼働している時間の割合=MTBF※正常に稼働している時の平均時間÷（MTBF＋MTTR※修理している平均時間）

複数システムの稼働率
・直列システムの稼働率=装置Aの稼働率×装置Bの稼働率

・並列システムの稼働率=1-(1-装置Aの稼働率)(1-装置Bの稼働率)
```
複数システムの稼働率:例（令和1年度 秋期　問 16）
2 台の処理装置から成るシステムがある。
少なくともいずれか一方が正常に動作すればよいときの稼働率と，2 台とも正常に動作しなければならないときの稼働率の差は幾らか。
ここで，処理装置の稼働率はいずれも 0.9 とし，処理装置以外の要因は考慮しないものとする。

並列の場合　1-(1-0.9)(1-0.9)＝0.99
直列の場合　0.9×0.9=0.81
差　　　　　0.99-0.18=0.18
```
### データの正規化
冗長性（データの重複や矛盾）を排除することで更新時の異常を回避する目的

・第1正規化:繰り返し項目を排除する。計算で求められるものを排除する。

・第2正規化:主キーの一部によって決まる項目を別の票に分離する。

・第3正規化:主キー以外の項目によって決まる項目を別の表に分離する。

### トランザクション処理
データベース更新時に切り離すことのできない一連の処理（ACID特性）
→原子性(A):処理が完了したかまたは処理されていないかで終了する 
→一貫性(C):データベースの内容に矛盾が無いこと
→独立性(I):複数のトランザクション処理を同時に実行した場合と順番に実行したっ場合の処理結果が一致していること
→耐久性(D):障害が発生してもデータベースから消滅しないこと

・排他制御:複数のトランザクション処理が同一データベースを同時に更新する場合論理的な矛盾を生じさせないようにする技法

・デッドロック:お互いのロック解除待ち状態のこと（実行できなくなる状態）

・2相コミットメント:問い合わせ後コミットするかロールバックするかを確定する方式

### ネットワーク接続装置
・OSI参照モデル:(上位層から)アプリケーション層、プレゼンテーション層、セッション層、トランスポート層、ネットワーク層、データリンク層、物理層
→トランスポート層:エンドシステム間の通信の信頼性を確保
→ネットワーク層:エンドシステム間の通信を提供
→データリンク層:隣接したコンピューター間の通信を提供

・TCP/IP:（上位層から）アプリケーション層、トランスポート層、インターネット層、ネットワークインターフェース層
・アプリケーション層のプロトコル（一部）
→HTTP:HTML文書等を送受信する
→NTP:タイムサーバーの時刻をもとにコンピューターの時刻を同期する
→SMTP:メール送信時やメールサーバー間でメールを転送する
→POP3:メールを受信。サーバー上にあるメールを端末にて管理

・トランスポート層のプロトコル
→TCP:信頼性の高いデータ転送を提供する。信頼性重視
→UDP:高速なデータ転送を提供する。リアルタイム性重視（信頼性の保証はない）

・リピーター:物理層でデータを中継。増幅整形する

・ブリッジ:データリンク層でMACアドレスを解析し中継する

・ルータ:ネットワーク層でIPアドレスを解析し中継する

### マルウェアと脅威
・ソーシャルエンジニアリング:人為的脅威。コンピュータを使用せず人の心理や行動の隙を突いて機密情報を入手する行為

・不正のトライアングル

不正のトライアングル理論における3要素
→3要素が単独ではなく相互に作用することで不正行為の発生につながる

・機会（Perceived Opportunity）:不正を行うための手段や環境が整っている状態

・動機（Perceived Pressure）:個人が不正行為を実行することを欲する主観的事情（ノルマやプレッシャー）

・正当化（Rationalization）:不正行為を合是認しようとする思考過程

・マルウェア:悪意を持って作成された不正なプログラムの総称
→ランサムウェア:勝手にPCのファイルを暗号化して読めなくして戻すためのパスワードと引き換えに金銭を要求する

### サイバー攻撃
・パスワードクラック攻撃:攻撃により他人のパスワードを割り出すこと
→辞書攻撃：辞書にある単語でその組み合わせをパスワードとしてログインを試行する
→総当たり攻撃:利用者IDを1つ定め英語や数字、記号を組み合わせたパスワードを総当たりしてログインを試行する
→パスワードリスト攻撃:不正に取得したIDとパスワードのリストの一覧表を用いてログインを試行する
````
対策:パスワードの試行入力回数に制限をかける。同一のIDとパスワードを使いまわさないなど
````
・SQLインジェクション:脆弱性のあるWEBアプリケーションの入力領域に悪意のある問い合わせや操作を行う命令文を注力し管理者の意図しないSQL文を実行させる攻撃

### 暗号技術
・共通鍵暗号化方式:暗号化カギと複合化カギが共通。共通の秘密鍵で暗号化して共通の秘密鍵で複合する。処理が速い。代表例はAES

・公開鍵暗号化方式:暗号化カギと複合化カギは異なる。受信者の公開鍵で暗号化して受信者の秘密鍵で複合する。処理が遅い。鍵の配布が容易。代表例はRSA、楕円曲線暗号

・デジタル署名:公開暗号方式を使用し電子文書の正当性を保証する仕組み
→送信者の秘密鍵で署名して送信者の公開鍵で検証する。電子文書の作成者や内容改ざんがされていないことを確認する。

### 認証技術
・PKI:公開暗号化方式を利用してインターネット上で安全な情報のやり取が出来るインフラ基盤

・SSL:インターネット上での通信を暗号化して盗聴や改ざんを防ぐ仕組み
→HTTPS:WEBブラウザに標準搭載されていてSSLの暗号化方式をHTTPに実装したもの
電子証明書が改ざんされていない事。電子証明書が認証局の発行審査を受けた会社であるものであることを確認出来る

・メッセージ認証符号:共有鍵を利用しメッセージが改善されていないかを確認する仕組み

### ソフトウェア開発
・アジャイル開発:短い工程を何度も繰り返し利用者のニーズを取り入れながら何度も開発する開発手法。小規模な開発向き
→ドキュメント作成よりもソフトウェアの作成を優先
→仕様変更に柔軟に対応でき後戻りによる影響も少ない

・スクラム開発:アジャイル開発の1つ。チームが一致となり取り組む手法

・スプリント:短いサイクルで（数週間程度）、動作するプログラムを作成することを繰り返す

・スプリントプランニング:スプリントの始まりで作業計画を立てる

・デイリースクラム:毎日のミーティングを重ねる事で早期の問題解決を図る

・スプリントレビュー:スプリントの終わりの前で成果物のレビューを行う

・レトロスペクティブ:スプリント終わりの振り返りで改善要綱を整理し次のスプリントの課題とする

・リバースエンジニアリング:既存のプログラムを解析してプログラムの仕様を導き出すこと。

・リファクタリング:外部仕様を変更することなく内部構造を変更する

### テスト手法
・ホワイトボックステスト:モジュールの内部構造に着目
→テストカバレージ分析:プログラムの実行された部分の割合を測定するのに使うもの
→アサーションチェッカ:変数の間で論理的に成立するような条件をプログラムに埋め込み、実行時にその条件を満たしていることを検証するツール

・ブラックボックステスト:モジュールの外部使用に着目

### ヒューマンインターフェース
利用者とコンピュータの利点
・パンくずリスト:トップページからそのページへの経路情報

・チェックディジット:入力データに誤りがないか検査する方法

・アクセシビリティ:誰もが情報サービスを支障なく操作または利用できる度合い

・ユーザビリティ:利用者がストレスを感じずに目標とする要求が達成できる度合い

### プロジェクトマネジメント
・プロジェクト:決められた期間の中で独自のサービスを作り出すために編成されるサービス

・プロジェクト憲章:プロジェクトを正式に許可するためにビジネスニーズ、目標、成果物、プロジェクトマネージャーおよびプロジェクトマネージャーの責任権限を記した文書

・ステークホルダマネジメント:利害関係者と良好な関係を構築する

### システム監査
監査人が客観的に情報システムを監査する(予備調査、本調査、評価/結論)

・監査証拠:被監査部門から得た情報を裏付けるための文書や記録

・監査調書:監査業務の実施記録。監査意見の根拠となるもの

・内部統制:企業自らが健全な企業活動を経営するための体制を整備・運用する仕組み

・コーポレートガバナンス:企業経営が健全に行われているかを外部から監視・監査する仕組み

### マーケティング、事業戦略/経営管理システム
・コアコンピタンス:競合他社がまねできない独自のノウハウや経営に技術などに経営を資源を集中に競争優位を確立する手法

・ベンチマーキング:競合他社または先進企業を優先して製品やサービス、オペレーションなどを定性的、定量的に把握する手法

・PPM:事業や製品を4つのカテゴリに分けて経営資源の最適配分を意思決定する手法
⒈花形(市場成長率:高　市場占有率:高)
⒉負け犬(市場成長率:低　市場占有率:低)
⒊金のなる木(市場成長率:低　市場占有率:高)
⒋問題児(市場成長率:高　市場占有率:低)

・SWOT戦略:企業の経営環境を内部環境である「強み」と「弱み」、外部環境である「機会」と「脅威」の4つのカテゴリに分類し分析する手法

・プロダクトライフサイクル:製品を「導入期」「成長期」「成熟期」「衰退期」に分類し企業にとっての最適な戦略を分析する手法

・マーケティングミックス:「製品戦略」「価格戦略」「チャンネル戦略」「プロモーション戦略」などを適切に組み合わせて自社製品を効果的に販売する手法

・CRM:顧客情報を一元管理する(顧客満足度や企業にもたらす価値を向上させることを目的)

・SCM:サプライチェーンを一元管理する(リードタイムの短縮や流通コストの削減が目的)

・ERP:企業の基幹業務の情報を一元管理する(業務状況をリアルタイムに把握し効率的な経営を表現することが目的)

・ナレッジマネジメント:社員個人がビジネス活動から得た知識、経験、ノウハウを一元管理する(知識や情報を統合された資源として活用することが目的)

・3PL:企業の物流機能のすべて（または一部）を外部の企業に託すこと。外部の資源を有効に活用

### 要件定義プロセス
情報システムの機能や性能を明確にする。利用者を含めた利害関係者のニーズに基づいたプロセス

・非機能要件:機能要件以外のプロセス。可用性、拡張性、保守性、移行性などの項目