實(shí)驗(yàn)1-可變分區(qū)存儲(chǔ)管理-不要上傳壓縮文件._第1頁
實(shí)驗(yàn)1-可變分區(qū)存儲(chǔ)管理-不要上傳壓縮文件._第2頁
實(shí)驗(yàn)1-可變分區(qū)存儲(chǔ)管理-不要上傳壓縮文件._第3頁
實(shí)驗(yàn)1-可變分區(qū)存儲(chǔ)管理-不要上傳壓縮文件._第4頁
實(shí)驗(yàn)1-可變分區(qū)存儲(chǔ)管理-不要上傳壓縮文件._第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)一可變分區(qū)存儲(chǔ)管理請(qǐng)盡量到機(jī)房上機(jī)-(一)實(shí)驗(yàn)題目編寫一個(gè) C 程序,用 char malloc(unsigned size)函數(shù)向系統(tǒng)申請(qǐng)一次內(nèi)存空間(如size=1000, 單位為字節(jié)),用首次適應(yīng)法addr = (char *)fmalloc(unsigned size)和 ffree(unsigned size,char * addr)(基本要求)或循環(huán)首次適應(yīng)法(提高一步)addr = (char *)lmalloc(unsigned size)和 lfree(unsigned size9char * addr)模擬UNIX可變分區(qū)內(nèi)存管理,實(shí)現(xiàn)對(duì)該內(nèi)存 區(qū)斷分配和釋放管理。(二

2、) 實(shí)驗(yàn)?zāi)康募?加深對(duì)可變分區(qū)的存儲(chǔ)管理的理解;-2.提高用C語言編制大型系統(tǒng)程序的能力,特別是掌握C語言編程的難點(diǎn):指針及指針作為函數(shù)參數(shù)。(三)實(shí)驗(yàn)要求空閑存儲(chǔ)區(qū)表可采用結(jié)構(gòu)數(shù)組的形式,建議采用一的數(shù) 狗為: 結(jié)構(gòu)數(shù)組的形式:struct map unsigned m_size;char * m_addr;struct map coremapN;分配函數(shù)的參數(shù)size和釋放函數(shù)的參數(shù)size、addr 以鍵盤命令的形式輸入,每次分配和釋放后顯示 自己的空閑存儲(chǔ)區(qū)表。整個(gè)系統(tǒng)的基本框架為:(四) 實(shí)驗(yàn)注意事項(xiàng)鍵盤命令的簡(jiǎn)單形式如:通過fmalloc函數(shù)申請(qǐng)100字節(jié)的內(nèi)存空間。 free 1

3、00 2567890通過ffree函數(shù)釋放起始地址為2567890的那個(gè)內(nèi) 存區(qū),該地址先前通過fmalloc申請(qǐng)的有效存儲(chǔ)區(qū)地 址。為了避免輸入復(fù)雜的釋放地址,可采用輸入相對(duì) 地址的方法,如:f 100 300 (相對(duì)地址)調(diào)用ffree時(shí)再加上分配到的內(nèi)存始地址。命令輸入可用C函數(shù):scanf (“c”,&cmdchar); cmdchar =getchar ()或 scanf (“&cndstring)后跟B-亠*-scanf (“ u”,&siz£)或scanf (“ u % u", &size,&addr)o如采用通用的命令

4、串的形式,還要調(diào)用一個(gè)串匹 配函數(shù),以判斷是哪個(gè)命令??刹捎煤?jiǎn)單的讀取單個(gè)命令字符的形式,由于 getchai或scanf可能讀入的是前一個(gè)命令留在鍵盤 輸入緩沖區(qū)內(nèi)的'','tTn,等空白字符,為了 正確地讀入m, f等本次命令字符,需要預(yù)先濾去 輸入緩沖區(qū)的空白字符:doc=getchar();while(c=<n,|c=<t,|c= ')程序輸入、調(diào)試和測(cè)試可以在Linux的環(huán)境下進(jìn)行,也可在Windows turbo C等的環(huán)境中進(jìn)行,値Windows和turbo C 環(huán)境不直接支持I/O轉(zhuǎn)向,故在完成此項(xiàng)工作時(shí) 血蔣編譯啟產(chǎn)雖的執(zhí)行文myp

5、roc.exe存入 磁盤的策個(gè)目錄中,如是Windows,運(yùn)行cmd 命令進(jìn)入命令行窗口,運(yùn)行程序,用I/O轉(zhuǎn)向生 成結(jié)果文件。如:myproCeexe > result.txt在Linux的環(huán)境下可直接運(yùn)行:./myproc > resul(五)測(cè)試要求*- 一:程序調(diào)試基本通過后,應(yīng)進(jìn)行較為全面的測(cè)試, 建議采用白盒法的路徑測(cè)試方法,測(cè)試路徑應(yīng) 包含分配算法的“首次”或“循環(huán)首次”、, 釋放算法的與鄰近空閑分區(qū)聯(lián)系的四種情況, 還要包含一些必要的出錯(cuò)處理路徑。:可在測(cè)試通過后,可用I/O轉(zhuǎn)向使屏幕的輸出結(jié) 果轉(zhuǎn)至指定文件。注意,由于此時(shí)看不到提示 字符串和空閑存儲(chǔ)區(qū)表的輸出內(nèi)容

6、,欲釋放存 儲(chǔ)地址較難正確輸入,可采用以下幾種方法:宗測(cè)試通過后可用I/O轉(zhuǎn)向使屏幕的輸出結(jié)果轉(zhuǎn) 至指定文件。注意,由于此時(shí)看不到提示字符串權(quán)空困存儲(chǔ)區(qū)表的輸出內(nèi)睿,欲釋取存儲(chǔ)地址較難正確輸入,可采用以下幾種方法:1.在不采用輸出轉(zhuǎn)向時(shí)先完整地運(yùn)行一遍, 并記下所有的命令和參數(shù),再用I/O轉(zhuǎn)向時(shí)“摸瞎”似地依次輸入各個(gè)命令和參數(shù),由于malloc所分配的存儲(chǔ)區(qū)地址時(shí)用戶程序的虛地址空間,故同一程序的兩次運(yùn)行的結(jié)果應(yīng)當(dāng)是 一樣的。為了使輸出結(jié)果文件也含有輸入的命 令串,應(yīng)在輸入命令后,再將命令和參數(shù)輸出 至標(biāo)準(zhǔn)輸出設(shè)備。聚2.如fmalloc和ffree,是釆用相對(duì)地址的管理方 法(malloc

7、所分配的地址+偏移地址),那么 一 _輸2血卑曲釋放地址就容易得多a宗3輸入也可采用I/O轉(zhuǎn)向,將預(yù)先設(shè)計(jì)好的所 有輸入次序(部分?jǐn)?shù)據(jù)可在不采用I/O轉(zhuǎn)向運(yùn) 行時(shí)輸入)寫入輸入文件,再用:myprog.exe < inputfile.txt > result.txt的形式執(zhí)行。宗4.對(duì)于文件的I/O較熟悉的學(xué)生可采用每次在 屏幕輸出后重復(fù)向文件輸出的方法,這樣上述 的問題就很容易解決了。(六)實(shí)驗(yàn)數(shù)據(jù)和結(jié)果學(xué)生最后應(yīng)當(dāng)將實(shí)驗(yàn)報(bào)告、程序、輸出結(jié)果文件和輸入命令文件(如果有的話)合并成一個(gè) 文件 9 女口progrcs.txt。如在cmd命令行窗口的合并方法是:copy myproge

8、C+input.txt+resultetxt progres.txt 在L i nux中的合并方法是:cat myprog>c input result > progres>txt(七)實(shí)驗(yàn)報(bào)告要求實(shí)驗(yàn)報(bào)告包含以下幾個(gè)方面:由百2. 算法思想和概要設(shè)計(jì)和重要模塊的詳細(xì)設(shè)計(jì)及功能和 接口說明。3. 重要數(shù)據(jù)結(jié)構(gòu)和變量的說明。4. 源程序、注釋和結(jié)果。5. 測(cè)試方法,對(duì)測(cè)試結(jié)果的分析,錯(cuò)誤的分析。6程序及測(cè)試的改進(jìn).本次上機(jī)經(jīng)驗(yàn)及體會(huì)。以上可以簡(jiǎn) 化。直自己姓名(可以是漢語拼音)的運(yùn)行情況和結(jié)果的截 &將實(shí)驗(yàn)報(bào)告(1個(gè)文件,不要壓縮)發(fā)到作業(yè)系統(tǒng)中。9如實(shí)驗(yàn)在機(jī)房中完成,經(jīng)老師檢査后,實(shí)驗(yàn)報(bào)告可簡(jiǎn)化。參考答案:在霽紊玉習(xí)匾葺應(yīng)扉需審的;3玉 (p67)有該題的參考答案,可以參考、 簡(jiǎn)化,但不要照抄。去實(shí)驗(yàn)環(huán)境可以是任何的C或C+虛擬機(jī), 但要求編C程序,不要編C+程序。祭鼓勵(lì)編一個(gè)數(shù)組實(shí)現(xiàn)的循環(huán)首次適應(yīng)法 的實(shí)驗(yàn)程序,這只要在首次適應(yīng)法的基 礎(chǔ)上略加修改。在機(jī)房Win7/Winl0允許telnet客戶端 控制面板> 程序> 程序和功能7錄Linux服務(wù)器(打開(啟用)或關(guān)閉windows功能) >勾選:Telnet客戶端>點(diǎn)擊確定 服務(wù)器地址:« * . 一10.12.111.242 10.12.111.243用戶名

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論