応用情報 CPU、メモリ、インターフェース、ハードウェア(ディスプレイ、プリンタ、ICカードなど) 、基本ソフトウェア(GNU,GPL、OS、API、実記憶・仮装記憶、サーバー仮想化、固定長)


1.中央処理装置(CPU)(プロセッサとも言う)

役割:コンピュータとして実行する様々な計算処理を担当
→CPU(central processing unit)(プロセッサともいう)

CPUの種類

✅DSP (デジタルシグナルプロセッサ)

積和演算を高速に実行できる

画像処理、音声処理に適する

✅マルチプロセッサ

CPUそのものが複数ある
高価だが、性能は高い

※アムダールの法則

計算処理の並列度を上げた場合、並列化できない部分が邪魔になること

例えば、ある計算をCPU1基で2時間で行うプログラムのうち、並列に処理可能な部分が1時間分、並列化できない処理が1時間分あるとする。これを10基のCPUで並列処理すると、並列化部分は10倍高速化され6分に短縮されるが、並列化不可能な部分は相変わらず1時間かかるため、全体では1時間6分にしか短縮されない。どんなにCPUを追加投入しても1時間を切ることはできない。

◇AMP(非対称型マルチプロセッサシステム)

Asymmetric Multi-Processing

役割が決まってる複数のプロセッサにより、
処理を分散する方式

◇SMP(対称型マルチプロセッサシステム)

Symmetric multiple processor

カーネルプロセスとユーザープロセスを区別せず、
同等な複数のプロセッサに処理を分散する方式

☑️密結合マルチプロセッサ

複数のCPUが、主記憶を共有する方式

❌ 主記憶へのアクセスに対し排他制御してしまう

複数のCPUが同じ主記憶を共有するため
プロセッサ数が増えると、主記憶へのアクセスの
競合が発生し処理効率が悪くなる

✅グリッドコンピューティング(デスクトップグリッド)

※グリッド=ネットワーク

PCから大型コンピュータまで、ネットワーク上にある複数のプロセッサが同時に処理をして、大規模な一つの処理を行う方式

✅マルチスレッド

プログラム上の並列処理のこと

スレッド(プログラムの実行単位)レベルの並列にすることで、直列処理よりも時間がかからない

プロセッサの利用効率が高まる

CPU内部

✅コア

CPU内で計算を行うパーツ
マルチコア、シングルコアの二つある

マルチコアの特徴

信号を流す線であるバスを複数のコアで共有する必要がある

性能はマルチプロセッサよりも低い

・ホモジニアスマルチコア

同じ種類のコアを複数搭載したプロセッサ

・ヘテロジニアスマルチコア

異なる種類のコアを複数搭載したプロセッサ

※システムバス

CPUと構成部品を管理するチップセットをつなぐ伝送路

バックプレーンや拡張スロットで使用されており、複数の装置が共有するデジタル信号伝送路

✅キャッシュメモリ

普通はメモリ(主記憶装置)とデータの受け渡しを行うが、その前に一時的にデータを保存しておくことができる、CPU内の場所

データの保存はブロック単位で行う
ブロックは複数バイトで構成

SRAMがメイン

キャッシュメモリと主記憶装置との紐付け方式

・ダイレクトマップ方式

主記憶のブロック番号にハッシュ演算を行う

キャッシュメモリのブロック番号を求める

・フルアソシエイティブ方式 (全て割り当てられる)

任意のキャッシュメモリのブロックを、主記憶の全部分に割り当てられる
先頭から空いているブロックを線形探索で探す

・セットアソシエイティブ方式

ダイレクトマップ+フルアソイシエイティブ
複数ブロックを「セット」

セット番号をハッシュ演算で求める

セット内では、線形探索で空いてるブロックを探す

✅レジスタ

CPU内の記憶回路

※スプーリング

CPUー低速の入出力装置間のデータ転送を、高速の補助記憶装置に仲介させる技術

プリンタの印刷時によく使われ
CPUープリンタ間に、補助記憶装置を入れて、そこにデータを保存


CPU以外のプロセッサ

GPU(graphics processing unit)

グラフィック処理に特化

※ユニファイドメモリ方式

CPUとGPUでひとつの主記憶を共有して使う方式

NPU(neural processing unit)

機械学習専用

※TPU(tensor processing unit)
Googleが、Google cloudを介して提供するNPU

CPUの性能指標

クロック周波数(Hz)

1秒間に信号を発生させる回数。計算スピードともいえる。

MIPS(million instructions per second)

何百万個の命令/秒

(例題)

CPUの性能を上げる方法

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

情報システムの設計段階で
現状だけでなく、将来予測される最大負荷時にも
サービス水準を維持できる設計を検討すること

検討対象には、CPUの性能・回線の速度(応答速度)などに加えて経済性や拡張性も含まれる

キャパシティプランニング実施の手順

  1. 現行システムをモニタリングし現状の処理能力を把握する

  2. 将来的に予測される端末の増加、利用者数の増加などを分析する

  3. 2.の分析結果からシステム能力の限界時期を予測

  4. 新たなシステム構成で実現すべき性能要件から必要なハードウェア増設を検討する

✅TOC(theory of constraint)

別名、制約条件

【目的】

応答時間に最も影響があるボトルネックだけに着目して、適切な変更を行うことによって、そのボトルネックの影響を低減又は排除すること

✅パフォーマンスチューニング

システム、アプリケーション乃性能を最適化し、
より効率的に動作させるための改善作業

【目的】

・一定の時間で、同時に処理できるリクエスト・トランザクションの数であるスループットを向上させること

・パフォーマンスの問題はリソースの過剰使用によって発生するので,特定のリソースの有効利用を向上させること


スループット

一定の時間で、同時に処理できるリクエスト・トランザクションの数

スループットが低下する原因

・演算処理中心のプログラムが複数同時に実行されるとき

CPUのリソースの取り合いになってしまうため

CPUのキャッシュを頻繁に使用するため、
キャッシュが上書きされやすくなり、
キャッシュミスが発生しやすい

メモリの帯域幅が狭くなるとき

データ転送速度が遅くなるから

命令の実行手順

CPUが、主記憶に対して命令を実行する

①【主記憶から命令を取り出して格納する(フェッチ)時】
1️⃣プログラムカウンタ(プログラムレジスタ)
主記憶の中にあって、さらに次に実行するべき命令があるアドレスを記憶、保持している
2️⃣命令レジスタ
そこからアドレスを指定し、命令を取り出し命令レジスタに記憶させる
3️⃣プログラムカウンタの値を一つ増やす

アドレスの指定方式

✅直接アドレス指定

✅間接アドレス指定



命令レジスタには「命令部」と「オペランド部」があるが…
②【命令を解読する時】
1️⃣命令デコーダが、命令部のコードを解読
2️⃣主記憶へ、当てはまるデータ(オペランド)を取りに行く
3️⃣オペランドを汎用レジスタに記憶させる


2.OS

コンピュータを制御するシステム

人間で言うところの、頭の中身を表す

基本的には、下に書いてある「制御プログラム」のことを狭義の意味でOSという。

カーネル (スーパーバイザプログラム)

OSプログラムの中核を担う部分

モノシリックカーネル

カーネル自体に多機能を持たせるアーキテクチャ

マイクロカーネルアーキテクチャ

OSが提供する機能をメモリ管理やタスク管理など最小限の機能に絞る

他の機能はサーバプロセスとして実現する


GNU,GPL

GNU

オペレーティングシステム であり、かつコンピュータソフトウェアの広範囲に渡るコレクション

GPL

GNU プロジェクトのためにリチャード・ストールマンによって作成されたライセンス
GNU Emacs General Public License を一般化

API(アプリケーションプログラムインターフェース)とは

OSがアプリを正常に動かすために、画一化されたマニュアルのこと。

数学でいうところの公式と同じ

✅デバイスドライバ
ハードウェアをOSなどのアプリケーションプログラムによって、制御できるようにするためのソフトウェア

ソフトウェアの保守

是正保守

ソフトウェア製品の引渡し後に発見された問題を
訂正するために行う受身の修正

完全化保守

引渡し後のソフトウェア製品のパフォーマンスや
保守性を向上させるための能動的な修正

機能追加や変更、性能強化、
プログラム文書の改善などを含む

予防保守

引渡し後のソフトウェア製品の潜在的な障害が
運用障害になる前に発見し、是正を行うための修正

適応保守

引渡し後、変化した or してる環境において、
ソフトウェア製品を使用継続できるように
保ち続けるために実施する修正


OSの働き

ジョブ管理

ユーザーがコンピュータに対して出した命令を、効率よく処理するための管理

ジョブ管理で、ユーザーとの仲介をするのがマスタスケジューラ。
ユーザーはマスタスケジューラに対して、ジョブの実行をお願いする

タスク管理

ジョブの一つ一つの細かい内容(タスク)を管理する

実行可能状態
実行状態
待機状態

の3つの状態がある

ディスパッチャー

実行状態のどのタスクを処理するべきかを、CPUに指令するもの
消防局のオペレーターのような役割を果たす

📌タスクスケジューリング

ディスパッチャが、タスクの順序を決める基準

タイムクォンタム

実行→可能 の遷移は、予め決められた時間が経過した時にも行われる
この時間のこと

⚪︎ディスパッチング

可能→実行 に移してもらえること

⚪︎プリエンプション

実行→可能 に移されてしまうこと

優先度の高いものから順に 可能→実行となるため
優先度の低いものは、よくプリエンプションされがち

⚪︎ノンプリエンプション

実行可能になった順番にタスクを実行し、いったん処理を開始したら、終了・中断要求するまで連続して実行する

タスクスケジューリングの方式

✅到着順方式

タスクを順に、「実行可能状態」→「実行状態」に変えていくノンプリエンプティブ

✅処理時間順

処理時間の短いものから順に 〃 変える

✅優先度順方式

優先度の高いタスクから順に 〃 変えるプリエンプティブ

✅ラウンドロビン方式

一定のクォンタムが過ぎたら次の処理に移り、後回し(実行→実行可能)にされる

✅多重待ち行列

ラウンドロビン+優先度

📌マルチプログラミングと割り込み処理

CPUと、入力装置、出力装置で協力し合ってタスクを処理することがマルチプログラミング

効率よく処理するための方法が割り込み処理
時にはタスクを中断したり、元のタスクに復帰することも大切。

割り込みの種類

内部割り込み

実行中のプログラムに起因する割り込み

外部割り込み

実行中のプログラム以外に起因する割り込み

割り込みの緊急度(マスカブル・ノンマスカブル)

◯マスカブル

マスクできる、つまり見ないことにしても良い
無視しても良い、緊急性の低い割り込み

◯ノンマスカブル

マスクできない、つまり見ないことにはできない
無視できない、緊急性の高い割り込み

割り込み処理の例題

①メイン処理と割り込み処理の問題
(メイン処理↔︎割り込み処理)

②CPUとI/O(インプット&アウトプット)のふるまい
遊休時間とは、CPUが動いていない間のI/Oの時間のこと

多重度 計算

例題

複数のクライアントから接続されるサーバがある。このサーバのタスクの多重度が2以下の場合,タスク処理時間は常に4秒である。このサーバに1秒間隔で4件の処理要求が到着した場合,全ての処理が終わるまでの時間はタスクの多重度が1のときと2のときとで、何秒の差があるか

解答

3.サーバー仮想化

仮想化概要

3tier サーバ、ネットワーク、ストレージ→抽象化

目的

・物理的なシステム障害の影響を避ける
・通常は1台しか使用できないOSを、複数使用できるようにする

サーバー仮想化のメリット

・バーチャルマシンで一元管理できる
・サーバーが稼働する時間帯を分散させられるため、鯖落ちリスクが下がる
・コスト(電力・熱量)削減できる
・設置スペースの削減できる

デメリット

・サーバーを1台に集約することで、障害の影響が大きい
・同じ時間帯に集中してしまったら、オーバーコミットにより鯖落ちリスクが上がる



サーバーの型

✅ホスト型(ホステッド型)

複数のVMは、ゲストOSによって制御
その下にホストOSが必要
基本的にテスト用

❌ 動作が重い

(例)
・VMware Workstation Player
・VMware Fusion
・Oracle VM Virtualbox

✅ハイパーバイザー型(ベアメタル型)

複数のVMは、ゲストOSによって制御
その下にホストOSが不要!!!
基本的に業務用

👍 高速・効率よくリソースを使える
ハイパーバイザーが直接ハードウェア上で動くため

👍 OSの脆弱性が、全体に影響しづらい

❌ コストかかる、専門知識必要

(例)
・Vmware ESXi
・Linux KVM
・Microsoft Hyper-V
・Citrix Xen Server
・Red Hat Enterprise Virtualization(RHEV)

✅コンテナ型

複数のコンテナは、ホストOSは必要だが、ゲストOSがいらない!!!

👍簡単にスケールアウト、デプロイ(複製)ができる

👍どの環境(テスト、本番、開発等)でも
同じように動作するので、簡単に移植できる

👍OSカーネルを共有するため起動や終了が高速
リソースの消費も少ない

👍独立性が高い
つまり各コンテナで好きなようにシステムを組める

❌同じOSカーネルを共有するので、セキュリティが心配

❌異なるOSのカーネルを使う場合、制約が生じる
(例えば、WindowsとLinux)

(例)
Docker

・ネスト環境

バーチャルマシンの中で、更にハイパーバイザーをインストールする環境
ただし、リソースの利用効率はあまりよくない


◆ディスクプロビジョニングタイプ

仮想マシン用の記憶領域の、確保方法を決める設定

・シックプロビジョニングeager
100%領域を初期化

・ 〃         lazy
100%のうち一部を初期化。必要な時は、予め指定された量だけ確保

・シンプロビジョニング(thin=薄い)
100%のうち、必要最低限の分だけ初期化。必要な時には、必要最低限の分だけ確保。

👍割り当てた容量が、実際の物理容量よりも多くなる(オーバーコミット)
✖新しいデータを書き込む度に、領域を用意しなければいけないので、待ち時間(オーバーヘッド)がかかる

オーバーコミット

物理リソース以上の容量を与えること

・ストレージ
シンプロビジョニングならできる

・CPU
物理リソースの2~3倍ならできる
※複数のVMの合計では、オーバーコミット可能
 単一のVMに対して     〃    不可能

このように複数のVMがあれば、それだけ多くのCPUが割り当てられる

スナップショット 

仮想マシンの稼働状況を保存しておく機能
(ゲームのセーブデータ機能と同じ)

・vSphere上で1回目に作成したスナップショット
仮想マシンのメモリを含めた(仮想マシンの作動内容が分かる)

このスナップショットに復元すると、仮想マシンはパワーオンの状態だった

・2回目に作成したスナップショット
メモリを含めなかった(仮想マシンの作動内容が分からない)

復元すると、パワーオフ

※バックアップとしては使えないので、データを保存する際は
スナップショット&バックアップの2段構えが良い

クローン

仮想マシンのコピーを作成する機能
クローン元の仮想マシンを正確にコピーしたものを作成する

コピー対象
ゲストOS、インストールしたアプリケーション、ホスト名、IPアドレス、SID(Windows系OSの個体識別情報)

IPアドレスやホスト名が完全に同一のコンピュータが、同じ環境内に存在していると障害が発生する。ゆえに作成したクローンVMは原則起動しないことが求められる

仮想マシンの予備(バックアップ)として作成


テンプレート

仮想マシンの設計図を保存し、その設計図を基に同じ構成の仮想マシンを大量に展開できる機能

電源オフのときのみ、仮想マシンをテンプレートに変えられる

※ただし、IPアドレスやホスト名、SIDなど。重複してはいけない設定値も同じ構成になっちゃう

そこで、ゲストOSのカスタマイズ仕様を用いる

※クローンは、単純に複製したい場合に適する
 テンプレートは、少し設定を変えながら、大量に作成したい場合に適する


◆クラスタリング

複数のサーバーを1つのクラスタとし、以下を実現

・リソースの効率的な利用
負荷がかからないように、
効率的にリソースを利用することができる

・高可用性(HA)を実現
サーバー障害が起こるとファイルオーバーして(後述)
まだ壊れてないサーバに自動的に処理を引き継ぐ

・サーバーを簡単に追加
必要に応じて、クラスタ内でサーバーを追加できる

※HA(high availability)

高可用性のこと
システムが長期間稼働し続けること

◯ハートビート

クラスタにおいて、システムが稼働してるか
確認するための信号

「心臓の音」という意味のハートビートが、
システムの生存確認を表す

◯ファイルオーバー

サーバーダウン時に、
予備のサーバーに切り替わること

◯アドミッションコントロール

フェイルオーバーしてきた仮想マシンに
十分なリソースを割り当てるために
普段のリソース使用量に制限を課す機能


◆パーティショニング

物理・仮想サーバーのリソースをブロック単位に
分割し、あるブロックの障害が他のブロックに
影響しないようにする

◆ライブマイグレーション

仮想サーバを停止させずに物理サーバ間で仮想サーバを移動すること

(例)vMotion


4.主記憶装置(メモリ)

役割

CPUが処理に必要なデータを渡したり、CPUが処理したデータを受けとったりする
作業中の情報はすべてメモリに保存される

特徴

・DRAMがメイン
1バイトごとにアドレスが設定される
保存にはコンデンサが使われる
ただし、定期的にデータを書き込むリフレッシュ動作が必要

※だいたい16GBあれば十分

主記憶装置(メモリ)の性能指標

・容量

容量が多い→作業速度が増える
容量に余裕がある→様々なアプリケーションを同時に動かせる

・規格

メモリがデータを転送する速度などを決める要素
最新だとDDRー5がある
規格が新しければ、より速く処理できる(ただし、容量がそもそも足りていなければ意味ない)

・周波数

1秒間に何回データを送受信するのか、という指標
メモリ(主記憶装置)の周波数とCPUのクロック周波数は同じ値にするのが良い

どちらかに能力に偏りがあれば、能力の高いほうが低いほうに合わせなければならないから、少し宝の持ち腐れになる

✅バッファ

処理・転送速度の異なる二つの装置(メモリ ー ハードウェア間)の差を緩和するための
一時的な記憶領域

メモリに存在する。ハードウェアにも存在する場合もある。

実記憶管理

限られた主記憶(メモリ)の空間を効率よく使うこと

固定区画方式

✅単一区画方式
一つのプログラムしかロードできない

✅多重区画方式
予め区画を決めて、そこにプログラムをロードする
※ただし、区画を分けて生じた余りのスペースは使用できない。ムダとなる

可変区画方式

必要に応じて区画のサイズが変化する

※ただし、終了するプログラムから順に空きが生じる。そのため、断片的にプログラムが残ってしまう(フラグメンテーション(断片化))

解消するためには、プログラムを詰めてあげれば良い(メモリコンパクションもしくは、ガーベジコレクション)

フラグメンテーション

◆外部フラグメンテーション

プログラムロード後に、空き容量が非連続で現れること

◆内部フラグメンテーション

必要以上にメモリ領域が割り当てられ、容量が無駄に余ること

🔸メモリコンパクション

割り当て済みのメモリブロックを移動させ、
フラグメンネーションを減らすこと

OSが自動で行う

仮想記憶

仮想上の、実際よりも広大なメモリ空間を使用して記憶させること

ページング方式とは

プログラムを「ページ」と言う単位に分割して管理する方式。
普通は、「ページテーブル」を参照して、必要なページのみを実記憶に読み込ませる

目的のページが主記憶上にない場合→ページフォルトとなる

主記憶に、補助記憶からページを読み込む

ページイン

この主記憶にページを読み込むこと

ページアウト

実記憶が満杯のとき、既にあるページから何か追い出すこと

※ページアウトが多いと、システム効率が下がる
この現象を「スラッシング」という

📌回数の違い(過去問で出た)

ページフォルト=ページイン≧ページアウト

ページアウトの方式

✅FIFO(first in first out)

最初にページインしたものを追い出し対象にする

✅LIFO(last in first out)

最後に     〃

✅LRU(least recently used)

一番長い間参照されてない  〃

✅LFU(least frequently used)

一番参照された回数が少ない 〃


5.補助記憶装置

HDD(hard disk drive)


SSD

内部にフラッシュメモリが入ってる。

👍機械が入ってないから省電力 & 高速な読み書き

❌HDDに比べて高価 & 書き込み回数に上限あり

ライトアンプリケーション

フラッシュメモリは、
消去と書き込みをブロック単位で行うため、
必要以上に書き込みをしてしまう現象

性能の低下、耐久性の低下


◆フラグメンテーション

※メモリのフラグメンテーションとは意味が異なる

はじめはファイルを書き込んでも、途中から部分的に離れてしまうこの「ファイルが断片化してしまう」状態のこと

調べるには、データの格納状況を確認すれば良い

🔸デフラグ(デフラグメンテーション)

HDDにおいて、
断片化しているファイルを再配置して整理すること

🔸ウェアレベリング

SSDのフラッシュメモリにおける、
フラグメンテーションへの対策

異なるメモリセル、ブロックにデータを均等に
書き込む手法

フラッシュメモリの寿命を伸ばす目的がある


◯ジャーナリング

ファイルが更新された際に、
その変更履歴をログに記録する機能

👍突然ファイルやディスクに対する書き込みが中断されたとき、データの破損・不整合を防ぐ

👍高速に復元できる

❌全てのログをジャーナルに記録するため、
追加の書き込み時にオーバーヘッド(余分なリソース)が発生

ハードディスク 計算問題 例題


サーバーとストレージ(物理もしくは仮想上の補助記憶装置のこと)の接続方法

🔸DAS(Direct attached storage)

サーバに直接ストレージを接続
コンピュータ内部に搭載されているHDD,SSDはすべてDAS形式

🔸NAS(Network attached storage)

ネットワークを経由してストレージに接続

🔸SAN(storage network area)

ストレージ専用のネットワークを経由してストレージに接続

・FC-SAN

サーバとストレージをファイバーチャネルで接続

・IP-SAN

サーバとストレージを、TCP/IPネットワークで接続

※DAFS(Direct access file system)

クラスタ環境に適したファイル共有プロトコル
NASよりも高速・低負荷なデータ転送が可能


※NASとSANの違い


RAID

複数のHDDを1つのドライブのように認識させたり表示させたりする技術

HDDを冗長化できる

✅RAID0(ストライピング)

一つのデータを2台以上のディスクに分散
👍
データ入出力の高速化が図れる
一つでも壊れたらアウト

✅〃1(ミラーリング)

2台以上のディスクに同じデータを書き込む
システムの信頼性を高める
👍
片方壊れても大丈夫
遅い

✅〃5

3台以上(複数)にデータを分散し、パリティ(エラー訂正符号)も同時に生成

(RAID例題)

8Tバイトの磁気ディスク6台を、予備ディスク1台込みのRAID5構成にしたとき、実行データ容量は何Tバイト?

解答:32T

解説
6台中1台は予備→5台
しかし、RAID5はパリティ専用の台があるので、5台のうち1台はパリティで使われる
よって、4台×8T=32T


★主記憶装置 補助記憶装置 違い



HDD,SDD以外の補助記憶装置

ハードディスク以外の補助記憶装置は、簡単に取り除くことができるから、「リムーバブルメディア」と呼ばれる

光ディスク

・CD-ROM、DVD-ROM
Read Only Memory 読み込み(再生)専用

・CD‐R、DVD-R
Recordable 一度だけ書き込める、追記型

・CD‐RW、DVD-RW、DVD-RAM
ReWritable 何度も書き込める、書き換え可能型

光磁気ディスク

レーザー光線と磁気で、データの書き込みをする。
今はあんま見ない

磁気テープ

アクセス速度は遅いが、大容量かつ安価

バックアップ用に使う

フラッシュメモリ(メモリカード、USBメモリなど)

SSDの中に入ってる

EEPROM(メモリのところでやった)の一種を、補助記憶媒体に転用したもの

コンパクトかつ安価→デジカメやケータイの記録メディアに使われる

SDカード


6.RAM・ROM・CD/DVDの種類

⭕️RAM

揮発性メモリ
つまり、電源が切れるとデータが蒸発してしまう

✅SRAM

高価、小容量、読み書きは高速→CPUのキャッシュメモリに使う
フリップフロップ回路を利用する

✅DRAM

安価、大容量→主記憶に使う
情報を記憶するために、コンデンサを用いる

☑️SDRAM

DRAMの中でも、外部バスインターフェイスが一定のロック信号に同期して動作するもの

アクセス速度CPUのレジスタ>SRAM>DRAM

⭕️ROM (読み出しだけのメモリ(リードオンリー))

不揮発性メモリ
つまり、電源を切ってもデータは保持される

✅マスクROM

読み出し専用のメモリ。書き換えはできない

✅PROM

書き換えできる

・EPROM

紫外線でデータを消去

・EEPROM

電気的にデータを消去(EEPROMの中でもフラッシュメモリはブロック単位でデータを消去してから、データを書き換える)

※フラッシュメモリは寿命は長くないので、アクセス箇所をできるだけ分散(ウェアレベリング)させる

⭕️CD

✅CD-R

Rはrecordable
金属薄膜に塗られた有機色素の有無で、反射の度合いを変化させる

✅CD-RW

RWはrewritable
書き換え可能なCD

✅DVD-RAM

アモルファス金属材料を使用
なんと、10万回以上書き換え可能!!!

✅DVD-ROM

読み取り専用DVD

⭕️DVD


7.高速化

キャッシュメモリ、ディスクキャッシュ

メモリはCPUに比べると処理が遅い

なので、CPUとメモリ(主記憶装置)で、頻繁にプログラムを実行すると、待ち時間が発生してしまう

このレジスタ主記憶装置間、主記憶装置磁気ディスク装置間の速度差を和らげるために
頻繁に実行される処理をまとめて、置いておくことで、高速化できるものがキャッシュメモリとディスクキャッシュ

◯パイプライン処理(CPU内)

CPU自体は一つだが…
CPU内のコアを複数
にして(マルチコアにして)
並列に命令を実行し、性能を上げる処理

一つの命令をステージに分けて、ステージをずらす

処理時間を短縮

❌ 分岐命令があると、結果によって次に実行するべき命令が判明するのを待つ必要がある(分岐ハザード)

分岐命令を減らそう!

◯スーパーパイプライン

パイプラインを更に細分化することによって高速化を図る方式

🔸スーパースカラ

パイプライン処理をする際に、
命令を実行する演算器を、ハードウェアによって
動的に割り当てる方式

パイプラインの各ステージを並列に実行することで処理を高速化

🔸VLIW (Very Long Instruction Word)

命令語を長く取り、一つの命令で複数の機能ユニットを同時に制御することによって高速化を図る方式

※ALUとは、CPUの中核的な部分を担う、
基本的な演算処理をする装置


◯MIMD

複数の命令と、それに対応するデータを
それぞれが独立している複数のCPUに振り分けて
並列処理をする方式

◯直接制御方式

CPUが磁気ディスクと主記憶とのデータの受渡しを行う転送方式


●メモリインタリーブ(interleave)(主記憶内)

interleave=中で離れる
主記憶装置の中を複数の独立して動作するグループに分けて

各グループに並列にアクセスし、データの読み書きを高速化する

●メモリマップドI/O

主記憶の入出力専用アドレス空間に入出力装置のレジスタを割り当てる方式

●DMA方式 (Direct Memory Access)

専用の制御回路が入出力装置や主記憶などの間のデータ転送を、CPUを介さずに行う方式


CPUから、主記憶装置へデータをコピーする方式

✅ライトスルー方式

CPUからキャッシュメモリ&主記憶装置に書き込む
👍確実にデータが一致する(データの一貫性、コヒーレンシーが保証される)
❌高速では無い

✅ライトバック方式

CPUからキャッシュメモリにだけ書き込む

キャッシュメモリが満杯になったときに、
初めて主記憶装置に書き込む

👍 高速
❌データが一致しているとは限らない

実効アクセス時間(求めるデータを見つけるまでの時間)の求め方

キャッシュメモリのアクセス時間×ヒット率
+
主記憶装置のアクセス時間×(1-ヒット率)


8.入出力インターフェース

コンピュータと、色んな周辺機器に繋ぐための端子

パラレルインターフェース

複数の線がある端子

✅IDE
昔は「最大2台までのハードディスクを接続できる」ものだった

CD-ROMドライブなどの接続に対応したEIDE(Enhanced IDE)として、最大4台まで接続できるようになる

✅SCSI
デイジーチェーンでつなぐ

末端にはターミネータ(終端抵抗)が必要

シリアルインターフェース

一つの線しかない端子

✅USB

USB1.1→2.0→3.0の順に転送速度が速くなる
※ゆっくり挿入すると、3.0が2.0に誤って認識されることもある

✅IEEE1394

主に情報家電(ハードディスクレコーダなど)や、デジカメなどの機器に使われる

9.接続方法

ネットワーク層では、また別でLANの接続形態について学ぶ
詳細は以下の記事で


✅デイジーチェーン

2つの接続コネクタがあるもの同士を繋ぐこと
(数珠繋ぎ)
👍ハブが不要で、配線がスッキリ
❌周辺機器が多くなると、伝送速度が落ちる

☑️スター接続

☑️ツリー接続

10.ハードウェア

⭕️ディスプレイ

ディスプレイの表示に必要な容量の計算問題

16色表示させるなら、16=2の4乗より、4ビット

256色表示させるなら、256=2の8乗より、8ビット

⭕️プリンタ

種類

✅ドットインパクトプリンタ
印字ヘッドのピンで打ち付けて印字

✅インクジェットプリンタ
印字ヘッドのノズルから、用紙に直接インクをかけて印刷

✅レーザプリンタ
レーザ光線を照射して、そこにトナーが引き寄せられて、用紙に転写する
1インチあたりのドット数と、1分間に印刷できるページ数で、性能を表す

✅3Dプリンタ
熱溶解積層方式などによって、立体物を造形

計算問題(dpi)

dpiは、プリンタの解像度のこと。dot per inch

⭕️その他

チャタリング

機械式のスイッチのオンオフが切り替わる間に、意図しないオンオフが何度も繰り返される現象

ICカード

・RFID (Radio Frequency IDentification)

ID情報を理め込んだRFタグ(ICタグ)から電磁界や電波を用いて情報のやり取りを行うための技術

パッシブタグ(受動タグ)

電池を内蔵せず、リーダー/ライターが発言する電波をエネルギー源として利用して駆動するタグ

リーダー/ライターの電波の一部を反射するときにID情報をのせて返す

自身の電力で電波を発言しなくとも情報をやり取りすることができる。

交範囲は広くても数十センチメートルに制限される
が、安価(10円以下)に製造できる。

アクティブタグ(能動タグ)

電池を内蔵し、自らの電力で電波を発するタグ。

交信範囲は数十メートルから数百メートルと広いがパッシブタグと比較すると価格が高い

※耐タンパ性

タンパ(tamper)とは、「改ざん」
どれだけICチップの情報を改ざんされないかという指標

7セグメントLED

7つのLED +   1つの小数点を表すLED

✅アノードコモン型

・ポート(接続口)から出力される電圧が低い時に光る
・アノード=電子の出発点

✅カソードコモン型

・ポート(接続口)から出力される電圧が高い時に光る
・カソード=電子の到着点


11.ユーザーインターフェース

CUI(character user interface)

コンピュータの操作を文字で行うインターフェース
(基本情報だとあまり出ない)
Linuxとか

GUI(graphical user interface)

コンピュータの操作を視覚的な要素で行うインターフェース
Windowsとか

・ラジオボタン
・チェックボックス
・プルダウンメニュー
・コンボボックス→プルダウンメニューに、手入力できる枠を追加した部品

アイコン

習得性

アイコンの覚えやすさ

(例)ハート=いいね

判読性

図柄の詳細をどれだけ容易に区別できるか

認識性

同じ又は類似したアイコンによる以前の経験に基づいて、どれだけ容易にアイコンを識別できるか

識別性

空間的,時間的又は文脈的に近くに表示された別のアイコンから、与えられたアイコンをどれだけ容易に区別できるか


12.マルチメディア

文字、音声、静止画、動画をまとめて利用できる技術

音声(音声データをデジタル化するには)

✅標本化

音声データを一定間隔で取ること

☑️量子化

標本化で取ったデータを何ビットで表すか決める事

☑️符号化

データを2進数に直す

静止画のフォーマット

SVG(scalable vector graphics)

図形オブジェクトをXML形式で記述するための言語
Webページでの図形描画にも使える

図形の線の形などを数値的に記録し、表現する形式(ベクタ形式)で画像を表示する

PNG(portable network graphics)

色数が多い、圧縮による画質の劣化が少ない
という特徴がある画像フォーマット

CGにおける画像技術

✅クリッピング

画面表示領域にウィンドウを定め、ウィンドウの外側を除いて、内側の見える部分だけを取り出す

✅アンチエイリアシング

ドット絵の端を滑らかに表示するために、できるだけ細かいドットで表すこと

✅レンダリング

物体のデータを画像にする処理

〇レイトレーシング法

陰線・陰面処理を行うためのアルゴリズム
光の反射や屈折、物体の透明度が表現できる

光源から放出され物体に反射して視点に到達する光線(レイ)を、逆に視点から物体へとさかのぼって追跡(トレース)

〇ラジオシティ法

複数の物体が反射した光が
互いを照らした時の輝度を表現

◯隠線・隠面消去

立体を構成する辺のうち、視点からは手前の面などに隠れて見えないはず線を消去すること。

✅テクスチャマッピング

物体の表面に模様などを貼り付けて、
質感を出す手法

✅シェーディング

立体感をつけるため、影をつける処理

✅モーフィング

映像から映像へと、滑らかに変化させること
(俺が動画編集する時によく使うやつ)

✅ポリゴン

多面体を作ったり、曲面を近似するのに用いられる要素

「ポケモンのポリゴンのようなものを作る要素」と覚える

✅ワイヤーフレーム表現

3次元の物体の頂点同士を、縦で結ぶことで形状を表現する手法

この記事が気に入ったらサポートをしてみませんか?