存儲(chǔ)部件的層次
可移動(dòng)存儲(chǔ)介質(zhì)->磁盤->磁盤緩存->主存->高速緩存->cpu寄存器
1晃听、程序的裝入和鏈接
多道程序環(huán)境下,程序運(yùn)行必須為之先建立進(jìn)程砰识。
創(chuàng)建進(jìn)程的第一件事:將程序和數(shù)據(jù)裝入內(nèi)存能扒。
程序進(jìn)內(nèi)存的一般過(guò)程:
編譯compiler:編譯程序:將用戶源代碼編譯成若干個(gè)目標(biāo)模塊。
鏈接link:鏈接程序:將形成的一組目標(biāo)模塊辫狼,及它們需要的庫(kù)函數(shù)鏈接在一起初斑,形成一個(gè)完整的裝入模塊。
裝入load:由裝入程序?qū)⒀b入模塊裝入內(nèi)存膨处,構(gòu)造PCB见秤,形成進(jìn)程,開(kāi)始運(yùn)行(使用物理地址)灵迫。
2秦叛、地址的概念
邏輯地址(相對(duì)地址,虛地址)
物理地址(絕對(duì)地址瀑粥,實(shí)地址)
內(nèi)存中存儲(chǔ)單元的地址挣跋。
物理地址可直接尋址被執(zhí)行。
地址映射:
將用戶程序中的邏輯地址轉(zhuǎn)換為運(yùn)行時(shí)由機(jī)器直接尋址的內(nèi)存物理地址的過(guò)程狞换。
即:用戶的第10字節(jié)處的指令在內(nèi)存的第多少地址上避咆。
3、程序裝入中的地址處理
邏輯地址? ======? 物理地址:
絕對(duì)裝入方式(absolute loading)
邏輯地址-》重定位-》物理地址:
靜態(tài)可重定位裝入方式(relocatable loading mode)
動(dòng)態(tài)運(yùn)行時(shí)(重定位)裝入方式(dynamic run-time loading)
重定位:把目標(biāo)程序中的指令和數(shù)據(jù)的邏輯地址變成內(nèi)存中的物理地址的地址變換過(guò)程
4修噪、不同的程序鏈接方式
內(nèi)存的使用有差別:
根據(jù)鏈接時(shí)間的不同查库,分成三種:
靜態(tài)鏈接:裝入運(yùn)行前將多個(gè)目標(biāo)模塊及所需庫(kù)函數(shù)鏈接成一個(gè)整體,以后不再拆開(kāi)黄琼。
裝入時(shí)動(dòng)態(tài)鏈接:裝入內(nèi)存時(shí)樊销,邊裝入邊鏈接的鏈接方式。
運(yùn)行時(shí)動(dòng)態(tài)鏈接:對(duì)某些目標(biāo)模塊的鏈接,在執(zhí)行中需要該目標(biāo)模塊時(shí)围苫,才對(duì)它進(jìn)行鏈接裤园。
5、連續(xù)分配方式
為一個(gè)用戶程序分配一個(gè)連續(xù)的內(nèi)存空間
20世紀(jì)六剂府、七十年代的OS中拧揽,分類:
單一連續(xù)分配
固定分區(qū)分配
動(dòng)態(tài)分區(qū)分配
動(dòng)態(tài)重定位分區(qū)分配
其他