# (一) 05-07 (四) 01-02 計算機概論
###### tags: `111-1` `MCU課程筆記`、`計算機概論`、`大一上`
章節
[TOC]
## 0905(一) 第一週 第1堂
### 課程簡介
教科書
```
計算機概論-資訊武功祕笈, 17/e
ISBN 9786263281295
```
分數計算
平常 40% + 期中 30% + 期末 30%
---
### 1-1 計算機科學大事記
- VLSI(Very Large-Scale Integration, 超大型積體電路):元件密度、複雜度較積體電路高
- CUDA(Compute Unified Device Architecture, 統一計算架構):GPU 的驅動程式
- IC(Integrated Circuit, 積體電路)
晶圓(Wafer)由許多塊的晶片、裸晶(Die)組成,裸晶經過切割及處理後,便成為晶片(Chip)
[](https://i.imgur.com/qbaxEvC.png)
##### [5. IC(集積回路)について :半導体の部屋:日立ハイテク](https://www.hitachi-hightech.com/jp/products/device/semiconductor/ic.html)
重要組織
- IEEE(電機電子工程師學會,I triple E)
- ACM(計算機協會, Association for Computing Machinery)
電腦技術演進
```
真空管時期 ->
電晶體時期 ->
積體電路時期 ->
超大型積體電路(VLSI)時期
```
處理元件演進
1. CPU(Central Processing Unit)
2. GPU(Graphics Processing Unit)
3. TPU(Tensor Processing Unit, 張量處理器)
處理元件功能
- CPU:核心數較少,用於各式運算及處理
- GPU:核心數較多(1000~10000 ↑),適合處理大量的運算
---
### 1-2 當代計算機的通用架構
馮紐曼架構(Von Neumann architecture):馮紐曼於 1945 年提出電腦主要有四大子系統,分別為
1\. 記憶體(Memory)
2\. 算數邏輯單元(Arithmetic Logic Unit, 簡稱 ALU)
3\. 控制單元(Control Unit)
4\. 輸入/輸出(Input/Output)
而 ALU 與 Control Unit 組成的元件便是 CPU (Central Processing Unit)
> 終わる
---
## 0908(四) 第一週 第2堂 實習課
### APP Inventor
於課堂上檢查作業,檢查後可選擇上傳模擬器+程式碼畫面或專案的aia檔案
若未檢查則兩者皆須上傳
檔名格式為:`姓名_學號`
> 終わる
---
## 0912(一) 第二週 第3堂
### 2-1 資料型態
數位:不連續變化(兩數之間不存在其他數)的數量表示法
位元(bit):電腦儲存中的最小單位
位元組(byte):由 8 個位元組成。每一個英文字母、數字占用 1 byte,中文多數為 3 byte,不常用的字則為 4 byte 以上。
資料單位 MB、GB、TB 中,B 代表 Byte
- KB(Kilo Byte)
- MB(Mega Byte)
- GB(Giga Byte)
- TB(Tera Byte)
影像數位化
黑白相片 `1 bit/pixel`;灰階相片 `1 byte/pixel`;彩色相片 `3 byte/pixel (RGB)`
---
### 2-2 二進位表示法
二進位可經由分割轉換 16 進位與 8 進位
```
example
binary: 0b101011
ocatl: 101 011 -> 0o53
hexadecimal: 0010 1011 -> 0x2B
```
---
### 2-3 各種進位表示法的轉換
整數十進位轉二進位:連除法
```
example
2 / 19 ... 1
2 / 9 ... 1
2 / 4 ... 0
2 / 2 ... 0
1
--> 10011(binary)
```
小數十進位轉二進位:乘 2 取整數
```
example
1.625 --> 1
0.625
X_____2
1.25 --> 1
0.25
X_____2
0.5 --> 0
X____2
1.0 --> 1
0.0
--> 1.101(binary)
1 + 1/2 + 1/8
```
```
2^(-1) = 1/2
2^(-2) = 1/4
8^(-1) = 1/8
8^(-2) = 1/64
```
---
### 2-4 整數表示法
透過
- 符號大小
- 1 的補數
- 2 的補數
來表示二進位的負數
> 終わる
---
## 0915(四) 第二週 第4堂 實習課
作業:求兩數字和、抽撲克牌
> 終わる
---
## 0919(一) 第三週 第5堂
### 2-4 整數表示法
10進位轉1的補數:
1. 進行二進位轉換(`6 --> 0000 0110`)
2. 檢查計算後的二進位是否溢位
3. 進行補數(`0000 0110 --> 1111 1001`)
10進位轉2的補數:
方法1
1. 進行1的補數(`10 --> 1111 0101`)
2. 將轉換後的值加1(`1111 0101 --> 1111 0110`)
方法2
1. 進行二進位轉換(`10 --> 0000 1010`)
2. 將右邊數來第一個`1`以左的數字進行補數(`0000 1010 --> 1111 0110`)
### 2-5 浮點數表示法
IEEE 754:將符號分為三部分
1. 正負符號(1 bit):1表示負數,0表示正數
2. 指數(8 bit):使用 Excess 127 方法表示,轉為浮點數時先加上127
3. 尾數(23 bit):小數點後的部分
共使用 32 bit 來表示
```
example
4.625
數字為正
--> 正負符號為 0
100.101
= 1.00101 * 2^(2)
--> 指數部分為 127 + 2 = 129 = 1000 0001
1.[001010]
尾數部分為 0010 10... 其餘補0
得結果為
0 10000001 0010 1000...
```
> 終わる
---
## 0922(四) 第三週 第6堂 實習課
作業:畫布、彩色正方形
> 終わる
---
## 0926(一) 第四週 第7堂
### 2-6 ASCII及Unicode
Unicode:有 UTF-8, UTF-16 及 UTF-16 多種衍生,且用於不同系統
---
### 3-1 中央處理器
CPU 暫存器(register)
- 存取速度比主記憶體快
- 用於暫時紀錄指令和資料
- Instruction register(指令暫存器)、Program counter(程式指標暫存器)
匯流排(bus)
- 電子訊號的傳輸通道,用於傳輸控制訊號、位址資訊與資料
- 控制匯流排、位址匯流排、資料匯流排
- 分為 CPU 中心的內部匯流排以及與 I/O 裝置溝通的外部匯流排
### 3-2 主記憶體
von Neumann bottleneck(馮紐曼瓶頸):CPU 與主記憶體間的運算效率會受限於匯流排的傳輸速率
記憶體中的資料(值, value)皆會對應到一個位址(address)
SRAM(Static random access memory, 靜態隨機存取記憶體)
- 速度較快,不須經常更新
- 價格較貴
DRAM(Dynamic randome access memory, 動態隨機存取記憶體)
- 速度較慢,需週期性更新
- 價格較便宜
### 3-3 執行程式
指令的執行步驟:
擷取、解碼、執行
> 終わる
---
## 0929(四) 第四週 第8堂
二進位整數、浮點數與補數的轉換測驗
> 終わる
---
## 1003(一) 第五週 第9堂
### 3-3 執行程式
指令的執行步驟:
擷取、解碼、執行
pipelining(生產線技術):
從 CPU 中擷取(fetch)、解碼(decode)與執行(execute)的區塊皆保持使用中狀態,使資源最大化利用
暫存器只會用於儲存單行指令所需的資料
### 3-4 匯流排與介面
匯流排(bus)
- 為負責在各元件間傳輸訊號的工具
- 分為內部匯流排(負責 CPU 各元件溝通)與外部匯流排(負責與外部設備溝通)
- USB(Universal Serial Bus, 通用序列匯流排)
### 3-5 輸出入電腦設備
就... I/O
---
```
Machine instruction 機械指令
Machine language 機械語言
```
- 機械語言為機械指令的集合
- 機械語言用於管理、控制 CPU 內部元件運作
> 終わる
---
## 1006(四) 第五週 第10堂
作業:年齡判斷
> 終わる
---
## 1010(一) 第六週 雙十連假
## 1013(四) 第六週 第11堂 實習課
作業:計算點擊次數、自行設計應用程式
> 終わる
---
## 1017(一) 第七週 第12堂
### 3-3 執行程式
機械指令
1. Data Transfer(資料搬動指令)
2. Arithmetic Logic(算數/邏輯指令)
3. Control(控制流程指令)
機械指令由運算子(ex LOAD, STORE, ADD...)和運算元(ex 記憶體位址、暫存器編號)組成
example
```
0x3 0x5 0x4 0x7
↓ ↓
Op-Code Operand
```
---
程式執行步驟
1. 擷取(Fetch) - 從記憶體擷取指令,儲存至指令暫存器中
2. 解碼(Decode) - 查詢機械指令的運算子指令表
3. 執行(Execute) - 執行指令
> 終わる
---
## 1020(四) 第七週 第13堂 實習課
作業:複選盒與對話框 — 興趣調查、BMI 計算
> 終わる
---
## 1024(一) 第八週 第14堂
### 4-1 作業系統簡介
- 核心(kernal):常駐在記憶體中的程式
- 開機(boot)時會將非常駐程式從硬碟載入至記憶體
- 作業系統五大工作:CPU 管理、記憶體管理、檔案管理、周邊設備管理、程序(Process)管理
- 作業系統負責維持 CPU 持續運作、管理記憶體以避免衝突、使 Process 共用資料。
- 當記憶體空間不足時,會只執行部分程式,未載入的部分則暫時留在硬碟內
- 程序有執行時間的限制,若有未完成的部分,會將結束前的狀態儲存在程序控制表(PCB, Process Control Block)上
> 終わる
---
## 1027(四) 第八週 第15堂 實習課
小考
> 終わる
---
## 1031(一) 第九週 段考週
> 終わる
---
## 1203(四) 第九週 段考週
> 終わる
---
## 1107(一) 第十週 第16堂
### 4-2 各類作業系統
#### 批次系統(batch system)
依序、逐一執行每個程序
#### 多元程式規劃系統
為程序設定 產生、就緒、執行、等待、結束 五個狀態,讓 CPU 保持啟用
- 工作排班:將儲存裝置的工作池內的程序排到記憶體中(較為簡略)
- 處理器排班:將記憶體內的程序放到處理器執行(較為細緻)
#### 分時系統
CPU 在短時間內在多個程序間切換
#### 個人電腦系統
MacOS 為第一個圖形化介面的 OS
#### 多處理器系統
多個處理器能共用周邊設備及共享電腦資源
#### 分散式系統
Web Service
---
多元程式規劃系統:事件觸發
分時系統:時間觸發
> 終わる
---
## 1110(四) 第十週 第17堂 實習課
作業:點餐系統(清單選擇器、下拉選擇器、清單顯示器)
> 終わる
---
## 1114(一) 第十一週 第18堂
### 4-2 各類作業系統
#### 分散式系統
Web Service
#### 即時系統
具容錯機制
---
### 4-3 CPU 排班
- 不可搶先排班
程序除非提前結束或等待,否則 CPU 不會被釋放
- 可搶先排班
死結 / 卡死(Deadlock)
具有獨佔性的資源被處於等待狀態的程序占用
---
#### 排班演算法的效能評估標準
1. CPU 使用率
2. 產能
3. 等待時間:程序在就緒狀態的時間是否過長
4. 回復時間:程序所花費的總時間
---
#### 排班演算法
- 先到先處理(First Come First Servem, FCFS)
- 最短工作先處理(Shortest Job First, SJT)
- 減少小程序的等待時間
- 提高平均效能
- 難以準確評估程序所需的時間
- 優先權排班(Priority Scheduling, PS)
- 為程序標上優先順序
飢餓(Starvation)
當高優先權的程序不斷進入就緒佇列,會導致優先權低的程序永遠無法使用 CPU
- 依序循環排班
- 加入執行時間的限制 — 間隔時間
---
### 4-4 記憶體管理
1. 記憶體管理:對記憶體分割以用於多個程序
2. 記憶體位址定位:將邏輯位址(logical address)映射(mapping)到實際位址(physical address)
3. 記憶體保護與共享:保護系統記憶體不被破壞
> 終わる
---
## 1117(四) 第十一週 第19堂 實習課
作業:for 迴圈 99 乘法表、while 迴圈產生亂數
> 終わる
---
## 1121(一) 第十二週 第20堂
### 4-4 記憶體管理
- 記憶體位址定位:將邏輯位址(logical address)映射(mapping)到實際位址(physical address)

基底暫存器
- 限制程序能存取的記憶體位置上限
動態載入
- 將未使用的程序放在磁碟中,要使用時才放進 memory
覆蓋
- 在原有的已使用完畢,且不再使用的部分寫入新的指令
置換
- 將重要性較低的程序放至 disk 中。會搭配排班策略使用
### 4-5 檔案系統
1. 檔案
2. 目錄結構
### 4-6 熱門作業系統介紹
### 4-6 行動裝置作業系統
---
### 5-1 電腦網路的用途
1960 年代為軍事、研究用途而發展
封包交換(packet switching)
- 將資料切成小片段後,再逐一傳輸
### 5-2 電腦網路的架構
1. 依線路連接方式分類
1. 匯流排 bus
2. 環狀 ring
3. 星狀 star
4. 網格 mesh
2. 依網路提供者
1. 主從式架構(client-server)
- 目前主流網路服務採用方式
2. 同儕式架構(peer-to-peer)
- P2P 服務
3. 依網路建置規模
1. LAN(Local Area Network, 區域網路)
- 涵蓋規模最小的架構
2. WAN(Wide Area Network, 廣域網路)
- 跨城市、跨國的網路
3. MAN(Metropolitan Area Network, 都會網路)
> 終わる
---
## 1124(四) 第十二週 第21堂 實習課
作業:string reverse print、算數遊戲
> 終わる
---
## 1128(一) 第十三週 第22堂
### 5-3 傳輸媒介
#### 電話線 RJ-11
- 電話撥接、ADSL
- 因原本用來傳送類比訊號(聲音),故須將數位訊號轉為類比訊號後才能傳送
- 成本低廉
#### 同軸電纜(電視線纜)
- 速度可達 100 Mbps
- 成本較高
#### 雙絞線 RJ-45
- 區域網路內常見線材
- 速度可達 10 Gbps
#### 光纖
- 速度最快,距離最長
- 成本最高
- 單模
- 距離可達數千公里
- 速度可達 40 Gbps
- 成本較高
- 雙模
- 距離可達 2000 公尺
- 速度可達 10 Gbps
- 成本較低
#### 電磁波 IEEE 802.11
- 各國有不同頻段規劃,故外國的無線設備可能無法通用
### 5-4 OSI 與 TCP/IP 模型
OSI model
```
Application Layer 應用層 Layer 7
Presentation Layer 表達層 Layer 6
Session Layer 交談層 Layer 5
Transport Layer 傳輸層 Layer 4
Network Layer 網路層 Layer 3
Data Link Layer 資料連結層 Layer 2
Physical Layer 實體層 Layer 1
```
- 訊息會從表層(應用層)傳至底層(實體層),並經由線路傳輸後再傳回表層
- 訊息向底層傳輸時,會在每一層加上該層資訊的 Header
- 向表層傳輸時,則會拆開該層所屬的 Header 並處理
```
User --> Layer 7 -> Layer 6, 5... Layer 1 ->
>>> 網 路 >>> 線 路 >>>
Layer 1 -> Layer 2, 3... Layer 7 ---> Server
```
---
#### layer 7:Application Layer 應用層
- 與使用者接觸的層
常見協定(Protocol)
Email:SMTP、POP、IMAP
- Simple Mail Transfer Protocol, 簡易郵件傳輸協定
- 將 mail 從 PC 傳至 Server、從 Server 轉送至另一 Server
- Post Office Protocol, 郵局協定
- 將 mail 從 mail server 下載到 PC 上及閱讀
- Interactive Mail Access Protocol, 交談式郵件存取協定
- 讓使用者登入 mail server 並讀取及管理電子郵件
Web:HTTP
- Hyper Text Transfer Protocol
Stream:RTSP
- Real Time Stream Protocol
BBS:TELNET
---
#### layer 6:Presentation Layer 表達層
- 負責將資料以標準化的形式傳送
---
#### layer 5:Session Layer 交談層
- 負責建立對話(通道),以用來處理多種用途
---
#### layer 4:Transport Layer 傳輸層
- 選擇資料傳輸的方法
常見協定
- TCP、UDP
- Transmission Control Protocol, 傳輸控制協定
- 具可靠性的傳輸方式
- User Datagram Protocol, 使用者資料包協定
---
#### layer 3:Network Layer 網路層
常見協定
- IPv4
- Internet Protocol version 4
- IPv6
- Internet Protocol version 6
---
#### layer 2:Data Link Layer 資料連結層
常見協定
- IEEE 802.11(無線網路協定)
- IEEE 802.3(有線網路協定)
- ATM
- Ethernet
MAC 位址
---
#### layer 1:Physical Layer 實體層
---
### 參考資料
#### 5-4 OSI 與 TCP/IP 模型
- [[Day10] HTTP好不容易才弄懂,TCP協定又是什麼? - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天](https://ithelp.ithome.com.tw/articles/10298029)
- [網路通訊輕鬆聊 :: 2021 iThome 鐵人賽](https://ithelp.ithome.com.tw/users/20128159/ironman/4321)
- [TCP/IP vs OSI,網際網路中的協議模型 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天](https://ithelp.ithome.com.tw/articles/10266168)
- [TCP/IP,網際網路的基礎通訊架構 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天](https://ithelp.ithome.com.tw/articles/10267704)
- [菜園角耕耘田地: [網際網路] 乙太網路封包格式(MAC Frame Format)](https://bryceknowhow.blogspot.com/2013/12/mac-frame-format.html?m=1)
- [網路基本概念](http://www.nex1.com.tw/old_version/discussion/discussion_09.htm)
- [網路的架構&各種應用 :: 2022 iThome 鐵人賽](https://ithelp.ithome.com.tw/users/20151135/ironman/5100)
- [軟體工程師面試準備作業. 網路 TCP/IP | by Yu-Pu Wu | Midnight Engine Room | Medium](https://medium.com/midnight-engine-room/%E8%BB%9F%E9%AB%94%E5%B7%A5%E7%A8%8B%E5%B8%AB%E9%9D%A2%E8%A9%A6%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD-8f77052d4ba2)
#### layer 7:Application Layer 應用層
- [[Day08] 天天上網看到的HTTP是甚麼? Web開發初學者必學!!! - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天](https://ithelp.ithome.com.tw/articles/10296386)
- [[Day11] 看懂常見HTTP的狀態訊息404?500? - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天](https://ithelp.ithome.com.tw/articles/10298091)
- [HTTP基本介紹. WWW | by 陳品宏 | Medium](https://medium.com/@lion6396643/http%E5%9F%BA%E6%9C%AC%E4%BB%8B%E7%B4%B9-42fcf9333285)
#### layer 6:Presentation Layer 表達層
#### layer 5:Session Layer 交談層
#### layer 4:Transport Layer 傳輸層
#### layer 3:Network Layer 網路層
- [理解網際網路協定(三):何謂「子網路遮罩」,什麼又是「預設閘道」? - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天](https://ithelp.ithome.com.tw/articles/10272208)
- [學習日誌十:NAT(網路位址轉譯)與Subnet Mask(子網路遮罩) | by Chun-Li 春麗 | 彼得潘的 Swift iOS App 開發教室 | Medium](https://medium.com/%E5%BD%BC%E5%BE%97%E6%BD%98%E7%9A%84-swift-ios-app-%E9%96%8B%E7%99%BC%E6%95%99%E5%AE%A4/%E5%AD%B8%E7%BF%92%E6%97%A5%E8%AA%8C-%E5%8D%81-nat-subnet-mask-a5abe27b44dd)
- [深入了解IP位址與子網路遮罩 | 網管人](https://www.netadmin.com.tw/netadmin/zh-tw/technology/D5162EE38674405EADB022E0802A05B2)
#### layer 2:Data Link Layer 資料連結層
- [[網路] 淺談 ARP (Address Resolution Protocol) 運作原理 | Relk's 工作手札](https://blog.downager.com/2013/07/03/%E7%B6%B2%E8%B7%AF-%E6%B7%BA%E8%AB%87-ARP-Address-Resolution-Protocol-%E9%81%8B%E4%BD%9C%E5%8E%9F%E7%90%86/)
- [Introduction to Computer Networks - IEEE 802.3 乙太網路 (Ethernet) - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天](https://ithelp.ithome.com.tw/articles/10290330?sc=rss.qu)
#### layer 1:Physical Layer 實體層
---
## 1201(四) 第十三週 第23堂 實習課
作業:string reverse print、算數遊戲、日期格式化
> 終わる
---
## 1205(一) 第十四週 第24堂
### 5-5 常見的網路設備
### 5-6 電信網路
### 5-7 無線網路
### 6-1 網際網路
---
### 6-2 資料連結層
### 6-3 網路層
IP Information
IPv4 位址數:$2^{32}$ (0.0.0.0 ~ 255.255.255.255, $2^{8\times4}$)
IPv6 位址數:$2^{128}$
虛擬IP技術:解決 IPv4 下位址數量不足的問題
```
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.16.255.255
192.168.0.0 ~ 192.168.255.255
```
網路路由(routing)
藉由路徑演算法計算路徑
### 6-4 傳輸層
識別封包在電腦內部的傳輸。
使用連結埠(Port)識別連線所屬的應用程式
常見協定
- TCP、UDP
- TCP:連結導向
- UDP:無連結導向
### 6-5 應用層
### 6-6 網際網路的基本設定與傳輸方式
---
## 1208(四) 第十四週 第25堂 實習課
作業:樂透號碼產生器
> 終わる
---
## 1212(一) 第十五週 第26堂
### 8-1 資訊安全的基本原則
機密性:資料不得被未經授權者取得,即確保資料能正確的被存取。
完整性:資料在傳輸、儲存的過程中不會被未經授權的篡改
可用性:在取得授權後可不受影響的讀取、使用資料,保持可利用的狀態。
### 8-2 資料機密性
對稱式金鑰:使用同一組密碼加解密
非對稱式金鑰:使用不同組密碼加解密
---
## 1215(四) 第十五週 第27堂 實習課
作業:指定條件列印倍數、骰子遊戲
> 終わる
---
## 1219(一) 第十六週 第28堂
由於網路的運作複雜,所以需要利用 OSI model 的分層機制簡化流程
又因為傳輸時所需的必要資訊(header)只能在各層使用、加入,所以
不能把 header 合併為一層。
> 終わる
---
## 1222(四) 第十六週 第29堂 實習課
小考
> 終わる
---
## 1226(一) 第十七週 第30堂
## 1229(四) 第十七週 第31堂 實習課
## 0102(一)
## 0105(四)