




已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗一 可變分區(qū)存儲管理 請盡量到機房上機,(一) 實驗題目 編寫一個C程序,用char *malloc(unsigned size)函數向系統(tǒng)申請一次內存空間(如size=1000,單位為字節(jié)),用首次適應法 addr = (char *)fmalloc(unsigned size) 和 ffree(unsigned size,char * addr)(基本要求)或 循環(huán)首次適應法(提高一步) addr = (char *)lmalloc(unsigned size) 和 lfree(unsigned size,char * addr) 模擬UNIX可變分區(qū)內存管理,實現對該內存區(qū)的分配和釋放管理。,(二) 實驗目的,1加深對可變分區(qū)的存儲管理的理解; 2提高用C語言編制大型系統(tǒng)程序的能力,特別是掌握C語言編程的難點:指針及指針作為函數參數。,(三) 實驗要求,空閑存儲區(qū)表可采用結構數組的形式,建議采用的數據結構為: 結構數組的形式: struct map unsigned m_size; char * m_addr; ; struct map coremapN; 分配函數的參數size和釋放函數的參數size、addr以鍵盤命令的形式輸入,每次分配和釋放后顯示自己的空閑存儲區(qū)表。,整個系統(tǒng)的基本框架為:,(四) 實驗注意事項,鍵盤命令的簡單形式如: malloc 100 通過fmalloc函數申請100字節(jié)的內存空間。 free 100 2567890 通過ffree函數釋放起始地址為2567890的那個內存區(qū),該地址先前通過fmalloc申請的有效存儲區(qū)地址。 為了避免輸入復雜的釋放地址,可采用輸入相對地址的方法,如: f 100 300(相對地址) 調用ffree時再加上分配到的內存始地址。,命令輸入可用C函數: scanf (“%c”, while(c=n|c=t|c= ),程序輸入、調試和測試,可以在Linux的環(huán)境下進行,也可在Windows turbo C等的環(huán)境中進行,但Windows和turbo C環(huán)境不直接支持I/O轉向,故在完成此項工作時應將編譯后產生的執(zhí)行文件如myproc.exe存入磁盤的某個目錄中,如是Windows,運行cmd命令進入命令行窗口,運行程序,用I/O轉向生成結果文件。如: myproc.exe result.txt 在Linux的環(huán)境下可直接運行: ./myproc resul,(五) 測試要求,程序調試基本通過后,應進行較為全面的測試,建議采用白盒法的路徑測試方法,測試路徑應包含分配算法的“首次”或“循環(huán)首次”、,釋放算法的與鄰近空閑分區(qū)聯(lián)系的四種情況,還要包含一些必要的出錯處理路徑。 可在測試通過后,可用I/O轉向使屏幕的輸出結果轉至指定文件。注意,由于此時看不到提示字符串和空閑存儲區(qū)表的輸出內容,欲釋放存儲地址較難正確輸入,可采用以下幾種方法:,測試通過后可用I/O轉向使屏幕的輸出結果轉至指定文件。注意,由于此時看不到提示字符串和空閑存儲區(qū)表的輸出內容,欲釋放存儲地址較難正確輸入,可采用以下幾種方法: 1在不采用輸出轉向時先完整地運行一遍,并記下所有的命令和參數,再用I/O轉向時“摸瞎”似地依次輸入各個命令和參數,由于malloc所分配的存儲區(qū)地址時用戶程序的虛地址空間,故同一程序的兩次運行的結果應當是一樣的。為了使輸出結果文件也含有輸入的命令串,應在輸入命令后,再將命令和參數輸出至標準輸出設備。,2. 如fmalloc和ffree,是采用相對地址的管理方法(malloc所分配的地址+偏移地址),那么輸入ffree的釋放地址就容易得多。 3輸入也可采用I/O轉向,將預先設計好的所有輸入次序(部分數據可在不采用I/O轉向運行時輸入)寫入輸入文件,再用: myprog.exe result.txt 的形式執(zhí)行。 4對于文件的I/O較熟悉的學生可采用每次在屏幕輸出后重復向文件輸出的方法,這樣上述的問題就很容易解決了。,(六) 實驗數據和結果,學生最后應當將實驗報告、程序、輸出結果文件和輸入命令文件(如果有的話)合并成一個文件,如progres.txt。 如在cmd命令行窗口的合并方法是: copy myprog.c+input.txt+result.txt progres.txt 在Linux中的合并方法是: cat myprog.c input result progres.txt,(七) 實驗報告要求,實驗報告包含以下幾個方面: 1題目。 2算法思想和概要設計和重要模塊的詳細設計及功能和接口說明。 3重要數據結構和變量的說明。 4源程序、注釋和結果。 5測試方法,對測試結果的分析,錯誤的分析。 6. 程序及測試的改進、本次上機經驗及體會。以上可以簡化。 7. 將以上內容和前面程序、輸出/輸入的文件再合并成一個實驗報告word文件。實驗報告中一定還要有一到兩幅含有自己姓名(可以是漢語拼音)的運行情況和結果的截圖。 8. 將實驗報告(1個文件,不要壓縮)發(fā)到作業(yè)系統(tǒng)中。 9. 如實驗在機房中完成,經老師檢查后,實驗報告可簡化。,參考答案,在操作系統(tǒng)習題與應用解析中的13章(p67)有該題的參考答案,可以參考、簡化,但不要照抄。 實驗環(huán)境可以是任何的C或C+虛擬機,但要求編C程序,不要編C+程序。 鼓勵編一個數組實現的循環(huán)首次適應法的實驗程序,這只要在首次適應法的基礎上略加修改。,在機房Win7/Win10允許telnet客戶端 登錄Linux服務器,控制面板-程序-程序和功能 (打開(啟用)或關閉windows功能) -勾選:Telnet客戶端-點擊確定 服務器地址: 10.12.111.242 10.12.111.243 用戶名 student1 5 口令 同用戶名,在Win
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具呆滯品管理制度
- 庫房配貨員管理制度
- 待寢室安全管理制度
- 德克士公司管理制度
- 志愿積分制管理制度
- 快遞站衛(wèi)生管理制度
- 急救車藥品管理制度
- 總經辦衛(wèi)生管理制度
- 意大利藥店管理制度
- 成品庫抽樣管理制度
- 《民間借貸講座》課件
- DB11-T 1445-2025 北京市民用建筑工程室內環(huán)境污染控制規(guī)程
- 地理撒哈拉以南非洲課件-2024-2025學年人教版(2024)初中地理七年級下冊
- 四川省2024普通高校招生本科一批調檔線(理科)
- 基于機器學習的精準灌溉效率提升方法-全面剖析
- 1策略導航智慧備考-2025年中考英語復習略談 課件【2025年陜西省初中學業(yè)水平考試研討會】2
- 2025年正壓式呼吸器試題及答案
- 2025年保安證考試知識測試試題及答案
- 2025年保安證重點試題及答案
- 帶式運輸機傳動裝置設計說明書-xlj
- 電力公司安全生產月
評論
0/150
提交評論