# (一) 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)](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) ![](https://i.imgur.com/GxdPNit.png) 基底暫存器 - 限制程序能存取的記憶體位置上限 動態載入 - 將未使用的程序放在磁碟中,要使用時才放進 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(四)