応用情報技術者試験 - tips17
基礎理論
基礎理論
- 桁落ち(けたおち)
- 計算誤差のひとつで、絶対値の差が非常に小さい2つの値の差を求めたときに、仮数部の大半が打ち消しあい、計算結果の有効桁数が少なくなることによって生じる誤差
アルゴリズムとプログラミング
コンピューターシステム
コンピューター構成要素
- 誤り検出
システム構成要素
- システム構成要素RASIS(レイシス)
- システムの信頼性を評価する5つの概念の頭文字をとった造語
- Reliability
- Availability
- Serviceability
- Integrity
- Security
- システムの信頼性を評価する5つの概念の頭文字をとった造語
- サーバコンソリデーション
- 仮想化技術を用いることで、複数の専用サーバに分散・非効率化していたアプリケーションや機能を1台(または少数)の物理サーバに整理統合すること
- コンソリデーション(consolidation)
- 統合、統一、合併、整理などの意味を持つ言葉
- メモリインタリーブ
- メモリアクセス高速化のための技法で、物理的にひとつの主記憶を同時アクセス可能な複数の論理的な領域(バンク)に分け、これに並列アクセスすることで見かけ上のアクセス時間を短縮することができる
- ディスクバッファ
- 主記憶と磁気ディスク装置との間にバッファメモリを置いて,双方のアクセス速度の差を補う
- MIPS(million instructions per second,ミップス)
- 1秒間の命令実行回数を百万単位で表すCPU性能の指標
- MTTR(Mean Time To Repair)
- システムの障害から回復するために要した平均修復時間
ソフトウェア
- マルチタスクのプログラムを切り替えるときの方式
- ページ置換の基本的な流れ
ハードウェア
技術要素
ヒューマンインタフェース
マルチメディア
データベース
- E-R図
- データベース化の対象となる実体(エンティティ)と実体の持つ属性(アトリビュート)、および実体間の関連(リレーションシップ)を表現する図
- 任意のオブジェクトとその関連をデータモデル化することができる
- DFD(Data Flow Diagram)
- データの生成から消滅に至るプロセスを表現する図
- 多重度
多重度表記 | 意味 |
---|---|
0..1 | 0か1 |
1(1..1) | 常に1 |
(0..) | 0以上 |
1..* | 1以上 |
ネットワーク
セキュリティ
- フットプリンティング
- 特定のコンピュータにサイバー攻撃を行う前の事前準備として、攻撃対象を下調べする行為
- ルートキット
- システムログに偽の痕跡を加えることによって,攻撃後に追跡を逃れる
- ディレクトリトラバーサル攻撃
- ファイル名を要求するプログラムに対してサーバ内の想定外のファイル名(親ディレクトリの移動「../」など)を直接指定することによって、本来許されないファイルの不正な閲覧・取得を狙う攻撃方法
- レインボー攻撃
- ポリモーフィック型マルウェア
- パターンマッチングによる検出を免れるため、感染の度に異なる暗号化/復号ルーチンで暗号化を行うなどして、自身のプログラムコードを都度変化させるマルウェア
開発技術
システム開発技術
ソフトウェア開発管理技術
プロジェクトマネジメント
プロジェクトマネジメント
- フィット&ギャップ分析
- 企業の業務プロセス,システム化要求などのニーズと,ソフトウェアパッケージの機能性がどれだけ適合し,どれだけかい離しているかを分析する手法
サービスマネジメント
サービスマネジメント
- 逓減(ていげん)課金方式
- システムの累積使用量が増加するに従って利用単位当たりの課金額が減っていく、つまり使えば使うほど割安な単価で利用できるようになっていく課金方式
- サービスレベル管理(Service Level Management)
- 顧客とサービス提供者の間でSLA(Service Level Agreement)を締結し、サービスレベルを定義,合意及び管理するプロセス
システム監査
- 顧客とサービス提供者の間でSLA(Service Level Agreement)を締結し、サービスレベルを定義,合意及び管理するプロセス
- システム監査基準
システム戦略
システム戦略
- 正味現在価値法
- SOA(Service Oriented Architecture,サービス指向アーキテクチャ)
- 業務上の一処理に相当するソフトウェアで実現されている機能や部品を独立したサービスとし、それらを組み合わせ連携させることで言語やプラットフォームに依存せずにシステムを構築するという手法
システム企画
- 業務上の一処理に相当するソフトウェアで実現されている機能や部品を独立したサービスとし、それらを組み合わせ連携させることで言語やプラットフォームに依存せずにシステムを構築するという手法
- 非機能要件
- 業務要件を実現するためのシステムに求められる要件のうち、機能要件以外の要件のこと
- 一般に制約条件や品質要求
経営戦略
経営戦略マネジメント
- 知識創造プロセス(SECIモデル)
- ターゲットリターン価格設定
- コスト志向型の価格設定法で、目標とする投資収益率(ROI)を達成するために得るべき金額を計算し、それを原価に加えて販売価格とする方法
- バランススコアカード
- 企業のビジョンと戦略を実現するために、「財務」「顧客」「内部ビジネスプロセス」「学習と成長」という4つの視点から業績を評価・分析する手法
技術戦略マネジメント
ビジネスインダストリ
- 企業のビジョンと戦略を実現するために、「財務」「顧客」「内部ビジネスプロセス」「学習と成長」という4つの視点から業績を評価・分析する手法
- EDI(Electronic Data Interchange)
- 異なる組織間で取引のためのメッセージを通信回線を介して標準的な規約を用いて、コンピュータ(端末を含む)間で交換すること又はその仕組みのこと
企業と法務
企業活動
to be continued...
ansibleとansible-core - tips16
ansibleをインストールしたときのあれやこれや
- ansible 4.0.0をインストールするとansible 4.0.0とansible--core 2.11.1がインストールされる
pip install ==4.0.0b1
- コレクションとしていろいろとインストールされている
ansible-galaxy collection list
- pip uninstall ansibleでアンインストールするとansible-coreとしては残るが、先程のコレクションは消える
ansible-coreさえあれば自分でコレクションをインストールして実行可能
ansibleとしてのバージョンは3,4と上がっていくが、モジュール開発をする上ではansible-coreのバージョンを意識した開発をしていけばよい?
なお、anisble-coreはもともとansible-baseという名前だった
基本情報技術者試験 - tips15
基礎理論
n進数の変換
- 10→2
- 整数部分
- 商が0になるまで連続で2で割った時、余りが1になるか0になるかでそれを低い桁から並べていく
- 小数部分
- 小数部分が0になるまで2進数の基数2をかけて結果の整数部分(1or0)を取り出し、高い桁から並べていく
- (100.625)10の例
- 整数部分
整数部 100 / 2 = 50 ... 0 50 / 2 = 25 ... 0 25 / 2 = 12 ... 1 12 / 2 = 6 ... 0 6 / 2 = 3 ... 0 3 / 2 = 1 ... 1 1 / 2 = 0 ... 1 #商が0になったため終了 →(1100100)2 小数部 0.625 * 2 = 1.25 → 1 0.25 * 2 = 0.5 → 0 0.5 * 2 = 1 → 1 #小数部が0になったため終了 →(0.101)2
- 2→8
- 小数点を基準として適宜0を補いながら、3桁ずつ区切る(2進数の3桁で8進数の桁が1桁繰り上がるから)
- (100011000101.001100)2の例
n進数 | |||||||
---|---|---|---|---|---|---|---|
2進数 | 100 | 011 | 000 | 101 | . | 001 | 100 |
8進数 | 4 | 3 | 0 | 5 | . | 1 | 4 |
- 2→16
- 小数点を基準として適宜0を補いながら、4桁ずつ区切る
- (100011000101.001100)2の例
n進数 | |||||
---|---|---|---|---|---|
2進数 | 1000 | 1100 | 0101 | . | 0011 |
16進数 | 8 | c | 5 | . | 3 |
- 補数
- ある数nに足すことで100...0となる数
- 補数を使って足し算で引き算をする例
通常→980 - 430 = 550 980 + 570 = 1550 ← 桁あふれを無視する
- 2の補数の求め方
- 符号ビットを含めた全てのビットを反転したものに1を加算する
100 - 17 100 + (-17) 100 → 01100100 17 → 11101111 --------------- (1)01010011
シフト演算
- 論理右シフト
- 全ビットをそのまま右へ移動
- 空いた左端には0が入る
- 論理左シフト
- 全ビットをそのまま左へ移動
- 空いた右端には0が入る
- 算術右シフト
- 符号付き2進数の符号ビット以外のビットをそのまま右へ移動
- 空いた左端には符号ビットの値が入る
- 算術左シフト
- 符号付き2進数の符号ビット以外のビットをそのまま左へ移動
- 空いた右端には0が入る
集合と論理演算
データ構造
- スタック
- LIFO
- データを積み上げる操作をプッシュ
- 上から取り出す操作をポップ
- スタックポインタで管理
- キュー
- FIFO
- データを列の最後に格納する操作をエンキュー
- 列の先頭から取り出す操作をデキュー
- 2分探索木
- 各節にデータを格納したもので、どの節についても左<中<右のようになっている
XML文書
- DTD(Domcument Type Definition)
- 文書型定義
コンピューターシステム
RAID
稼働率
CPU
制御装置
演算装置
- MIPS(CPUが1秒間に実行できる命令数)
1[秒] / 平均実行命令数 * 106
- nMIPSのCPUの平均命令実行時間
1[秒] / (n * 106)
- 1クロックあたりの時間
1[秒] / (クロック周波数[MHz]*106)
プログラムの動作の仕組み
- 命令サイクル
- 実行サイクル
論理回路
- フリップフロップ回路
- XOR
- NAND
- ANDの否定
- 文字をビットマップで表示→ドットの集まりで文字を表示
- 96dpi→1インチあたり96個ドットを並べる
- 文字の大きさ1ポイント=1/72インチ
ハードディスク
- 磁気ディスクの容量
- セクタ < トラック < シリンダ < 磁気ディスク全体
- アクセス時間
データ転送時間 = 転送データ量 / データ転送速度
平均回転待ち時間 = 1/2 * 1回転の時間
1回転の時間(秒) = 60秒 / 1分間の回転数
1回転の時間(ミリ秒) = 60秒 * 10 * 10 * 10 / 1分間の回転数
アクセス時間 = 平均位置決め時間 + 平均回転待ち時間 + データ転送時間
メモリ
割込み
- 内部割込み
- 外部割込み
- 入出力割込み
- 入出力動作が終了したときに発生する
- 機械チェック割込み
- ハードウェアが故障したときに発生する
- タイマ割込み
- プログラムの実行時間が設定時間を超過したときに発生する
- コンソール割込み
- オペレータが介入したときに発生する
- 入出力割込み
システム構成
- デュプレックスシステム
- システムが部分的に故障しても待機しているシステムに切り替えて処理を続行するシステム
- デュアルシステム
- 1つの処理を2系統のシステムで独立におこない結果を照合させる方式
- フォールトレランとシステム
- 部品が壊れてもその影響を最小限に抑え、システム全体には影響を与えずに処理が続けるようにする
- フールプルーフ
- 操作ミスが発生しないような作りにするか、操作ミスが発生しても致命的な誤りにならないように設計する
システムのスケールアウト
- スケールアウト
- 既存のシステムにサーバーを追加導入する
- スケールアップ
- 既存サーバーにメモリやCPUの交換により増強する
技術要素
データの保存手法
- キーバリューストア
- 保存したいデータと対応する一意の値を設定して"データ"と"識別できる一意の値"をペアで保存
- グラフ型データベース
- ノード,リレーションシップ,プロパティによって関係性を表現
- 関係モデル
- 集合論に基づいて、行と列からなる2次元の表で表現
- 選択
- 表の中から特定の条件を満たす行を取り出すこと
- 射影
- 表の中から特定の列を取り出すこと
- 結合
- 共通の列をもとに複数の表を結合して新しい表を作ること
- 選択
- 集合論に基づいて、行と列からなる2次元の表で表現
セキュリティ
- ISMS(情報セキュリティマネジメントシステム)→ISO/IEC 27001:2013,JIS Q 27001:2014
- セキュリティレベルを保つための仕組みや取り組み
- ISMS適合性評価制度も設けられている
- 統合的セキュリティ対策が適切になされていることを証明
- ISO/IEC15408
- セキュリティ評価基準
- 日本ではJISEC(ITセキュリティ評価及び認証制度)
- リスクアセスメント
- 特定、分析、評価、対応
開発技術
プロジェクトマネジメント
サービスマネジメント
システム戦略
経営戦略
- O to O(Online to Offline)
- オンラインとオフラインで連携して購買活動を促す
- LINEでクーポンくるやつ
企業と法務
共有フォルダについて - tips14
VirtualBoxとWindows10の場合
- Windows10側
- 適当な場所にshareフォルダを作成
- Ex.)C:\Users\"ユーザー名"\share
- VirtualBox側
- VirtualBoxマネージャーから共有したいゲストOSの設定に入る
- 共有フォルダ→"設定の編集"で作成したフォルダを設定
- 自動マウントにチェック
- 永続化はお好みでチェック
- ゲストOS側
- 上タブの"デバイス"から"Guest Additions CDイメージの挿入"を選択
- 必要な拡張ファイルをインストールする
- /home/"ユーザー名"/shareにshareフォルダを作成
- コマンドでsudo mount -t vboxsf share /home/"ユーザー名"/share
- リロード後"なぜか"/media/share/で共有できていることを確認
- 上タブの"デバイス"から"Guest Additions CDイメージの挿入"を選択
関数使いどころ - tips12
この関数はこういう時に使う的なメモ
memset
- ポインタ変数の初期化,構造体の初期化,配列の初期化(memset使わなくても普通にchar hoge[] = "テスト"とすることも)
- 第一引数にアドレスを渡す
- ポインタなしの変数→&をつける
- ポインタ変数,配列→そのまま
snprintf
- 文字列を配列の先頭アドレスからいれる
strncpy
- NULL文字が現れたら終了する
- NULLが途中にある文字列や、ない文字列にはmemsetを使う
fgets
- ファイルの終わりかつ読み取れなかった場合NULLを返す
- NULLが途中にある文字列や、ない文字列にはmemsetを使う
- 第一引数にアドレスを渡す
- 配列の途中から読み込みたい時は&hoge[i]のようにずらした場所のアドレスをいれる
strtol
マイコン用語 - tips11
- UART
- Universal Asynchronous Receiver/Transmitterの略
- シリアル信号をパラレル信号に変換したり、その逆方向の変換を行うための集積回路
- シリアル通信
- 電気通信において伝送路上を一度に1ビットずつ、逐次的にデータを送る
- コンピュータにおいては、バス上を一度に1ビットずつ、逐次的にデータを送る
- パラレルの方がシリアルより高速
- 伝送路間のクロックのずれという問題が起きない
- ケーブル本数が少なくて済み、場所をとらない。そのため、周囲のノイズを拾わないように対処することが容易
- 近接する導体が少ないため、漏話が問題になりにくい
- USB,MIDI,SPI,I2C
- パラレル通信
- SPI
- シリアル・ペリフェラル・インタフェース
- SPIバスは、単一のマスタと、1つ以上のスレーブの装置で操作する
- 水晶振動子
- 水晶の持つ圧電現象を利用し、その機械的共振から一定の周波数を生み出す素子
- watchdog timer
- ハードウェアのタイマーのカウンターがタイムアップする前に、プログラムでカウンターをリセットする
- リセットされたカウンターは再び0から数え始める
- この動作をプログラムの一部に取り入れ、周期的にカウンターをリセットする
- プログラムが暴走すると、この周期的なカウンターのリセット行為が行われなくなり、タイマーはオーバーフローしてプログラムをリセットする
- プログラムカウンター
- bootloader
- リセット直後に実行が始まり、プログラムでメモリの初期化やHDDなどの外部記憶装置を行う
- クロック信号
- LSI(Large Scale Integration)
- CPU(Central Processing Unit)
- Soc(System on a Chip)
- ネットワークプロセッサ
- ネットワーキングアプリケーションに特化した機能を持つ集積回路(IC)