Open21

応用情報技術者試験の用語集

いせうどんいせうどん

基礎理論 > 基礎理論 > 応用数学

数値解析

https://www.it-shikaku.jp/top30.php?hidari=01-02-03.php&migi=km01-02.php

  • 二分法
    方程式の解を求める方法
    ① yの正負が分かれるxを2点決め、yを求める
    ② yの符号と異なるxと①を繰り返す
  • 補間法
    複数の点を通る別の関数で曲線を近似する方法
  • シンプソン法
    積分の近似値を計算する方法
    曲線上の3点を通る2次曲線から面積を求める
  • ニュートン法
    微分方程式の解を求める方法
    曲線の接線を求める→接線とx軸の交点を求める のサイクルを繰り返して x=0 まで近似する
  • オイラー法
    微分方程式とx=0 の時の値だけがわかっている状態で方程式を解く方法
    微分方程式(?) は方程式の傾きなので、その傾きとx+h(hは小さい)を使って近似値を得る方法

絶対誤差と相対誤差

  • 絶対誤差
     ≒絶対値
  • 相対誤差
     絶対値/理論値
     重さ10kg 絶対誤差1g → 0.001 * 100 /10

待ち行列理論

  • 到着率
    人が来る頻度
  • サービス率
    時間当たりの処理件数

公式

  • 平均利用率
    到着率 / サービス率
  • 平均サービス時間
    1/サービス率
  • 平均待ち時間
    (利用率 / 1 - 利用率) * サービス時間
  • 平均応答時間
    平均待ち時間 + 平均サービス時間

基礎理論 > 基礎理論 > 情報に関する理論

オートマトン

  • オートマトンと形式言語
    置き換えルールを使って文を生成するやつ
    文脈自由文法

オートマトンとチューリング機械

オートマトンで↓の特徴を持つもの
・めっちゃ長いテープをメモリとして持ち、ランダムアクセス可能

  • プッシュダウンオートマトン
    有限オートマトンに加えて容量に制限のないスタックを持っているもの
    遷移したときのアクションにスタックの操作がある

正当性理論

  • 正当性
    プログラムを実行すると処理が終わったら停止するし、出力結果も想定するものである
  • 部分正当性
    想定する入力・出力のペアで実行結果が得られルコと
  • 停止性
     無限ループにならずにプログラムが停止すること
  • 停止性問題
    チューリング機械の停止性を確実に解くプログラムは存在しない

計算量

  • 時間計算量
    命令が実行される回数

  • 領域計算量
    メモリの使用量

  • P問題
    計算量が多項式で表せるような問題
    ≒効率的に解く方法が見つかっている問題
    例) O(n), O(1)

  • NP問題
    ≒効率的に解く方法が見つかっていない問題
    解が正しいかを診断するのに多項式で表せるような時間がかかる問題
    PはNPに含まれる

  • NP完全問題
    以下の条件を満たす
    ・問題がNP
    ・問題がP問題なら他のNP問題もクラスPになる

AI

エキスパートシステム

特定分野の専門性を持って推論、判断ができるシステム
知識ベース + 推論エンジン = エキスパートシステム

知識ベース

知識、経験、ノウハウをためたデータベース
AならばB のような知識

  • 汎化性能
    学習データ、検証データ意外の初めて扱うデータでもいい感じに予測する能力

  • 過学習
    汎化性能が低い状態

  • 畳み込みニューラルネットワーク(CNN)
    顔・画像認識に強い

  • リカレントニューラルネットワーク(RNN)
    言語処理に強い

  • 敵対的生成ネットワーク(GAN)
    画像生成AIとか(たぶん)

  • 基盤モデル
    大量多様なデータでファインチューニングされて大体のタスクができるモデル

  • 解析型問題
    解がルールの適用順序に依存しない問題

  • 合成型問題
    解がルールの適用順序に依存する問題

いせうどんいせうどん

基礎理論 > 基礎理論 > 通信に関する理論

伝送理論

変復調方式

変調→デジタルデータをアナログ経路で送るための事前変換
復調→アナログ経路で受け取ったデータをデジタルデータに復元する

  • AM(Amplitude Modulation:振幅変調)
    搬送波の振幅の強弱によってベースバンド信号を伝送する変調方式
    FMよりノイズがあるらしい

  • FM(Frequency Modulation:周波数変調)
    搬送波の振幅は変えずに周波数を変化させることによってベースバンド信号を伝送する変調方式

  • PM(Phase Modulation:位相変調)
    搬送波の位相変化を利用して情報を伝送する変調方式
    https://www.chip1stop.com/sp/knowledge/059_analog-modulation-method

  • QAM(直交振幅変調)
    WiFiで使われている

別々の伝送波を合成して1つの波として伝送する

  • PWM(パルス幅変調)
    調光のやつ
  • モデム
    変調器+復調機

多重化方式

通信路をみんなでつかおう

  • 変調
    ベースとなる波である搬送波やキャリア波に、情報を伝えるために変化をつけること

  • FDM(Frequency Division Multiplexing:周波数分割多重)
    アナログ伝送路に多い
    周波数を変えて情報を識別する方法
    上り下りで違う周波数
    例)地上波テレビ放送、ラジオ放送

  • TDM(Time Division Multiplexing:時分割多重)
    デジタル伝送路に多い
    送る時間・順番を決めて情報を区別する方法

  • CDM(符号分割多重)
    デジタル伝送路に多い
    信号に符号をつけて区別する

  • WDM(波長分割多重)
    光通信で使われる
    異なる光の波長を割り当てて1つの伝送路にまとめる

誤り検出・訂正

  • CRC
    データを生成多項式で割った余りを末尾に追加して送る
    訂正はできないが、バースト誤りを検出
  • ハミング符号
    冗長ビットを排他的論理和で産出して末尾に追加
    2ビットまでの誤り検出と1ビットの修正
  • パリティチェック
    末尾に検査用のビットを1つ追加して誤りを検出する
    普通のパリティ→1ビット誤り検出
    水平垂直パリティ→1ビットの誤り修正
  • ECC
    誤り訂正ができるやつのジャンル
  • チェックサム
    誤り検出をするためにデータの和をとったり、剰余を求めたりするやつ

信号同期方式

通信のはじめと終わりのタイミングを送信、受信側で示し合わせること
ビット同期とブロック同期で大きく分かれている

  • ビット同期
    電話網でつかわれるらしい

ブロック同期

通常の通信で使われる

  • 調歩同期
    1文字単位で同期
    調歩同期の始まりを表すスタートビット(0)、調歩同期の終わりを表すストップビット(1)
    1文字ごとなので効率が悪い

  • キャラクター同期(SYN同期)
    8ビット単位のメッセージで同期
    始まり、終わりを表す制御文字SYN-STXを使う方式と、SYN2つで始まりだけを表す方式がある。
    多少効率がいい

  • フレーム同期(フラグ同期)
    なんでも送れる
    送りたいデータの前後にフラグパターンというビット列を入れる
    効率がいい→高速な通信

データ圧縮

  • ランレングス
    同じパターンの連続登場回数を表すことで圧縮する方法
  • ハフマン符号
    文字を圧縮する時に登場率が高いものを短い文字列にする圧縮法
いせうどんいせうどん

基礎理論 > 基礎理論 > 計測・制御に関する理論

信号処理

A/D変換の時にフィルターを用いてノイズなどを除去している

  • DFT離散フーリエ分解
    離散的な信号を三角関数の和に分解すること
    録音のアナログデータを分析するのにも使われる

  • FFT高速フーリエ変換
    DFTのアルゴリズムを改善して高速化したもの

  • インパルス応答
    一瞬に思えるようなごく短いイベントを入力した時の出力
    インパルス応答がわかるとそれをキャンセルするようなこともできる
    音響室で響き度合いがXXくらいの環境を再現、的な

  • サンプリング定理
    A/D変換でアナログをそのまま再現するには元の信号の周波数の2倍のサンプリング周波数で標本化すればよい

フィルター

  • ローパスフィルター
    閾値より高い周波数のみ抑えるフィルタ
  • ハイパスフィルター
    閾値より低い周波数のみ低減させるフィルタ
  • バンドパスフィルター
    特定の範囲の周波数のみ取り出すフィルタ
  • デジタルフィルター
    デジタル信号で特定の信号成分のみを抽出するフィルター

制御に関する理論

  • リアルタイムOS
    処理を実行する意味のある時間が決められていたりする場合に使う
    めっちゃ速い

  • オープンループ
    クローズループ→フィードバック制御らしい
    フィードバックを必要としないタイプの制御方式

  • 応答特性
    制御に対する反応=応答の特性
    入力を変化させた時に反応している時→過渡応答
    出力が安定した時→定常応答

  • 制御安定性
    ??????

センサー・アクチュエーターの種類と動作特性

  • サーミスタ
    熱を感じて抵抗が変わるのを利用した温度センサ
  • ホール素子
    https://www.nicera.co.jp/about-hall-elements
    電流と磁界によって電圧が生じる(?)
    回転検出、位置検出、開閉検出、電流検知、方位検出となんでもいける
    家電につかうらしい
  • 油圧シリンダ
    腕の筋肉みたいな、、、
    クレーンで使われる
  • 空気圧シリンダ
    腕の筋肉みたいな、、、
    自転車で使われる

計測システムの種類と動作特性

  • GPS
    3つの衛星で特定
    屋内や悪天候では制度が下がる
    電力消費が大きい
  • 基地局測位
    通信事業者の基地局から端末までの距離を計算して位置を特定
    GPSより精度が下がるが、屋内でも使用できる
  • 無線LANアクセスポイント測位
    アクセスポイントはビーコンを周囲に発信していて、スマホとアクセスポイントの通信の時間で大体の距離を測ることでおおよその現在位置を特定している
いせうどんいせうどん

基礎理論 > アルゴリズムとプログラミング > データ構造

データ構造の種類

木構造

  • バランス木(平衡木)
    深さを均等にしたもの

基礎理論 > アルゴリズムとプログラミング > アルゴリズム

代表的なアルゴリズム

整列・併合・探索のアルゴリズム

  • バブルソート
    隣と入れ替える
  • 選択ソート
    最小を探索して左端に置く
  • 挿入ソート
    左端を整列済みとみなして正しい位置に挿入する
  • マージソート
    配列を整列済みになるまで分解し、合体するときに並び順で合体するようにする
  • シェルソート
    挿入ソートの改良版
    一定間隔で配列の要素を取り出して挿入ソートを行う
    間隔を狭めていく
  • クイックソート
    適当に決めた基準値に対する値の大小でざっくり分ける
    2つに分けたグループにさらに基準値決める
    繰り返す
  • ヒープソート
    ヒープ木を作って親子の大小関係で入れ替えを繰り返す

文字列処理のアルゴリズム

  • KMP 法(クヌース・モリス・プラット法)
    文書内検索の方法の一つ
    一致しない文字列があるとき、このままずらしても一致しない箇所が計算できるので、比較する場所を飛ばしたり、一部の文字列だけ比較したりする
    比較が不要な箇所を飛ばして計算量を減らす方法

  • BM 法(ボイヤ・ムーア法)
    検索文字列の末尾から参照する方法
    検索文字列の末尾と比較している文字が違い、かつ検索文字列の中に含まれていない場合は、1つずつ検索対象をずらしても意味がないのですっとばす

    近似アルゴリズム

https://zenn.dev/link/comments/2db0a8486ef439

  • 二分法
    y=0 になる x 点を挟む y の符号が異なる2点のx を求めるやつ
  • ニュートン法
    適当なxと曲線の接線を求める→接線とx軸の交点を新たなxにする→繰り返す
  • 台形公式
    うにょうにょの曲線とx軸の2点間の面積を求める時(積分?)に、うにょうにょの部分を直線で適当に近似する
  • 誤差
    近似の時は真の値に一定近づいたらOK!みたいな感じで打ち切り誤差が発生する

確率アルゴリズム

  • モンテカルロ法
    確立を近似的に求める手法
    真の確率がわからない時に、ランダムにn回試行してm回事象が起こったら確立は大体m/n と推測できる
    試行回数を大きくすれば真の値に近づく

遺伝的アルゴリズム

ある問題に対して適応度の強い親個体を選択して子を生ませる→子が増えたら世代交代 を繰り返して最適化する
突然変異もある

自然言語処理のアルゴリズム

  • 形態素解析
    品詞レベルに文を分ける

  • 構文解析
    SVO、SVCのような構文を分析する

  • 意味解析
    単語同士の意味を分析

  • 文脈解析
    複数の文章の関係性を分析

  • 係り受け解析
    でかいもも、私は走る みたいな装飾関係を分析する

  • n-gram
    任意の文字数で文章を分割する
    特定の単語が何個出てくるか、とか

図形に関するアルゴリズム

  • Zバッファ法
    3DCG の描画処理で、隠れている部分を除外する方法
    ある視点から重なる複数の要素の奥行きを比較して手前のものだけ描画する
    奥行き情報はZバッファというメモリ領域で保持
    メジャーな技術
    高速、低画質
  • スキャンライン法
    真横から見た時の視点を固定してスライスして描画する
    奥行きはあんまり計算しない????
    普通の速さで画質も普通くらい
  • レイトレーシング法
    物体の屈折、反射も考えて描画
    低速、高画質

記憶域管理アルゴリズム

メモリ割り当ての容量を決めるアルゴリズム

  • ベストフィット方式
    空き領域の大きさ順リストを先頭から探索して要求される容量に合致する領域を割り当てる
  • ファーストフィット方式
    空きブロックを先頭から検索して、容量より大きい領域が発見された時点で割り当てる
  • ワーストフィット
    空きブロックを検索して、一番大きい領域を割り当てる

アルゴリズム設計

  • 分割統治法
    複雑な問題を再帰法を使ってシンプルにする方法
    例)マージソート、クイックソート
  • 分割限定法
    入力の組み合わせを全部試してみて最適解になりえない入力の範囲を特定して問題を解きやすくすること
  • 局所探索法
    ブロックごとにざっくりとした解を出して改良する方法
  • 貪欲法
    問題を分解し、分割した小問題での最適解を解として次の小問題に進むこと
    全部のパターンを検討すること
いせうどんいせうどん

基礎理論 > アルゴリズムとプログラミング > プログラミング

プログラミング

プログラム構造

  • オーバーロード
    引数が異なる同じ名前の関数が複数ある状態

  • オーバーライド
    親クラスにあるメソッドを子クラスで再定義して上書きするする

  • DLL(Dynamic Link Library)
    プログラムの部品
    プログラムを動かす時にロードされる

Web プログラミング

  • リッチクライアント
    ⇔シンクライアント
    必要に応じてクライアントで処理を実行する

  • Ajax
    JavaScript でやる非同期通信

  • Apache
    OSSのWebサーバーソフトウェア

  • JSP(Java Server Pages)
    HTMLの中にJavaを埋め込むタイプのスプクリプト言語

文法の表記法

  • EBNF
    BNFに比べて、繰り返しやオプションを表現できるようになった
// BNF でのオプション
optional = hoge, huga | huga

// EBNF でのオプション
optional = [hoge], huga

// BNF での繰り返し
recurrent = hoge | recurrent, hoge

// EBNF での繰り返し
recurrent = { hoge }
いせうどんいせうどん

基礎理論 > アルゴリズムとプログラミング > プログラム言語

プログラム言語の種類と特徴

プログラム言語の変遷と分類

  • 手続型言語
    やりたいことを順番通りに記述する
  • 関数型言語
    やりたいことを関数を用いて記述する
  • 論理型言語
    論理式の集合を定義して計算する(????????)
  • オブジェクト指向言語
    オブジェクトを定義してオブジェクト同士のメッセージ通信でやりたいことを実現する
  • スクリプト言語
    機械語に変換しやすい言語

手続型言語

例)Fortran, COBOL, Pascal, C, R

オブジェクト指向言語

例) Java, C++

スクリプト言語

例) Perl, Python, Ruby

共通言語基盤

  • CLI(Common Language Infrastructure)
    異なる高水準言語で書いたプログラムが他のプラットフォームでも使えるようにしたもの

プログラム言語の制御構造

  • 仮引数
    関数の定義に書いてある引数
  • 実引数
    呼び出す時に渡す引数

プログラム言語の記憶域

  • 自動変数
    メモリの割り当て、開放が自動的に行われる変数
    ローカル変数
  • ヒープ
    プログラム実行時に使われる記憶領域の種類
    スタック領域とヒープ領域がある
    スタック領域→退避するやつ LIFO
    ヒープ領域→双方向リスト、ガベージが発生する
いせうどんいせうどん

基礎理論 > アルゴリズムとプログラミング > その他の言語

マークアップ言語

HTML

  • DTD
    XML や HTML などの書き方を定義するスキーマ言語

XML

タグを自由に定義できる

  • DOM
    HTML や XML 文書を取り扱うための API

  • SOAP
    XML でやりとりするプロトコル
    複雑なデータ構造でもやりとりできるっぽい

  • SAX(Simple API from SXL)
    XMLを取り扱うAPI
    DOMより軽い

  • XML Schema
    XMLの文書構造を定義するための言語

XHTML

HTML を XML で再定義したマークアップ言語
タグを小文字で表記し、省略を許容しなかったり、

  • XHTML Basic
  • XHTML Modularization
    モジュール化されたXHTML Basic

スタイルシート

  • XSL(Extensible Stylesheet Language)
    XML文書に対してスタイルを設定できる

その他の言語

  • コラボレーション図
    =コミュニケーション図
    オブジェクトとメッセージのやつ

  • ステートマシン図
    =状態遷移図

  • 相互作用概要図
    シーケンス図とコミュニケーション図のこと

  • タイミング図
    https://www.ibm.com/docs/ja/dmrt/9.5?topic=diagrams-uml-timing

  • SDL(Specification and Description Language)
    システムの仕様を記述する言語

  • アーキテクチャ記述言語
    アーキテクチャを記述する言語

  • データ定義言語
    SQLのデータを定義する言語

  • JSON
    https://wa3.i-3-i.info/word13798.html
    XMLとはまた違ったやつ
    JSと相性がいい

  • YAML
    JSONとはまた違ったやつ
    https://wa3.i-3-i.info/word13801.html

いせうどんいせうどん

コンピュータシステム > コンピュータ構成要素 > プロセッサ

コンピュータの種類

量子力学を使って並列計算するコンピュータ

量子コンピュータ

  • 量子ゲート型
    量子の状態から回路を作る
  • 量子アニーリング型
    エネルギーが少ない状態を最適化された状態として最適化問題を解く

プロセッサの種類

  • DSP
    デジタル信号の処理に特化したプロセッサ
  • FPU
    浮動小数点の計算に特化したプロセッサ
  • GPGPU
    GPUを3DCG等の処理意外に流用するプロセッサ
  • AI チップ
    AIでよく使う画像認識、音声認識に特化したプロセッサ

プロセッサのアーキテクチャ

命令形式

  • 1 オペランド形式
    オペランド部が1つ
    演算結果はアキュムレーターに保存
  • 2 オペランド形式
    オペランド部が2つ
    演算結果は主記憶に保存

命令セット

ワイヤドロジック制御方式

論理回路で処理する
命令を固定長にしてパイプライン処理する
あんまりでかいことはできないので簡単なものに絞る
→RISC

マイクロプログラム制御方式

複雑な命令も処理できるタイプ
可変長命令
→CISC

プロセッサの構造と方式

  • アキュムレーター
    演算データを一時的に保存する
  • 補数器
    引き算するやつ
  • 乗算器
    掛け算
  • 積和演算器
    累乗を計算する
  • 汎用レジスタ
    アキュムレーターが複数ある版
  • スタックポインタ
    割り込みが発生した時にどこまで作業していたかを記録する
  • IR
    命令レジスタ
    メモリから読み出した命令を入れておく
  • GR(General Register)
    汎用レジスタ
  • MAR
    メモリアドレスレジスタ
    命令が入っている場所を記憶する
  • DR
    データレジスタ
  • MR
    メモリレジスタ

プロセッサの動作原理

命令とアドレッシング

  • アドレス修飾
    オペランド部を参照してデータのあるアドレスを特定すること
  • 転送命令
    別のレジスタにレジスタの値、即値をコピーする命令
  • 比較命令
    二つのレジスタの値の大小を比較する

マイクロプログラム制御

  • 水平型マイクロコード
    マイクロ命令が直接CPU各部の制御を行う方式
  • 垂直型マイクロコード
    マイクロ命令を回路で解釈して制御を行う方式

プロセッサの高速化技術

  • VLIW
    プロセッサの設計様式
    Aビットの命令をB個並列実行できるABビット長のVLIWプロセッサ みたいな感じ
    依存関係のない命令しか並列実行できない

  • データハザード
    使う予定のデータがまだ生成されていないので待ちになること

  • 構造ハザード
    リソースの競合

  • 制御ハザード
    分岐命令が原因で次の命令を決められない状態

  • マルチスレッディング
    シングルコア

プロセッサの性能

  • サイクルタイム
    1命令の実行時間の平均

並列処理

命令とデータの流れ

https://basics.k-labo.work/2017/10/11/並列処理/

  • SISD
    1命令1データ
    1プロセッサ
  • SIMD
    1命令複数データ
    複数プロセッサ
  • MISD
    複数命令1データ
    複数プロセッサ
  • MIMD
    複数命令複数データ
    複数プロセッサ

並列処理の隘路

複数プロセッサが同時に主記憶を使ったり、DBにアクセスしたりすることで競合が発生して逐次処理になることがある

マルチプロセッサシステム

https://basics.k-labo.work/2017/10/11/マルチプロセッサシステム/

  • 疎結合マルチプロセッサシステム
    通信回線を通じて複数のプロセッサが繋がっている
    PCを複数つなげる的な?
    ジョブやトランザクションなどの単位で負荷を分散する

  • 密結合マルチプロセッサシステム
    複数のプロセッサが最初からある
    主記憶を共有するから速度のボトルネックになる
    バス接続
    細かいタスクに分けることができるのでみんなでタイミングを合わせる同期が必要

  • タンデム結合マルチプロセッサシステム
    2つのCPUを並列に接続して負荷分散し、高速化するシステム

  • アレイプロセッサシステム
    たくさんのプロセッサを並列に組み合わせる
    ベクトル演算に強い

  • アムダールの法則
    https://itmanabi.com/amdahls_law/
    プロセッサ倍にしても並列できない処理がある限り処理速度は倍にならないよ、のやつ

  • 対称型マルチプロセッシング
    複数のプロセッサ内で役割が分かれている方式

  • トーラス
    複数のプロセッサを相互接続する・・・?

  • ハイパーキューブ
    数百個のCPUを並列²結合してそれぞれにメモリを用意したコンピュータ
    スーパーコンピューターに使われる

  • ハイパーツリー
    検索してもででこない・・・

いせうどんいせうどん

コンピュータシステム > コンピュータ構成要素 > メモリ

メモリの種類と特徴

DIMM, SO-DIMM

メモリに使われるモジュール
SO-DIMMは物理的にサイズが小さい
DIMMはデスクトップPC,SO-DIMMはノートパソコン等に使われる

  • DDR2~4
    DDR の世代

メモリシステムの構成と記憶階層

  • ダイレクト方式
    =DMA
    キャッシュメモリ内の位置を1対1で決める方法
  • フルアソシエイティブ方式
    キャッシュの空いている箇所にデータを保存する
    キャッシュの衝突がなくなるけど探索が大変
  • セットアソシエイティブ方式
    複数の区画に分かれたブロックを1つの位置としてデータを置く
  • 連想メモリ
    データの一部を検索するとそのデータが所属するブロック全体を返すメモリ
    セットアソシエイティブ方式で使われる
    検索キーに対して複数の格納場所があるので
  • 命令キャッシュ、データキャッシュ
    次に実行する命令をキャッシュしておく
    命令部、オペランド部

アクセス方式

  • メモリインターリーブ
    物理的には1つのメモリを仮想的に複数に分け(バンク)、並列でアクセスする(並列でアクセスできるのイメージがわからん)

メモリの容量と性能

  • ミスペナルティ
    欲しいデータがキャッシュメモリ似ないために主記憶からデータを取り出す時間

記録媒体の種類と特徴

ストリーマ

でっかいカセットテープ(磁気テープ)
先頭から読み書きする(ランダムアクセスができない)
磁気テープの送り速度は一定
バイト単価が安い

ウェアレベリング

https://e-words.jp/w/ウェアレベリング.html

記憶装置の書き込み制御の手法の一つ

記憶装置の読み書きをたくさん行うと読み書きが激しいところは物理的に壊れることがある
一部が壊れると使えない(多分)ので、バランスよく摩耗するようにコントロールする
磁気ディスクは書き換えに強いが、フラッシュメモリは書き換えに余り強くないためウェアレベリングが使われている

いせうどんいせうどん

コンピュータシステム > コンピュータ構成要素 > バス

バスの種類と特徴

  • 内部バス
    CPU内部の回路を結ぶ
  • 外部バス
    CPUと外部のメモリ等を結ぶ
  • 拡張バス
    周辺機器とPCと結ぶ

個別のバス

  • アドレスバス
    CPU(アドレスレジスタ)-主記憶装置
    アドレスの伝送
  • データバス
    CPU(内部バス)-主記憶装置
    データ本体を伝送する
  • コントロールバス(制御バス)
    CPU(制御ユニット)-主記憶装置
    タイミングを伝送する
  • システムバス(CPUバス)
    CPU-チップセット
    チップセット→コンピューターの中の機器の橋渡しをする
    →CPUと他の機器との橋
    →システムバスは橋の部分
  • メモリバス
    チップセット-メモリ (多分)
  • 入出力バス
    CPU-外部機器
    USBとか

バスの転送方式

  • シリアルバス
    1ビットずつ順番にデータを転送
    今もわりと人気 USBとかで
  • パラレルバス
    複数の信号線があるバス

バスのシステムの構成

  • ハーバードアーキテクチャ
    命令の読み込みとデータのアクセスを別のバスで実行
    同時アクセスができる(のでパイプライン処理がスムーズ)
  • プリンストンアーキテクチャ
    = ノイマンアーキテクチャ????
    命令の読み込みとデータのアクセスを同一のバスで実行(コスパ良し)
    同時アクセスできない

バスの制御方式

  • バスマスタ
    バスに接続されるブロックのうち、CPUとDMAコントローラ
    自分でバスを制御できる

  • バススレーブ
    バスに接続されるブロックのうち、入出力型の装置
    バスの制御ができない

  • バスアービタ
    複数のバスマスタがいる場合に、バスマスタの間を取り持ってバスの使用権を調整する

  • マスタースレーブ方式
    バスコントローラー(AからBのバスつかってよし!的な)がコマンドバスを通じてバスの端にある装置に送っていいよ!的な指示を出す バスコントローラを経由してデータが送られる
    装置がたくさんあったり、速いスピードでデータをやりとりするとバスコントローラーに負荷がかかる
    初期の方式

  • DMA(ダイレクトメモリアクセス)方式
    主記憶-入出力装置間でのデータ転送をCPUを介さずに行う方法
    CPUの代わりに制御するコントローラがいる
    CPUに負荷をかけない&データをまとめ転送できるので高速
    高度
    データを送る側が大変

  • バスマスター方式
    各装置にダイレクトメモリアクセスコントローラーがいて、どの装置に何を送るかを調べたり許可をとったりしてくれる
    最新

  • 集中制御方式
    ?

  • 割り込み方式
    新しいイベントを割り込む

  • ポーリング方式
    イベントが発生しているかを定期的にチェックする

バスのアクセスモード

  • アクセスモード
    外部データバスのバス幅を制御するモード

バスの容量と性能

バスの性能

  • バス幅
    1クロックで送れるデータ量
  • バスクロック
    1秒あたりのクロック数をクロック周波数という
  • 帯域
    1秒間に送れるデータの量=転送速度を表す

バスの標準規格

  • PCI
    バスの規格の一つ
    CPUと周辺機器を接続するのがメインだった
    拡張カードとか
    デファクトスタンダードだった

  • PCI Express
    PCIを拡張して作られた規格
    シリアル転送

  • IEEE1394
    SCSI規格
    デイジーチェン、ツリー接続がかのうでホットプラグができる

  • SCSI
    スカジー
    USBの前身
    パラレル転送

  • USB
    シリアル転送

いせうどんいせうどん

コンピュータシステム > コンピュータ構成要素 > 入出力デバイス

入出力インタフェース

入出力インタフェースの種類と特徴

転送方式、速度、接続可能台数、用途

  • USB
    シリアル通信
    12Mbps ~ 20Gbps

  • Thunderbolt
    転送方式
    デイジーチェーンできる

速度:USBより高速
接続可能台数:デイジーチェーンで5台
用途:データ転送、映像転送、充電
端子:2まではMini DisplayPort, 3以降はUSB-C

  • RS-232C
    シリアル通信の接続規格

速度:20Kbps
接続可能台数:1
用途:マウス、プリンタで使われていた
端子:D-Sub 9ピン、D-Sub 25ピン

  • IEEE1394
    次世代のSCSI規格
    ホットプラグに対応
    速度:200/400 Mbps(USBより圧倒的に速い)
    接続可能台数:デイジーチェーンで63台
    用途:デジタルビデオカメラの外部出力(次世代なので発展途中)
    端子:四角
  • SCSI
    パラレル通信

速度:5 Mbps ~ 80Mbps
接続可能台数:デイジーチェーンで8台
用途:プリンタ、ディスク

  • HDMI
    デジタル映像インターフェースのDVI を元に音声伝送、不正コピー防止機能を備えたもの
    シリアル伝送の線をまとめて1本のケーブルで送る
    速度:5Gbps~48Gbps
    接続可能台数:デイジーチェーンで8台
    用途:映像、音声、制御信号

  • DisplayPort
    デジタル映像インターフェースのDVIを元に音声伝送、コネクタサイズの縮小をしたもの
    速度:10Gbps~80Gbps
    接続可能台数:デイジーチェーンできる
    用途:映像、音声、制御信号

  • PCカード
    拡張カードをバソコンに接続するための規格

  • シリアルATA
    1本しか信号線がないやつの規格
    速度:1.5Gbps

  • Wi-SUN
    Wireless Smart Utility Network
    920MHz帯(普通は2.4GHz, 5GHz)
    速度は遅いが距離が長く、低消費電力

  • ZigBee
    Bluetooth より低速で短距離、超省電力

  • IrDA
    短距離の赤外線通信
    壁は通り抜けられない

  • NFC
    非接触式、10cm程度の距離で通信可能
    ピーツーピアできる

  • FC
    ファイバチャネル
    コンピュータと周辺機器の間のデータ転送
    SAN(Storage Area Network) で使われる
    高速伝送

データ転送の方式と接続形態

デジタル、アナログの違い

  • アナログ
    情報を電流、電圧に置き換えたもの
  • デジタル
    01 に符号化したもの

データ転送方式

  • シリアルデータ転送方式
    1つの信号線で1ビットずつデータを送る
    例) USB, Serial ATA, IEEE 1394
  • パラレルデータ転送方式
    複数の信号線で複数ビットデータを送る

####トポロジ
https://wa3.i-3-i.info/word12191.html
ネットワークの接続方法をモデル化したもの

  • スター型
    1このルータを複数のPCがそれぞれ接続
  • ツリー接続
    木っぽい形
  • リング型
    機器の信号が次の機器に繋がってぐるぐるしている
  • カスケード接続
    =ツリー?
  • デイジーチェーン接続
    機器を直列に数珠つなぎすること
    モニターとかの話っぽい
  • ターミネーター
    配線の末端につけるやつ
  • UART
    調歩同期式シリアル通信のための規格
    パラレル信号をシリアル信号に相互に変換できる

入出力制御の方式

  • プログラム制御方式
    CPUが入出力装置と主記憶装置の間を取り持つ
  • DMA
    CPU以外のコントローラが入出力装置と主記憶装置の間を取り持つ

デバイスドライバ

  • プラグアンドプレイ
    接続すると勝手に設定してくれる
  • ホットプラグ
    電源を入れたままで周辺機器を接続・解除できる
いせうどんいせうどん

コンピュータシステム > コンピュータ構成要素 > 入出力装置

出力装置

ディスプレイ

  • 液晶ディスプレイ
    電圧によって透過率が変わる物質を使って映す
    バックライトが必要

  • TFT 液晶
    液晶パネルの方式の一つ
    ガラス基板上にトランジスタを並べたもの
    液晶パネルのほとんどがこれ
    アクティブマトリックス駆動方式(?)
    動画に適している

  • STN 液晶
    こっちはトランジスタがない
    単純マトリックス駆動方式(?)

  • 有機 EL ディスプレイ
    電圧によって光る物質を使って映す
    バックライト

  • インターレースモード
    画面に表示する時半分を切り替えて表示する????

  • ノンインターレースモード
    =プログレッシブモード
    全部表示する(データ量おおめ)

  • グラフィックモード
    画面が画素を基準に表示される

  • パックトピクセル方式
    光の三原色で画素を構成したもの

  • プレナピクセル方式
    一画面の描画を赤→緑→青の順番で行う

  • VGA
    アナログ信号を使う映像信号規格
    ・□・ みたいなやつ

  • SVGA
    アナログ信号
    VGAより解像度が高い

  • XGA
    さらに解像度が高い

  • プロッター
    プリンターっぽいもの
    プリンターが描画するものを点として扱うのに対し、プロッターはベクタデータとして認識する

補助記憶装置

  • ブロック化因数
    磁気ディスクの1ブロックに含まれる論理レコード数

  • ブロック間隔
    ブロック巻のデータが書き込まれない部分
    データの区別=ブロック感覚

  • トラック密度
    単位辺のトラック数

  • スピンドル
    回す軸

  • 固定ディスク
    HDD

  • ボリューム

  • ボリュームラベル
    ディスクドライブにつける名前

  • ディスクアレイ
    =RAID
    複数のディスクをまとめて大容量ディスクとして扱う技術

その他の入出力装置

  • 有線 LAN インタフェースカード
    コンピュータにネットワーク機能を追加するための拡張カード
  • 無線 LAN インタフェースカード
    コンピュータにネットワーク機能を追加するための拡張カード
いせうどんいせうどん

コンピュータシステム > システム構成要素 > システムの構成

システムの処理形態・利用形態・適用領域

分散処理システム

  • 水平機能分散
    依存関係のない処理を平等に機能ごとに分散する
    ファイルサーバー、プリントサーバー
  • 水平負荷分散
    平等に処理を分散する
  • 垂直機能分散
    システム間で前後関係、主従関係がある

システム構成

  • タンデム結合
    2つのCPUを並列に接続する接続方式
    負荷分散
  • ロードシェアリングシステム
    同じシステム、サーバー を複数使って負荷を分担する
  • 密結合、疎結合
    分けて独立して転用するのが難しい⇔簡単
  • シェアードエブリシング
    分散システムのうち、データベースやストレージを共有する方式
  • シェアードナッシング
    システムごとにデータベース、ストレージを独立させる

ハイパフォーマンスコンピューティング

  • アレイプロセッサ
    ベクトルに関する演算を高速にできる特殊演算装置
  • IaC
    サーバー のインフラ構築をコードをつかて行うこと

クライアントサーバシステム

  • RPC(Remote Procedure Call)
    ソフトウェアから別のPC上で動くソフトウェアに処理を依頼したり返したりする規約
    ある程度決まったルーチン、手続っぽい

RAID

  • チャンクサイズ
    ディスクの最大単位

信頼性設計

  • フォールトマスキング
    障害が発生しても外から見ると起きていない=影響していないように見せかけること

  • 信頼性ブロック図
    複雑なシステムのどの装置が成功、故障に寄与しているかを信頼性で図示したもの

  • 競合制御
    =排他制御

  • 無停止コンピュータ
    ハードウエアが故障しても無停止でメンテナンスできるコンピュータ

いせうどんいせうどん

コンピュータシステム > コンピュータ構成要素 > システムの評価指標

システムの性能特性と評価

  • SPEC
    プロセッサの性能評価
    SPECint, SPECfp
  • TPC
    オンライントランザクション処理の性能評価
  • LINPACK
    浮動小数演算の性能評価
  • ギブソンミックス
    命令ミックスの一種
    浮動小数点演算がメイン

キャパシティプランニング

  • プロビジョニング
    必要に応じてリソースを確保して準備すること
いせうどんいせうどん

コンピュータシステム > ソフトウェア > オペレーティングシステム

OSの種類と特徴

  • オープンOS
    標準規格のコンピュータで使用できるOS
    Android的な感じ?

  • セキュアOS
    アクセス権限の管理を強化したOS

  • クラウドコンピューティング用OS
    ハードウェアを抽象化しつつIaaSとして管理するAPIを提供する

OS の機能と構成

  • マイクロカーネル
    割り込み処理やプロセス間通信などの最低限の機能だけを持って他はモジュールに任せる
    移植性が高い
  • モノリシックカーネル
    カーネルがなんでもやる、速度が速い
  • カーネルモード(スーパーバイザーモード)
    システムの管理、制御を実行するモード
    開く制限がない
  • 特権モード
    =カーネルモード
  • 非特権モード
    =ユーザーモード
  • ユーザーモード
    アプリケーションを実行するモード
  • サービスプログラム
    コンピュータに最初からあるプログラム
  • ブートストラップ
    PCを起動すること
  • ネットワークブート
    ネットワークを通じてPCを起動する
    シクライアントの仲間
  • フラッシュブートローダ
    ブートローダ:起動直後に自動実行されるプログラム
    フラッシュメモリ内にある
  • マルチブート
    1つのコンピュータに複数のOSをインストールし、起動時に選択できるようにすること
  • マルチプログラミング
    入出力待ちの時に別のタスクをやること

言語プロセッサ

  • コンパイラ
  • インタプリタ
  • リンケージエディタ

ジョブ管理

  • ジョブスケジューラー
    ジョブの起動、終了の制御、監視をする
  • マスタスケジューラー
    ジョブスケジューラーとシステム間を繋げて情報を送る
  • cron
    Linuxでジョブの計画と実行をしてくれるソフトウェア

タスク管理

ジョブ=人間から見た一連の処理
タスク=コンピュータから見た仕事の単位
なんか依頼→ジョブ管理がジョブステップに分割→タスク管理がジョブステップごとにタスクを作成

  • 軽量プロセス
    = スレッド
    プロセスをさらに細かくして並行処理する時の単位

  • タイムクウォンタム
    短い時間に処理時間を区切ること

  • タスクの流れ
    実行可能状態→実行状態:ディスパッチング
    実行状態→実行可能状態:プリエンプション

多重プログラミングとスケジューリング

  • プリエンプティブ方式
    OSが複数のタスクを管理する
    優先度や実行時間によって実行状態を強制的に切り替える

  • ノンプリエンプティブ方式
    各アプリケーションが自分で切り替える
    1つのタスクが終わるまで強制的に切り替える方法はない
    古いOSでのマルチタスクの実現方法

  • タイムスライス方式
    一定時間ごとにタスクを切り替える方式

  • イベントドリブン方式
    タスクの状態の変更をきっかけにタスクを切り替える方式

  • フィードバック待ち行列方式
    =多重町行列方式
    一定時間内にタスクが終了しない場合に優先順位を落とす方式
    ラウンドロビンに優先順位を追加した感じ

  • 静的優先順位方式
    あらかじめ決まった優先順位に基づいて順番を決める

  • 動的優先順位方式
    待ち時間の長さに応じて優先度を上げる方式

  • ラウンドロビン
    一定時間タスクが終わらなかったら次のタスクが実行される

  • SJT
    Short Job First
    タスクの処理時間が短いものから処理する方式

  • 割り込み禁止
    CPUが割り込み許可しているか禁止しているか

  • マルチCPU
    マルチプロセッサ

  • FCFS
    First Come First Served
    先着順

  • リソーススタベーション
    プロセスが必要なリソースを永遠に獲得できない状況
    CPU使用権が割り当てられない状況など

  • セマフォ
    複数のタスクを並行で実行するときに共有する資源へのアクセスを制御するメカニズム
    ロック=セマフォを1減らす 開放=セマフォを1増やす

入出力管理

入出力制御方式の種類

  • 直接制御方式
    =PIO方式、プログラム制御方式
    CPUが入出力装置と主記憶装置の間のデータ転送を取り持つ
  • DMA方式
    CPUの代わりにDMAコントローラががデータ転送する
    CPUからDMAにデータ転送の場所と量を指定→DMAが転送→DMAがCPUに終わった通知
  • チャネル制御方式
    入出力制御のためのCPUとメモリ、回路があるチャネルというハードウェアによって外部装置-メモリのデータ転送を行う方式
    DMA+α
  • スプーリング
    出力待ちのデータを一旦補助記憶装置に避難させて待つこと
  • バッファプール
    レコード検索のキャッシュの置き場所
    よく使うレコードを保存して後から高速で取得できるようにする
  • メモリマップドI/O
    CPUが入出力装置にアクセスする命令を、メモリにアクセスするのと同じアドレス空間で扱う方式
  • I/OマップドI/O
    CPUが入出力装置にアクセスする命令を、メモリにアクセスするのとは異なるアドレス空間で扱う

記憶管理

実記憶管理

  • ガベージコレクション
    使わなくなった主記憶領域をまとめて次使えるようにする
  • 実アドレス方式
    論理アドレスと実アドレスが変換されず同じ

記憶域管理アルゴリズム

OSがプログラムにメモリ領域を割り当てる

  • ファーストフィット
    容量の小さい順から検索して、最初に見つかった割り当て可能な領域に割り当てる

  • ベストフィット
    小さい領域が残ってしまう

  • ワーストフィット
    大きいものから割り当てる

  • ロールイン
    セグメント方式で補助記憶装置からメモリにロードする

  • ロールアウト
    セグメント方式で補助記憶装置に出す

  • スワップイン
    プログラムをディスクにロースする

  • スワップアウト
    プログラムをディスクに退避させる

仮想記憶管理

動的アドレス変換の方式

  • ページング方式
    固定長のページに分ける
    ページの入れ替え→スラッシング
    ページを仮想記憶から取り込む→ページフォルト(割り込み)

  • セグメント方式
    可変長の区分
    無駄が少なめ

  • セグメントページング方式
    合わせ技

  • 多重仮想空間方式
    異なるプロセスに与えられるメモリ空間の仮想アドレスが重複する方式

  • スラッシング
    スワップインーアウトが頻繁に発生する状態
    物理メモリが不足していると起きやすい

  • DAT ( Dynamic Address
    Translator:動的アドレス変換)

  • TLB(Translation Lookaside Buffer)

  • デマンドページング
    要求があるページのみをロードする

  • ページリプレースメント
    ページフォルトのアルゴリズム

  • ワーキングセット
    プロセスが使用中の仮想メモリページの集合
    サイズがいい感じにしないと同時に実行できるプロセスが少なくなる

運用の管理

  • プロファイル
    ユーザー別の環境設定
  • ディスククオータ
    ユーザーに割り振られたディスクの上限

ユーザー管理

  • スーパーユーザ
    OSに対する全権限を持つ

  • root
    最初から組み込まれている管理者アカウント

  • Administrator
    管理できるアカウント

  • LDAP
    ネットワーク内の情報、機器を検索、権利するプロトコル

  • Active Directory
    ネットワークに繋いでいる装置の情報を一元管理できるサービス

セキュリティ制御

  • BLPモデル
    機密性のセキュリティモデル

  • ロギング機能
    PCの利用、通信履歴を取ること

  • オーディット機能
    PC上でいつ誰が何をしたのかを監視する機能

  • セキュリティカーネル
    ファイル保護、侵入検出などの機能がある

プログラムの形態と性質

  • ABI
    Binary Interface
    実行ファイルをいろんなシステムで実行させる共通のインターフェース?????
  • POSIX
    Portable Operating System Interface
    OSの一種
    UNIX系OSでの互換性を保持するインターフェース
  • SCM
    ソフトウェア構成管理

OSの動向

  • JavaOs
    Java仮想マシンを搭載したOS
  • OSE
    Open Systems Environment
    いろんな環境で使えるシステム???????
  • セキュアOS
    アクセス権限の管理を強化したOS
いせうどんいせうどん

コンピュータシステム > ソフトウェア > ミドルウェア

ミドルウェアの役割と機能

  • TPモニター
    トランザクションの登録、監視

シェルの役割と機能

カーネルとやりとりしてくれるのがシェル

  • コマンドインタプリタ
    キーボード からコマンドを入力してPCを動かす時に、コマンドを解釈して実行するソフトウェア
    最初に > が出力される

  • BShell
    sh, bash, ksh の派閥

  • CShell
    csh, tsch の派閥

ライブラリ

https://basics.k-labo.work/2017/10/20/ライブラリ/
https://qiita.com/argama147/items/2f636a2f4fd76f6ce130

  • ソースライブラリ
    ソースモジュールの集合(着脱可能っぽい)
    応用ソフトウェアと合わせてコンパイルして使う
  • オブジェクトライブラリ
    既に実行可能な状態で提供されるモジュールの集合
  • ロードライブラリ
    オブジェクトライブラリ+他のモジュールと連結して使う
  • DLL(Dynamic Link Library)
    いろんなプログラムから使われる汎用性の高いモジュールの集合
    他のモジュール実行時に連結されて使う
  • クラスライブラリ
    オブジェクト指向でつくられたライブラリ

コンポーネントウェア

コンポーネントウェア=オブジェクト指向を元にしたソフトウェア開発手法

  • コンポーネント
    標準仕様に基づいて再利用可能なソフトウェアの部品
  • Java Beans
    Javaで開発されたコンポーネント(=Bean) を組み合わせて開発する
  • CORBA
    異機種間の接続ができる分散オブジェクトの使用
    複数の言語、端末で実行できる
    OMGが定めた
  • OSGi
    動いている機器に新たにソフトウェアを追加、制御できる規格
    Javaベース
  • ActiveX
    MSが開発したインターネット関連の技術群
    IE系

開発フレームワーク

  • Apache Struts
    JavaのWebアプリケーションフレームワーク
  • CakePHP
    PHPを使ったフレームワーク
  • Spring
    Javaの開発環境で使えるフレームワーク
いせうどんいせうどん

コンピュータシステム > ソフトウェア > ファイルシステム

ディレクトリ管理とファイル管理

  • 物理的位置
    ??
    ブロックらしい

  • 保護情報
    権限????

  • 参照情報

  • シンボリックリンク
    https://wa3.i-3-i.info/word1151.html
    代理的なファイルで、そこを開くと代理元のフィアルを開いたのと同じになる

  • ショートカット
    ≒シンボリックリンク

  • エイリアス
    他の名前でファイルを呼び出すことができる

  • 検索手法

  • ファイル共有

  • アクセス権
    https://www.ntt.com/business/sdpf/knowledge/archive_82.html
    読み取り、変更、フルコントロール
    フルコントロール→所有者やアクセス権の変更

  • ファイルハンドル
    今どのファイルを処理しているかを管理するための名前

  • ファイル記述子
    ファイルへの参照を抽象化した目印っぽいもの

  • キャラクターデバイス
    文字単位で処理をする
    バッファを使わない(?)
    後戻りできない

  • ブロックデバイス
    データのまとまりごとに処理をする
    バッファを使っている
    ランダムアクセス可能

ファイルシステムの種類と特徴

ファイルシステムは圧縮、アクセス権設定、とかができる

ファイル編成とアクセス手法

  • 論理レコード
    ディスクへの格納形式を考慮しないレコード長
    ブロック内に複数の論理レコードがある感じ
  • 物理レコード
    ディスクへの格納形式を考慮したレコード長
    カセット1個分、とか
  • 順次アクセス
    磁気テープのように、先頭から順番にアクセスするやつ
  • 直接アクセス
    欲しいレコードに直接アクセスする
  • 動的アクセス
    順次アクセスと直接アクセスの組み合わせ
    最初は直接アクセスで開始点までアクセスし、その後は順次アクセスするイメージ
  • あふれ域
    ファイルのインデックスを持つ場合に、データを入れる箱から溢れたデータを保存する領域
いせうどんいせうどん

コンピュータシステム > ソフトウェア > 開発ツール

開発ツールの種類と特徴

EUC, EUD

  • End User Computing
  • End User Development
    EUDの方がより積極的に開発に関わっているスタイル

エミュレーター、シミュレーター

エミュレーターの方が詳細まで動作を再現する

  • ICE(In-Circuit Emulator)
    CPUの機能をエミュレートする

デバッグ

https://www.it-shikaku.jp/top30.php?hidari=05-04-01.php&migi=km05-04.php

  • トレーサー
    命令の実行順に中身と結果を出力する
  • インスペクタ
    プログラムの実行中にデータ構造の中身を確認できる
  • スナップショット
    メモリの内容を実行中に出力する
  • アサーションチェッカー
    プログラムが意図通りに動くかをチェックする
いせうどんいせうどん

コンピュータシステム > ソフトウェア > オープンソースソフトウェア

OSS の種類と特徴

LAMP/LAPP

Webサーバー構築時に使用するOSSの頭文字

  • LAMP
    Linux-Apache-MySQL-Perl等
  • LAPP
    Linux-Apache-PostgreSQL-Perl等

スクリプト言語関連の用語

  • CPAN
    Perlのライブラリ・モジュールを集めたアーカイブ
  • PEAR
    PHPで利用できるライブラリ群
  • jQuery
    JSを短く記述するJSライブラリ

OSS ライセンス

https://www.tohoho-web.com/ex/license.html

  • コピーレフト
    著作物を自由に改変、再配布OK
    オリジナルと同じ条件で改変、再配布を第三者に許可することが必要
    →社内用に使っても(呼び出すだけも)公開する必要があり、企業とは少し相性が悪い
  • デュアルライセンス
    1つのソフトウェアに複数のライセンスを適用する
    OSSでありつつも販売できるようにする、とか
  • GPL(General Public License)
    コピーレフト型ライセンス
    利用しただけでソース公開の義務あり
  • BSDL(Berkeley Software Distribution License)
    非コピーレフト型ライセンス
    複数の版があるが、メインで使われているものはかなりゆるいライセンス
    コード公開が不要
  • MPL(Mozilla Public License)
    準コピーレフト型ライセンス
    GPLとBSDLの中間程度のゆるさのライセンス
    利用するだけの場合は独自のライセンスOK、改変した場合はMPLライセンスとして公開
  • Apache ライセンス
    非コピーレフト型ライセンス
    BSDL同様にゆるいライセンス

UNIX 系OSS

UNIX→最古のOS、安全性が高く最低限の機能で動作が軽い
BSD→ OSと関連ソフトウェア群 BSDLと同じ文脈

  • NetBSD
    BSDの子孫
    無償公開されているUNIXと互換性のあるOS
  • Linux
    UNIX互換(だけど完全に別で作っている)
    ライセンスがGPL
  • FreeBSD(Free Berkley Software Distribution)
    無償公開されているUNIXと互換性のあるOS
    安定性、堅牢性が高い
    Linuxと似ているらしい
    BSDの子孫
  • OpenBSD
    セキュリティ性が高いOS
    BSDの子孫
  • The Open Group
    UNIX系OSの業界団体

AI関連のOSS

  • Chainer
    ニューラルネットワークの計算・学習のためのライブラリ

  • Keras
    ニューラルネットワークのライブラリ

  • OpenCV
    画像処理ライブラリ

  • PyTorch

  • TensowFlow
    深層学習

オープンソースコミュニティ

https://www.weblio.jp/content/オープンソースコミュニティ
OSSを開発、改善するコミュニティ

OSS の利用・活用と考慮点

https://eset-info.canon-its.jp/malware_info/special/detail/230228.html

  • 脆弱性、不具合があってもすぐに対応されるとは限らない
  • 善意での開発なのでコミッタがいなくなれば更新が終わる
  • ライセンスによって、有償サポートがある場合もある
  • OpenStack
    オープンソースのクラウド基盤ソフトウェア
    IaaSを構築するためのソフトウェア
いせうどんいせうどん

コンピュータシステム > ハードウェア > ハードウェア

電気・電子回路

  • 組み合わせ論理回路
    フィードバックループを持たない回路
  • 順序論理回路
    過去の入力と現在の入力によって出力が決まる

機械・制御

  • オープンループ制御
    フィードバックを使わない
    今の状態と、制御モデルだけで入力値を決める
  • クローズドループ制御
    = フィードバック制御
  • PWM(Pulse Width Modulation)制御
    蛍光灯のやつ!

構成部品及び要素と実装

ダイオードは、電気の流れを一方通行にする部品です。
トランジスタやICなどと同じ仲間で、能動部品と呼ばれます。
半導体を用いた基本的な部品です。

その他にも電圧を一定にしたり、無線信号から音声信号を取り出したりする(ラジオ)

白熱電球がフィラメントを光らせているのに対して、ダイオードから光が放出されてるのでエコらしい

トランジスタは電気の流れをコントロールする部品です。

信号を増幅したり、信号によって回路のオンオフを変える

  • IC
    Integrated Circuit
    集積回路

  • LSI
    Large Scale Integration
    大規模集積回路

  • VLSI(Very Large Scale Integration)
    超大規模集積回路

  • FPGA(Field Programmable Gate Array)
    その場で回路を変更できる機能を持ったデバイス
    論理回路をプログラムする
    Hardware Descdription Language or VHDLを使う?

  • ASIC
    特定用途に向けてつくった集積回路

  • CMOS
    消費電力が小さく、動作が速いCPU内の基本回路

  • バイポーラ
    CMOSより電力消費がでかいが速い
    信号を増幅できる

  • BiCMOS
    バイポーラとCMOSの組み合わせの半導体回路
    高速だが低消費電力

  • コデザイン

  • System on a Chip(SoC)
    一枚の基板上にいろんな部品をつけたもの

  • Dgital Signal Processor
    リアルタムコンピューティングに適したマイクロプロセッサ

  • MEMS
    Micro Electro Mechanical Systems
    軸論レベルの小さい半導体

  • 加法標準系

  • 論理圧縮
    カルノー図のやつ

  • リーク電流
    絶縁されているはずの場所で漏れる電流
    回路内の話で、漏電とは違う

  • パワーゲーティング
    演算回路の電流を遮断してリーク電流を減らすこと

  • クロックゲーティング
    動作していない回路のクロックを遮断してクロック回路の電力を削減する