111 年 國立成功大學工程科學系碩士班乙組《計算機概論》

📄 試題原卷 免費註冊後即可對照原始考卷 PDF免費註冊

第 1 題20 分

Programs of high-level programming languages must be translated into machine
languages before they can be executed in different computer platforms. What are the
major types of software that can translate a high-level language program into an
executable binary file or can execute the high-level language program directly in a
computer platform? Please describe their major differences.

登入後即可作答並保存紀錄。

這一題的完整詳解

本題主要在探討程式語言翻譯與執行的機制,核心概念是編譯器(Compiler)與直譯器(Interpreter)的差異。

高階程式語言(High-level programming languages)需要被轉換成機器語言(Machine language)才能在電腦上執行。這個轉換過程是由兩種主要的軟體來完成:編譯器(Compiler)和直譯器(Interpreter)。

  1. 編譯器 (Compiler)

    • 功能: 編譯器會將整個高階語言的原始碼一次性地讀取、分析,並轉換成對應的機器碼(或稱為目標碼,Target Code),然後儲存成一個獨立的可執行檔(Executable file)。
    • 執行方式: 產生可執行檔後,使用者可以直接執行這個檔案,電腦的處理器就能直接理解並執行這些機器碼。原始碼本身不需要在執行時被翻譯。
    • 優點:
      • 執行速度快:因為程式碼已經被完全翻譯成機器碼,執行時的轉換開銷很小。
      • 最佳化:編譯器通常會進行程式碼最佳化,使得產生的機器碼執行效率更高。
      • 偵錯:編譯階段可以偵測出許多語法錯誤。
    • 缺點:
      • 開發週期較長:每次修改原始碼後,都必須重新編譯一次才能產生可執行檔。
      • 跨平台性:編譯產生的機器碼通常是特定於某個作業系統和硬體架構的,要在不同平台上執行,需要重新編譯。
    • 常見語言: C, C++, Java (編譯成位元組碼後由 JVM 直譯或 JIT 編譯), Go, Swift.
  2. 直譯器 (Interpreter)

    • 功能: 直譯器會逐行(或逐個語句)讀取高階語言的原始碼,並立即將其翻譯成機器碼(或中間碼),然後執行。它不會產生一個獨立的可執行檔。
    • 執行方式: 程式執行時,直譯器會實時地進行翻譯和執行。原始碼必須在每次執行時都經過直譯器處理。
    • 優點:
      • 開發速度快:修改程式碼後可以立即執行,無需等待編譯過程,有利於快速開發和測試。
      • 跨平台性佳:只要目標平台上安裝了對應的直譯器,同一份原始碼就可以在不同平台上執行。
    • 缺點:
      • 執行速度慢:因為每次執行都需要即時翻譯,相較於編譯型語言,執行效率較低。
      • 需要直譯器:程式的執行依賴於直譯器本身的存在。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 2 題20 分

You may often hear of cache memory in hardware devices somewhere and sometime in
your computer science studies.
a. Please describe what is a cache memory? What are its major functionalities?
b. What are cache memories usually made of? What are the major differences between
cache memories and ordinary DDR main memories?

登入後即可作答並保存紀錄。

這一題的完整詳解

本題探討快取記憶體(Cache Memory)的概念、功能以及與主記憶體(DDR Main Memory)的區別。

核心觀念: 快取記憶體是為了彌補 CPU 處理速度與主記憶體存取速度之間巨大差距而設計的高速緩衝記憶體。

a. 快取記憶體是什麼?其主要功能是什麼?

  • 定義: 快取記憶體(Cache Memory)是一種容量較小但速度極快的小型記憶體,它介於 CPU 和主記憶體(RAM)之間。

  • 主要功能:

    1. 儲存常用資料: 快取記憶體儲存 CPU 最近使用過或最有可能在不久的將來使用的資料和指令。
    2. 縮短存取時間: 當 CPU 需要存取資料時,會先檢查快取記憶體。如果資料在快取中(稱為「快取命中」,Cache Hit),CPU 就能以極快的速度取得資料,大大縮短了存取時間。
    3. 提高整體系統效能: 透過減少 CPU 等待記憶體的時間,快取記憶體顯著提高了電腦的整體執行速度和效能。

    快取記憶體的運作原理是基於「局部性原理」(Principle of Locality):

    • 時間局部性 (Temporal Locality): 如果一個資料項目在某個時間點被存取,那麼在不久的將來它很可能被再次存取。
    • 空間局部性 (Spatial Locality): 如果一個記憶體位置被存取,那麼它附近的其他記憶體位置也很可能在不久的將來被存取。
      快取記憶體透過將一塊記憶體區域的資料一次性載入,來利用空間局部性,並將最近使用的資料保留,來利用時間局部性。

b. 快取記憶體通常由什麼製成?快取記憶體與普通 DDR 主記憶體之間的主要差異是什麼?

  • 製成材料: 快取記憶體通常由 SRAM (Static Random-Access Memory) 製成。SRAM 的特點是速度非常快,且不需要像 DRAM 那樣頻繁地進行重刷新(Refresh)操作,因此可以提供更快的存取速度。
  • 與 DDR 主記憶體的差異:
    1. 速度 (Speed):
      • 快取記憶體 (SRAM): 速度極快,存取延遲非常低(通常在幾奈秒內)。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 3 題20 分

The URL (Uniform Resource Locator) is used for the World Wide Web resources
addressing. A formal URL may contain up to 7 components. Please invent an URL with 7
components, identify the name of each component, and give a full description on the
purpose of each component.

登入後即可作答並保存紀錄。

這一題的完整詳解

本題要求 invent 一個具有 7 個元件的 URL,並解釋每個元件的名稱及其用途。這主要是在考察對 URL 結構的理解。

URL (Uniform Resource Locator) 是一個用於指定網際網路資源(如網頁、文件、圖片等)的標準格式。一個完整的 URL 通常包含以下幾個部分,它們由特定的分隔符號隔開。一個標準的 URL 結構為:

scheme://user:password@host:port/path?query#fragment

雖然這看起來有 7 個部分,但 user:password@ 和 :port 部分是可選的,且 query 和 fragment 也不是所有 URL 都會包含。為了構造一個包含最多 7 個元件的 URL,我們可以包含所有常見且必要的元件。

Invented URL:
https://www.example.com:8080/path/to/resource?id=123#section5

現在,我們來分解這個 URL 並解釋每個元件:

  1. Scheme (或 Protocol)

    • 名稱: https
    • 目的: 指定存取資源所使用的協定。https 代表超文字傳輸安全協定(Hypertext Transfer Protocol Secure),它是在 HTTP 的基礎上加入了 TLS/SSL 加密,用於安全地傳輸資料。常見的還有 http (HTTP), ftp (File Transfer Protocol), mailto (Email), file (本地檔案) 等。
  2. Authority (主機名稱與認證資訊)
    Authority 部分本身可以再細分,但嚴格來說 Authority 是一個整體。在這裡,我們將其分解為更細緻的部分來湊足 7 個元件,通常 host 是 Authority 的核心。如果包含使用者資訊和埠號,Authority 的結構是 [userinfo@]host[:port]。

    • User Info (使用者資訊)

      • 名稱: (在此範例中省略了 user:password,但可以想像成 user:password@)。如果包含,則會是 user:password@。
      • 目的: 提供存取資源所需的驗證資訊,如使用者名稱和密碼。這在需要登入才能存取的資源時使用,但出於安全考量,這種用法已不常見,通常由獨立的登入機制處理。
    • Host (主機名稱)

      • 名稱: www.example.com
      • 目的: 指定資源所在的伺服器或主機的名稱或 IP 位址。www 是子網域,example 是網域名稱,.com 是頂級網域(Top-Level Domain, TLD)。DNS (Domain Name System) 負責將主機名稱解析為 IP 位址。
    • Port (埠號)

      • 名稱: :8080
      • 目的: 指定伺服器上用於接收請求的特定網路埠。如果省略,則會使用協定預設的埠號(例如 HTTP 是 80,HTTPS 是 443)。8080 是一個常用的非標準埠號,常被用於開發或測試環境。
  3. Path (路徑)

    • 名稱: /path/to/resource
    • 目的: 指定伺服器上資源的具體位置,類似於檔案系統中的目錄結構。它從根目錄 / 開始,可以包含多個層級的目錄和最終的資源名稱。
  4. Query (查詢字串)

    • 名稱: ?id=123
    • 目的: 向伺服器傳遞額外的參數或查詢條件。它以問號 ? 開始,後面跟著一系列鍵值對(key-value pairs),鍵和值之間用等號 = 分隔,不同的鍵值對之間用 & 分隔(在此例中只有一對)。伺服器端會解析這些參數來處理請求。
  5. Fragment (片段識別符)

    • 名稱: #section5
    • 目的: 指示瀏覽器在載入資源後,直接跳轉到頁面中的特定部分或片段。它以井號 # 開始。這部分資訊通常由瀏覽器處理,不會傳送給伺服器。

符合 7 個元件的 URL 結構:

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 4 題20 分

Computer system backup is vital for system recovery from various disasters, like fires,
earthquakes, and crashes. Popular methods include either local or remote system backup.
If you are supervising some system servers, please make and describe your plans for
backing up the server systems locally and remotely.

登入後即可作答並保存紀錄。

這一題的完整詳解

本題主要考察對電腦系統備份策略的理解,特別是針對伺服器系統的本地和遠端備份計畫。

核心觀念: 備份是為了在發生資料丟失事件(如硬體故障、人為錯誤、惡意攻擊、自然災害)時,能夠恢復系統和資料,確保業務連續性。

針對伺服器系統的備份計畫,需要考慮以下幾個關鍵要素:

  • 備份範圍 (What to Backup): 需要備份哪些資料?是整個系統映像(Image Backup),還是特定的檔案和資料庫(File-level Backup)?
  • 備份頻率 (How Often): 備份多久執行一次?(例如,每日、每週、每小時)
  • 備份類型 (Backup Type): 是完整備份(Full Backup)、增量備份(Incremental Backup)還是差異備份(Differential Backup)?
  • 備份目的地 (Where to Backup): 備份資料儲存到哪裡?(本地磁碟、NAS、雲端儲存)
  • 備份策略 (Strategy): 如何結合本地和遠端備份?如何進行驗證和恢復測試?
  • 保留策略 (Retention Policy): 備份資料需要保留多久?(例如,保留最近 7 天的每日備份,1 個月的每週備份,1 年的每月備份)

以下是一個針對伺服器系統的本地和遠端備份計畫描述:

目標: 確保所有關鍵伺服器(如 Web 伺服器、資料庫伺服器、應用伺服器、檔案伺服器)的資料和系統配置能夠在發生災難時快速恢復,最大限度地減少停機時間和資料損失。

備份範圍:

  1. 系統映像 (System Image): 對於關鍵伺服器,定期進行完整的系統映像備份,以便在硬體故障或作業系統損壞時能快速恢復整個伺服器環境。
  2. 關鍵檔案和資料夾: 包括應用程式設定檔、網頁內容、使用者上傳的檔案等。
  3. 資料庫 (Databases): 對於資料庫伺服器,進行專門的資料庫備份(如 SQL Server 的完整備份、交易記錄備份),確保資料的一致性和可恢復性。
  4. 日誌檔 (Log Files): 重要的應用程式和系統日誌,用於事後分析。

備份頻率與類型:

  • 資料庫:
    • 交易記錄備份 (Transaction Log Backup): 針對 SQL Server 等支援,每 15-30 分鐘執行一次(取決於資料變動頻率),以實現近乎即時的恢復點目標 (RPO)。
    • 每日完整備份 (Daily Full Backup): 每天一次,作為基礎。
    • 每小時差異備份 (Hourly Differential Backup): 每天執行數次,備份自上次完整備份以來變動的資料。
  • 檔案伺服器和應用程式資料:
    • 每日增量備份 (Daily Incremental Backup): 每天一次,只備份自上次任何類型備份(完整、差異或增量)以來變動的資料。
    • 每週完整備份 (Weekly Full Backup): 每週末一次,建立一個新的備份週期基礎。
  • 系統映像:
    • 每月完整映像備份 (Monthly Full System Image): 每月一次,確保系統的完整恢復能力。

備份目的地:

  1. 本地備份 (Local Backup):

    • 目的: 提供快速的資料恢復能力,用於應對常見的檔案損壞、誤刪除或單一伺服器故障。
    • 策略:
      • 使用專門的備份儲存裝置,如 NAS (Network Attached Storage),或內部的大容量硬碟陣列。
      • 將備份資料儲存在與生產伺服器不同的物理設備上,但位於同一網路內。
      • 配置足夠的儲存空間來保留預定的備份副本(例如,保留 7 天的每日增量備份 + 4 週的每週完整備份)。
  2. 遠端備份 (Remote Backup):

    • 目的: 提供災難恢復能力,應對火災、地震、竊盜等導致整個本地資料中心毀滅的情況。
    • 策略:
      • 異地儲存 (Off-site Storage): 將備份資料傳輸到另一個地理位置的儲存點。這可以是:
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 5 題20 分

One's complement scheme was once used in computer systems for arithmetic operations
of signed integer numbers. But two's complement becomes the most common method of
representing signed integers on computers today.
a. Copy the table below and fill in the decimal values corresponding to the bits pattern
of the left most column in the table.
Bits
(one byte)
Unsigned
Value
0000 0000
0000 0010
0111 1111
1000 0000
1000 0010
One's
Complement Complement
b. According to the results above, explain why the range of the two-byte integers used in
the computer is -32768 to 32767 when two's complement scheme is used?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查三種整數表示法:

  1. 無號整數(Unsigned):每一個位元都表示數值,nn 位元可表示 00 到 2n−12^n-1。
  2. 一補數(One’s complement):
    • 最高位元為 00:表示非負數,直接轉換。
    • 最高位元為 11:除最高位元外,其餘位元取反後得到數值大小,結果為負數。
    • 具有正零與負零兩種表示法。
  3. 二補數(Two’s complement):
    • 最高位元為 00:直接轉換。
    • 最高位元為 11:所有位元取反後再加 11,所得數值大小取負號。

對 nn 位元二補數而言,其數值範圍為:

−2n−1 到 2n−1−1-2^{n-1}\ \text{到}\ 2^{n-1}-1

解題方法

先將每組位元視為一般二進位數,得到無號值;若最高位元為 11,再依一補數或二補數規則求出帶符號的數值。

各位元模式計算

0000 00000000\ 0000

最高位元為 00,三種表示法皆為:

00

0000 00100000\ 0010

二進位轉十進位:

0×27+⋯+1×21+0×20=20\times 2^7+\cdots+1\times 2^1+0\times 2^0=2

最高位元為 00,因此一補數與二補數也都是:

22

0111 11110111\ 1111

二進位轉十進位:

26+25+24+23+22+21+20=64+32+16+8+4+2+1=1272^6+2^5+2^4+2^3+2^2+2^1+2^0 =64+32+16+8+4+2+1=127

最高位元為 00,因此一補數與二補數也都是:

127127

1000 00001000\ 0000

無號值為:

27=1282^7=128

一補數:最高位元為 11,其餘位元取反:

1000 0000⟶0111 11111000\ 0000 \longrightarrow 0111\ 1111

因此數值為:

−127-127

二補數:先取反再加 11:

1000 0000⟶0111 1111+1=1000 00001000\ 0000 \longrightarrow 0111\ 1111+1 =1000\ 0000

所得大小為 128128,因此數值為:

−128-128

1000 00101000\ 0010

無號值為:

27+21=128+2=1302^7+2^1=128+2=130

一補數:取反得到:

1000 0010⟶0111 11011000\ 0010 \longrightarrow 0111\ 1101

其中:

0111 1101=64+32+16+8+4+1=1250111\ 1101=64+32+16+8+4+1=125

所以一補數表示:

−125-125

二補數:取反後加 11:

1000 0010⟶0111 1101+1=0111 11101000\ 0010 \longrightarrow 0111\ 1101+1 =0111\ 1110

其中:

0111 1110=64+32+16+8+4+2=1260111\ 1110=64+32+16+8+4+2=126

所以二補數表示:

−126-126

填表答案

位元模式無號值一補數值二補數值
0000 00000000\ 0000000000
0000 00100000\ 0010222222
0111 11110111\ 1111127127127127127127
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

其他考古題