內(nèi)存分配應(yīng)該注意什么?
為了便于內(nèi)存分配,通常將分區(qū)按大小進(jìn)行排隊(duì),并為之建立一張分區(qū)使用表,其中各表項(xiàng)包括每個(gè)分區(qū)的起始地址、大小及狀態(tài)(是否已分配)。當(dāng)有一用戶(hù)程序要裝入時(shí),由內(nèi)存分配程序檢索該表,從中找出一個(gè)能滿足要求的、尚未分配的分區(qū),將之分配給該程序,然后將該表項(xiàng)中的狀態(tài)置為“已分配” ;若未找到大小足夠的分區(qū),則拒絕為該用戶(hù)程序分配內(nèi)存。
內(nèi)存的單一連續(xù)分配都有什么?
這是最簡(jiǎn)單的一種存儲(chǔ)管理方式,但只能用于單用戶(hù)、單任務(wù)的操作系統(tǒng)中。采用這種存儲(chǔ)管理方式時(shí),可把內(nèi)存分為系統(tǒng)區(qū)和用戶(hù)區(qū)兩部分,系統(tǒng)區(qū)僅提供給 OS 使用,通常是放在內(nèi)存的低址部分;用戶(hù)區(qū)是指除系統(tǒng)區(qū)以外的全部?jī)?nèi)存空間,提供給用戶(hù)使用。雖然在早期的單用戶(hù)、單任務(wù)操作系統(tǒng)中,有不少都配置了存儲(chǔ)器保護(hù)機(jī)構(gòu),用于防止用戶(hù)程序?qū)Σ僮飨到y(tǒng)的破壞, 但近年來(lái)常見(jiàn)的幾種單用戶(hù)操作系統(tǒng)中, 如 CP/M、 MS-DOS及 RT11 等,都未采取存儲(chǔ)器保護(hù)措施。這是因?yàn)?,一方面可以?jié)省硬件,另一方面也因?yàn)檫@是可行的。在單用戶(hù)環(huán)境下,機(jī)器由一用戶(hù)獨(dú)占,不可能存在其他用戶(hù)干擾的問(wèn)題;這時(shí)可能出現(xiàn)的破壞行為也只是用戶(hù)程序自己去破壞操作系統(tǒng),其后果并不嚴(yán)重,只是會(huì)影響該用戶(hù)程序的運(yùn)行,且操作系統(tǒng)也很容易通過(guò)系統(tǒng)的再啟動(dòng)而重新裝入內(nèi)存。