阿摩線上測驗 登入

申論題資訊

試卷:99年 - 99 專技高考_電子工程技師:電子計算機原理#46458
科目:計算機概論、大意(資訊科學概論,電腦常識,電子計算機概論)
年份:99年
排序:0

申論題內容

四、一般系統程式之載入程式(loader) 的功能與分類為何?請加以說明。(10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

載入程式在操作系統中扮演著關鍵角色,確保程式能夠正確地載入和執行。它的主要功能包括載入、重定位、符號解析、內存分配和初始化。根據實現方式的不同,載入程式可以分為靜態載入程式、動態載入程式、直接載入程式和複合載入程式。每種類型的載入程式都適用於不同的應用場景,確保系統資源的有效利用和程式的高效運行。

系統程式中的載入程式(loader)是操作系統中負責將可執行文件從磁碟載入到內存中,以便程式能夠執行的組件。載入程式的功能和分類如下:

載入程式的功能

  1. 載入(Loading)

    • 將可執行文件從磁碟載入到內存的適當位置。
    • 包括讀取程式的代碼段、數據段、堆棧段等。
  2. 重定位(Relocation)

    • 調整可執行文件中的地址,使其適應當前的內存位置。
    • 包括靜態重定位和動態重定位。
  3. 符號解析(Symbol Resolution)

    • 將外部符號解析為具體的內存地址,特別是動態鏈接時需要。
    • 包括解析函數地址和全局變量地址。
  4. 內存分配(Memory Allocation)

    • 分配程式運行所需的內存空間。
    • 包括堆區、棧區和其他需要動態分配的內存區域。
  5. 初始化(Initialization)

    • 初始化程式運行所需的資源和狀態。
    • 包括設置環境變量、打開文件描述符等。

載入程式的分類

  1. 靜態載入程式(Static Loader)

    • 在程式開始執行之前,將所有的程式代碼和數據段載入內存。
    • 不需要在運行時進行任何額外的地址解析或重定位。
    • 主要應用於早期的操作系統和嵌入式系統。
  2. 動態載入程式(Dynamic Loader)

    • 程式執行時才進行代碼和數據段的載入。
    • 允許在運行時動態地加載共享庫和進行地址解析。
    • 動態載入使得程式可以共享代碼段,減少內存消耗。
    • 例如,UNIX/Linux系統中的ld.so或ld-linux.so。
  3. 直接載入程式(Direct Loader)

    • 將可執行文件直接載入到內存的指定位置,適合於內存管理較簡單的系統。
    • 不涉及重定位或動態鏈接。
  4. 複合載入程式(Overlay Loader)

    • 用於內存有限的系統,將程式劃分為多個覆蓋區(overlays),每次只載入和執行其中的一部分。
    • 允許程式在不增加內存消耗的情況下執行較大的代碼。