程式的裝入和連結
1,基本過程
1,編譯:.C/.CPP/.ASM檔案轉換為.OBJ檔案;
2,連結:.OBJ檔案加上.LIB檔案連結形成裝入子產品;
3,裝入:裝入子產品裝入實體記憶體後即可運作;

2,程式的裝入
1)絕對裝入方式
定義:程式設計時直接确定記憶體位置;(每次隻能運作一個程式,否則就會因為位址不同,程式運作出錯)
特點:不靈活,不支援多道程式設計(多道程式設計是在計算機記憶體中同時存放幾道互相獨立的程式,使它們在管理程式控制之下,互相穿插的運作);
2)可重定位裝入方式
首先引入虛拟技術:
應用虛拟技術實作存儲管理
邏輯位址(相對位址,虛位址)
使用者程式經過彙編或編譯後形成目标代碼;
目标代碼采用相對位址形式:
- 首位址為0;
- 其餘指令中位址以相對于首位址的偏移為位址;
不能用邏輯位址在記憶體中讀取資訊
實體位址(絕對位址,實位址)
記憶體中存儲單元的位址,可直接尋址
靜态位址重定位
定義:程式設計時使用邏輯位址,裝入時進行位址重定位,運作時使用實體位址;
特點:靈活,支援多道程式設計;
動态位址重定位
定義:程式設計時使用邏輯位址,運作時進行位址重定位,運作時使用實體位址;
特點:靈活,支援多道程式設計;
3,程式的連結
靜态連結
程式設計時,連結所有子產品;
裝入時動态連結
裝入時,連結所有子產品;
運作時動态連結
運作時,根據需要連結子產品;