第一章 コンピューター構成要素
レジスタ - Register
- 命令レジスタ
- 命令のデコードを行うために,メモリから読み出した
命令を保持する
。
- 命令のデコードを行うために,メモリから読み出した
- 汎用レジスタ
- 演算を行うために,メモリから読み出した
データを保持する
。
- 演算を行うために,メモリから読み出した
- プログラムカウンター(命令アドレスカウンター)
- 命令を読み出すために,次の命令が格納された
アドレスを保持する
。
- 命令を読み出すために,次の命令が格納された
DRAM - Dynamic Random Access Memory
- コンデンサ(condenser)に電荷を蓄えた状態か否かによって情報を記憶する装置です。集積度を上げることが比較的簡単であるため、大きな記憶容量が必要な主記憶に使用されます。コンデンサの電荷は時間が経つと失われてしまうので、一定間隔で
リフレッシュ(Refresh)操作
を行い続ける必要があります。 - コンデンサに電荷を蓄えた状態か否かによって1ビットを表現する。
主記憶
としてよく用いられる。
SRAM - Static Random Access Memory
- フリップフロップ(Flip-Flop)で構成され,高速であるが製造コストが高い。キャッシュメモリ(Cache memory)などに用いられる。
キャッシュメモリ - Cache Memory
- 主記憶とは異なる半導体
SRAM
を使用した小容量ですが非常に高速にアクセスできるメモリです。 - 主記憶から読み出したデータをキャッシュメモリに
保持し
,CPUが後で
同じデータを読み出すときのデータ転送を高速に行う。 - キャッシュメモリに目的のデータが存在しないと主記憶を探索することになりますが、この時に割込みは発生しません。
- キャッシュメモリは高速(数ナノ秒)ですが、
レジスタ
は更に高速(数ピコ秒)です。 - キャッシュメモリと主記憶では、キャッシュメモリのほうが圧倒的に高速にアクセスできるため、
平均アクセス時間
は「ヒット率が高いほど短く、ヒット率が低いほど長くなる」関係にあります。
メモリインターリーブ - Memory Interleaving
- 物理上はひとつである
主記憶領域
を、同時アクセス可能な複数の論理的な領域(バンク)に分け
、それぞれのバンクに対してデータの読み書きを並列
で行うことにより、メモリアクセスの高速化
を図る技術です。
EEPROM - Electrically Erasable Programmable ROM
- 電気的に消去・再書き込みが可能なROMで、紫外線を必要としません。
- 書き換え回数に制限はあるが、書き込み・消去の単位が細かく、デバイス制御などに使用されます。
マスクROM - Mask ROM
- 製造時にデータが書き込まれる。マイクロプログラム格納用メモリとして用いられる。
- 電源を切っても記憶している内容を保持する性質を持つROM(Read Only Memory)の一種で、特に記録されている内容を
書き換えることができない
メモリのことを指します。集積回路の配線によって記憶情報を構成し、読み出せる内容が半導体製造に用いるフォトマスクによって固定されることから、マスクROMと呼ばれます。
USB - Universal Serial bus
ハブ
を介してツリー
状に機器を接続できるシリアル
インタフェースである。
- USB1.1
- フルスピード
- 12Mbps
- USB2.0
- ハイスピード
- 480Mbps
- USB3.0
スーパースピード
- 5Gbps
- USB3.1
- 10Gbps
DMA - Direct Memory Access - ダイレクトメモリアクセス
- コンピュータと周辺機器とデータのやり取りを制御する伝送路で、ダイレクトメモリアクセスの名称が示すとおり、
入出力装置
とメモリ(主記憶)
との間でCPUを介さず
に直接データを転送する方式です。CPUが行うメモリ制御はDMAコントローラが代行します。CPUが入出力装置の制御を行わなくてもよいため、データ転送中も別の処理を行うことが可能になるため効率化されます。
割込み - Interrupt
- 割込み(Interrupt)は、すぐに対処しなくてはならない問題などがシステムに生じたときに、実行中のプログラムの処理をいったん停止し、優先的に事象の解決を図ることを可能にする仕組みです。
- 複数の割込みの発生に備え,個々の割込み原因には
優先順位
が付けられる。 - 割込み発生時は次の手順で処理が実行されます。
- 割込みが発生すると自動的に特権モード(スーパーバイザモード)に
切り替わる
。 - 割込み処理終了後にもとの命令位置に戻れるように現在のプログラムカウンターの値をスタックに
退避させる
。 - 所定の割込み処理の開始アドレスを取得して、プログラムカウンターに
セットする
。 - 所定の割込み
処理
。
- 割込みが発生すると自動的に特権モード(スーパーバイザモード)に
- 複数の割込みの発生に備え,個々の割込み原因には
- 内部割込み(
実行中のプログラム
が原因で起こる割込み)- 仮想記憶管理での,主記憶に存在しないページへのアクセス
- システムコール命令の実行
- ゼロによる除算
- 演算結果のオーバーフローやゼロによる除算で生じる割込み
- ページフォールト割込み(Page Fault Interrupt)
- プログラムが
主記憶
上に存在しないデータにアクセスしようとしたときに発生する割込みで、内部割込みに分類されます。
- プログラムが
- 外部割込み(内部割込み以外の原因で起こる割込み)
- 入出力動作の終了
- タイマ割込み
- ハードウェアに障害が発生したときの機械チェック割込み
パリティチェック - Parity Check
- データ通信やメモリチェックなどにおいてデータの
ビット誤り
を検出する最もシンプルな方法の一つです。一定長のビット列(通常は7~8ビット)ごとに1ビットの検査ビット(パリティビット)を付加し、検査側が受信データとパリティビットを照合することで誤りを検出します。 - パリティチェックは基本的に
誤り訂正の機能を持たない
ため、誤りが検出されたときには送信側に再送要求を行います(データ通信の場合)。また、誤りが奇数個
であれば検出できますが、偶数個
の誤りは検出できないという特徴があります。
マルチプロセッサ - MultiProcessor
- 複数のプロセッサを
並列
に動作させることで高い処理能力や信頼性を得る形態です。マルチプロセッサシステムは、単一の主記憶を共有し単一のOSによって複数のCPUを制御する密結合型と、CPU毎に独立した主記憶とOSをもつ疎結合型があります。 - 消費電力を抑えながら,プロセッサ全体の処理性能を高められる。
デバイスドライバ - Device Driver - 裝置驅動程式
- コンピュータに接続された
周辺機器を管理・制御する
ための抽象化したインタフェースを、他のアプリケーションソフトウェアに対して提供するためのソフトウェア/プログラムです。単にドライバともいいます。周辺機器を制御するためには機器固有の仕様や設定内容を管理する必要があります。周辺機器の種類は多く、OSにあらかじめ全てのデバイスドライバを搭載しておくことは現実的ではないため、新しい周辺機器を接続するときに、その製品に対応したデバイスドライバを別モジュールとしてOSに組み込む仕組みになっています。
RFID - Radio Frequency Identification
- 情報を埋め込んだRFタグ(
ICタグ
)から電磁界や電波を用いて情報のやり取りを行う技術です。通信可能距離は数cm~数m。 - 非接触型ICカードにはRFIDと同様の技術が用いられていて、現在使われているものには、乗車カード(
Suica
,PASMO
など)や電子マネー(Edyなど)などがあります。
デイジーチェーン接続 - Daisy Chain Connection - 鍊狀連接
- パラレル転送規格のSCSI(スカジー)などで用いられる接続方法で、
PC-周辺機器-周辺機器
というように、PCを起点として複数
の周辺機器を直列で(数珠つなぎのように)接続する方法です。
UV-EPROM - Ultra-Violet Erasable Programmable ROM
- 専用の装置でデータを書き込むことができ,紫外線照射で消去ができる。
インデックス修飾
- 命令語のアドレス部の値 + インデックスレジスタ(指標レジスタ)の値
SDカード
- メモリカードの規格の1つです。携帯電話やスマートフォン、デジタルカメラやゲーム機などの記憶装置として利用されるほか、使いやすく持ち運びしやすいので
USBメモリとともに
手軽な記憶メディアとして使用されています。
フラッシュメモリ(Flash Memory)
- 電気的に書き換え可能であり、電源を切ってもデータが消えない半導体メモリです。
USBメモリ
やSDカード
などが携帯電話、デジタルカメラ、デジタルオーディオプレーヤーなどの記憶媒体として広く普及していて、小型で大容量・安価なことから以前のフロッピーディスクにかわるデバイスとして、手軽なデータの持ち運びにも使われています。- あらかじめ
ブロック単位
で前のデータを消去してから書込むことでデータの書換えを行います。
バス(Bus)
- CPU、メモリ、周辺装置間のデータをやり取りする通路。
- データバス:データそのものを転送。
- アドレスバス:データの格納位置(アドレス)を指定。
- コントロールバス:制御信号を伝達(読み書き命令など)。
入出力制御方式
- プログラム制御方式:CPUが入出力処理に関与し続ける → 処理効率は悪い。
- 割込み制御方式:I/O完了を割込みで通知 → CPUの効率が向上。
- DMA制御方式:CPUを介さず、DMAコントローラがデータ転送を行う。
CPUの性能指標
- CPI(Clock Cycles Per Instruction):命令あたりに必要なクロック数。
- 性能向上には、CPIの低減、クロック周波数の向上、命令数の削減が有効。
- CPU実行時間 = 命令数 × CPI × クロック周期
パイプライン処理
- 命令の取り出し、解読、実行を並列処理することで処理効率を向上。
- 各ステージが独立に動作し、複数命令を同時に処理できる。
- 分岐命令や割込みによりパイプラインが停止(パイプラインハザード)が発生する。
第二章 ソフトウェとマルチディア
OSS - Open Source Software - オーペンソースソフトウェ
- copyright©
- 著作物が創作された時点で自動的に発生する権利。登録の必要はない。
- プログラム、文書、画像、音楽などの著作物に適用され、創作者は他者による**無断使用(複製・改変・再配布)**を禁止できる。
- 「All rights reserved」:すべての権利を著作権者が保持していることを示す。
- 商用・非商用を問わず、著作権のあるものを利用する場合は、ライセンスや許諾が必要。
- copyleft
- 著作権を保持したまま、自由な使用・改変・再配布を認めるオープンソースライセンス。
- ただし、派生物も同じ条件(
同じライセンス
)で配布しなければならない。 - 使用・変更の自由を守るための考え方で、GPL(GNU General Public License)などが代表例。
- 例:LinuxカーネルもGPLに基づき配布されている。
- Open Source License - オープンソースライセンス
- プログラムのソースコードを公開し、再配布・改変を許可するライセンスの総称。著作権は放棄せず、あくまで特定条件のもとで使用・配布を許可する形。
- GPL (GNU General Public License)
- Copyleft型。派生物も同じGPLで配布が必要。
- BSD
- 著作権表示と免責事項を守れば、改変・再配布・商用利用も自由。派生物に別ライセンス適用可。
- MIT
- BSDと似た非常に寛容なライセンス。再配布の自由があり、著作権表示の保持が条件。
スケジューリング - Scheduling
- 到着順方式
- 処理時間順方式
- 優先度順方式
- ランドロビン方式 - Round Robin Scheduling
- OSが各タスクに一定のCPU時間(タイムスライスという)を順番に割り当てていくタスクスケジューリング方式です。実行可能状態の各タスクは待ち行列で管理され、一定時間内に処理が終わらなかったタスクは、待ち行列の最後尾に移され先頭になるのを待つという流れを繰り返します。
- working like a Cycle Queue
仮想記憶管理方式
- ページング方式
- 仮想アドレス空間を「
ページ
」と呼ばれる固定長の区画に分割、同時に主記憶上の区画も同じように固定長に分割して、このページ単位で主記憶と補助記憶装置のアドレス変換を行う方式です。 - ページイン
- 補助記憶装置から主記憶にページを移す
- ページアウト
- 主記憶から補助記憶装置に移す
- ページフォルト - Page Fault
- 実行するページが主記憶に存在しないとページフォールト割込み(
Page Fault Interrupt
)が発生する。ページフォールトが発生すると、ページアウトやページインなどのページ置換え処理が実行されます。
- 実行するページが主記憶に存在しないとページフォールト割込み(
- スラッシング - Thrashing
- Thrashing is a condition in a virtual memory system where the system spends the majority of its time
swapping pages
in and out of memory, rather than executing actual processes, resulting insevere performance degradation
. - 抑えるためには:
- 主記憶を増設する。
- Thrashing is a condition in a virtual memory system where the system spends the majority of its time
- ページ置き換えアルゴリズム
- FIFO - First In First Out
- LRU - Least Recently Used
- LFU - Least Frequently Used
- 仮想アドレス空間を「
コンパイラ - compiler
- 高水準語で記述された
ソースコード
をコンピュータが理解できる機械語
に一括変換する(=コンパイルする)ソフトウェアです。コンパイルの手順は、①字句解析、②構文解析、③意味解析、④最適化の順で行われ、このうち最適化は、実行効率の高い
オブジェクトコードを生成するためにプログラムを再構成する処理です。
Hadoop - ハドゥープ
- ペタバイト級の大規模データの蓄積・処理の分散処理を実現するミドルウェアです。Googleが論文として発表した分散処理フレームワーク「MapReduce」および分散ファイルシステム「Google File System」を基盤技術に、オープンソースとしてJavaで実装したものです。分散ファイルシステムのHDFS(Hadoop Distributed File System)と、分散処理のフレームワークであるHadoop MapReduceの2つから構成されます。
プログラムを翻訳して実行するまでの流れ
- 原始プログラム(Source Program)
- コンパイラ(Compiler)
- 目的プログラム(Object Program)
- リンカ(Linker)
- ロードモジュール(Load Module)
- ローダ(Loader)
- メモリ上で実行(Execution)
スプーリング - Spooling
- 入出力装置とCPUでは動作速度の差が大きく、CPUが処理の途中で入出力命令をだすと、入出力動作が終了するまでの間はCPUの待ち時間が増加し、
スループット(throughout)
が低下してしまいます。スプーリングでは、入出力装置とやり取りするデータを一旦、外部記憶装置などへ転送し、外部記憶装置と入出力装置の間でデータをやり取り方法をとります。これによってCPUは低速な入出力装置の動作完了を待つことなく、次の処理に移れるためスループットの大幅な向上が期待できます。
第三章 基礎理論
- 奇数バリティ
- 30 => 011 0000 => 1011 0000
- 偶数バリティ
- 30 => 011 0000 => 0011 0000
第五章 データベース技術
關鍵字 | 中文說明 | 日文對應・用途 | 使用範例 |
---|---|---|---|
SELECT | 查詢資料 | データの抽出に使う | SELECT * FROM users; |
FROM | 指定資料表 | テーブルを指定 | SELECT name FROM users; |
WHERE | 條件過濾 | 条件を絞り込む | SELECT * FROM users WHERE age > 20; |
GROUP BY | 分組統計 | グループ化 | SELECT dept, COUNT(*) FROM emp GROUP BY dept; |
HAVING | 分組後條件 | グループの後に条件を指定 | HAVING COUNT(*) > 2 |
ORDER BY | 排序 | 並び替え | SELECT * FROM users ORDER BY age DESC; |
INSERT | 插入資料 | データの追加 | INSERT INTO users (name) VALUES ('Tom'); |
UPDATE | 更新資料 | データの更新 | UPDATE users SET age = 25 WHERE id = 1; |
DELETE | 刪除資料 | データの削除 | DELETE FROM users WHERE id = 1; |
CREATE | 建立表格/資料庫 | テーブルやDBの作成 | CREATE TABLE users (id INT, name TEXT); |
DROP | 刪除表格 | テーブルやDBの削除 | DROP TABLE users; |
ALTER | 修改結構 | 構造の変更 | ALTER TABLE users ADD age INT; |
TRUNCATE | 清空資料 | データを一括削除 | TRUNCATE TABLE users; |
JOIN | 合併資料表 | 表の結合 | SELECT * FROM a JOIN b ON a.id = b.a_id; |
UNION | 合併查詢結果 | 複数SELECT結果を結合 | SELECT name FROM a UNION SELECT name FROM b; |
DISTINCT | 去除重複 | 重複行を除く | SELECT DISTINCT name FROM users; |
LIKE | 模糊查詢 | あいまい検索 | SELECT * FROM users WHERE name LIKE 'A%'; |
IN | 條件範圍判斷 | 範囲条件 | SELECT * FROM users WHERE id IN (1,2,3); |
BETWEEN | 值範圍判斷 | 範囲指定 | SELECT * FROM users WHERE age BETWEEN 10 AND 20; |
IS NULL | 判斷是否為 NULL | NULLかどうか判定 | SELECT * FROM users WHERE age IS NULL; |
GRANT | 授權 | 権限を与える | GRANT SELECT ON users TO user1; |
REVOKE | 撤銷授權 | 権限を取り消す | REVOKE SELECT ON users FROM user1; |
COMMIT | 提交交易 | トランザクションの確定 | COMMIT; |
ROLLBACK | 回滾交易 | トランザクションの取り消し | ROLLBACK; |
BEGIN | 開始交易 | トランザクションの開始 | BEGIN; |
EXPLAIN | 查看執行計畫 | SQLの実行計画を確認 | EXPLAIN SELECT * FROM users; |
第七章 網路技術
7.01 網路分類
LAN(Local Area Network)
有線 LAN
- イーサネット(Ethernet)
- IEEE802.3
- CSMA/CD
- 如果偵測到傳輸路徑上有資料衝突(Collision),就會等待隨機時間後重新傳送
無線 LAN
- IEEE802.11
- Wi-Fi
- 2.4GHz
- 為了防止發生電波干涉,在同一區域最好間隔5個頻道來設置路由器(アクセスポイント)
- 5GHz
- 無電波干涉
- 2.4GHz
- SSID
- 最長 32 字元的任意字串,作為網路識別名稱
- ESSID
- 用於識別無線網路的字串
- CSMA/CA
- 若開始通信時偵測到其他資料,會等到其結束並等待隨機時間後再開始通信
WAN(Wide Area Network)
- 適用於地理分散的網路(如企業、城市間連線)
行動通訊服務(Mobile)
- 3G
- 4G (LTE)
- 5G
IoT 專用網路
- LPWA(Low Power Wide Area)
- 傳輸速度較慢,但可低功耗覆蓋數十公里範圍
7.02 通訊協定
OSI 七層模型
階層 | 名稱 | 記憶 | 功能 |
---|---|---|---|
7 | アプリケーション層 | ア | email, web |
6 | プレゼンテーション層 | プ | 加密、解密 |
5 | セッション層 | セ | 管理通訊連線 |
4 | トランスポート層 | ト | TCP / UDP |
3 | ネットワーク層 | ネ | IP 傳輸與路由選擇 |
2 | データリンク層 | デ | 將資料傳送至鄰近裝置 |
1 | 物理層 | ブ | 線路、訊號傳輸 |
OSI × TCP/IP × 協定對照表
OSI 層級 | 功能 | 常見協定 | 對應 Port |
---|---|---|---|
7 | 應用層 | HTTP, FTP, SMTP | 80, 21, 25 |
6 | 表示層 | SSL, TLS | 443 |
5 | 會議層 | NetBIOS | 137~139 |
4 | 傳輸層 | TCP, UDP | - |
3 | 網路層 | IP, ICMP, ARP | - |
2 | 資料連結層 | Ethernet, PPP | - |
1 | 實體層 | - | - |
TCP/IP 協定族
- ARP:地址解析協定(IP → MAC)
- ICMP:控制訊息協定(如 ping)
- PING:Packet Internet Groper(用來測試連線)
- NTP:Network Time Protocol(時間同步)
- RIP:Routing Information Protocol(距離向量路由協定)
- SNMP: Simple Network Management Protocol
- TCP/IPネットワーク上でネットワーク上の機器の情報を収集して、監視や制御を行うためのプロトコルです
- ARP : Address Resolution Protocol
- IP -> MAC
- RARP : Reverse Address Resolution Protocol
- MAX -> IP
- NAT : Network Address Translation :
- One Global IP <-> One Private IP
- NAPT : Network Address Port Translation
- Multi Global IP <-> Multi Private IP
- ATM : Asynchronous Transfer Mode
- 交換方式是一種面向連接的交換技術,使用固定大小的信元(Cell)進行數據傳輸,每個信元的大小為53字節,其中48字節用於數據,5字節用於標頭。ATM技術的主要特點是高效且低延遲,適用於各種傳輸需求,包括語音、視頻、數據等,並能夠保證不同類型流量的品質(QoS,服務質量)。
7.03 網路連線設備
資料傳輸單位
OSI層級 | 對應封包名稱 |
---|---|
應用、表示、會議層 | 無特定名稱 |
傳輸層 | Segment |
網路層 | Packet |
資料連結層 | Frame |
物理層 | Bit |
各層對應設備
OSI層級 | 對應設備 |
---|---|
7~5 | Gateway(閘道器) |
3 | Router / L3 Switch |
2 | L2 Switch / Bridge / Switching Hub |
1 | Repeater(訊號放大器) |
裝置說明
- Repeater:訊號波形的增幅與整形,轉發資料至所有連接 LAN。
- Bridge:連接兩個不同的 LAN。
- Switching Hub:連接多個不同的 LAN。
- L2 Switch:在 Switching Hub 基礎上加入 VLAN 功能。
- Router:連接不同的 LAN / WAN。
- L3 Switch:功能與 Router 相同,可跨 VLAN。
7.04 IP 位址
IP = {0xFF, 0xFF, 0xFF, 0xFF}
7.05 IP 類別與子網遮罩
IP 類別說明
類別 | 結構形式 | 範圍 | 私有 IP 範圍 |
---|---|---|---|
A | {Net, Host, Host, Host} | 1 ~ 127 | 10.0.0.0 ~ 10.255.255.255 |
B | {Net, Net, Host, Host} | 128 ~ 191 | 172.16.0.0 ~ 172.31.255.255 |
C | {Net, Net, Net, Host} | 192 ~ 223 | 192.168.0.0 ~ 192.168.255.255 |
子網遮罩與運算
IP = {255,255,255,240} = {0b11111111,0b11111111,0b11111111,0b11110000}
- Network Address:
{192,168,1,19} & {255,255,255,240} = {192,168,1,16}
- Broadcast Address:
{192,168,1,19} | ~{255,255,255,240} = {192,168,1,31}
CIDR(無類別位址)
- /28 表示子網遮罩有 28 位為 1 → 即 255.255.255.240
- 可用 IP 數 =
2^(32 - x) - 2
7.06 網路管理與應用
網路管理
- SDN(Software Defined Networking):
- 把網路控制邏輯從硬體中抽出並集中管理,使網路更靈活、可程式化、易自動化。
網路應用技術
- MIME:讓電子郵件支援圖片、影片、語音等多媒體格式。
- S/MIME:為電子郵件提供加密與數位簽章。
- SMTP-AUTH:SMTP 的身份驗證機制,確保寄件者是合法使用者。
- VoIP(Voice over IP):
- 透過 IP 網路傳送語音資料的技術。
- VoIP Gateway:負責連接 IP 網路與傳統電話網路。
網路傳輸效率公式
(X秒內實際傳送的位元數 / X秒內理論最大可傳送位元數) × 100%