freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)課程設計-主存空間的分配與回收-免費閱讀

2024-10-03 21:05 上一頁面

下一頁面
  

【正文】 } system(cls)。d++。 order()。 char t。 freeblock[j].size=freeblock[j].size+l。 } freeblock[i].size=freeblock[i].size+l。amp。 } else { fullblock[k].sizes=fullblock[k].sizesl。 /*輸入釋放區(qū)的開始地址 */ printf(\n 輸入作業(yè)的大小 :)。 tag=1。 tag=1。 for(i=0。 printf( |……………………………………………| |……………………………………………| \n)。 fullblock[j].sizes=fullblock[i].sizes。 struct fullarea m。 =freeblock[j].state。 } for(i=0。 =freeblock[j].size。 printf( **************************************************\n)。 printf( * *\n)。 /* 空閑區(qū)大小 */ int state。 case 0: if(b==0) c=0。 t=getchar()。 Sleep(1*1000)。setfree()。 order()。 內(nèi)蒙古工業(yè)大學 課設 27 show()。a)。b)。 return。j++) { if(freeblock[j].startaddress==s+lamp。 freeblock[j].state==1) { freeblock[i].size=freeblock[i].size+l+freeblock[j].size。 } } for(i=0。k++) { if(fullblock[k].address==s) { if(fullblock[k].sizes==l) { 內(nèi)蒙古工業(yè)大學 課設 25 fullblock[k].address=0。 /*tagl 代表釋放區(qū)的高地址是否鄰接一個空閑區(qū) ,tag2 代表釋放區(qū)的高低地址是否都鄰接一個空閑區(qū) ,tag3 代表釋放區(qū)的低地址是否鄰接一個空閑區(qū) */ printf(\n\n 請輸入需要釋作業(yè)的首地址 :)。freeblock[i].size==a) { freeblock[i].state=0。 freeblock[i].size=freeblock[i].sizea。 } printf( |……………………………………………| |……………………………………………| \n)。 printf( | 空閑區(qū)說明表 | | 已分配區(qū)表 |\n)。 j++) if(fullblock[i].addressfullblock[j].address) { 內(nèi)蒙古工業(yè)大學 課設 23 =fullblock[j].address。 freeblock[j+1].size=。amp。 freeblock[i].startaddress=。i++) for(j=i。 printf( * *\n)。 void muen() { printf(\n **************************************************\n)。而我個人認為,我越早接觸, 越多接觸,越快解決對我本人縮短此過程有重要的意義。我覺得課程設計反映的是一個從理論到實際應用的過程,但是更遠一點可以聯(lián)系到以后畢業(yè)之后從學校轉(zhuǎn)到踏上社會的一個過程。 } } } } } } 內(nèi)蒙古工業(yè)大學 課設 14 第五章 程序運行 問題及解決辦法 結(jié)果 程序運行出現(xiàn)的問題及解決辦法問題 ( 1) 程序運行沒有按預期完成任務,解決辦法是每次在對內(nèi)存的分配和會和回收之前和之后都要對空閑區(qū)按地址進行排序 ( 2)程序不能顯示作業(yè)狀況,解決辦法是為作業(yè)作一個已分配表用來存儲作業(yè)記錄 ( 3)在進行排序時,采用冒泡法進行排序 運行結(jié)果截圖 ( 1) 主菜單 ( 2) 載入作業(yè)結(jié)結(jié)果 內(nèi)蒙古工業(yè)大學 課設 15 ( 1) ( 2) ( 3) 分配結(jié)果圖 內(nèi)蒙古工業(yè)大學 課設 16 ( 4) 模擬系統(tǒng)回收內(nèi)存 ( 5) 回收結(jié)果顯示 ( 1) ( 2) 內(nèi)蒙古工業(yè)大學 課設 17 ( 6) 多 分配結(jié)果 ( 7) 多回收結(jié)果 退出系統(tǒng) 內(nèi)蒙古工業(yè)大學 課設 18 六. 課程總結(jié)與 體會心得 課程設計心得 在這次課程設計中,我們的收獲應該說是非常大的。amp。 freeblock[j].state=0。iN。 fullblock[k].sizes=0。 scanf(%d,amp。 釋放區(qū)與上下臨界區(qū)的關系 A.釋放區(qū)下鄰 (低地址鄰接 )空閑區(qū):將釋放區(qū)與下空閑區(qū)合并,將其釋放區(qū)的首地址作為合并區(qū)的首地址,合并區(qū)的長度為釋放區(qū)與下空閑區(qū)長度之和。 tag=1。 tag=1。i++) if(freeblock[i].state==1amp。system(cls)。 if((t=getchar())==39。system(cls)。i++) { if(fullblock[i].address==0) { d=i。 case 2: system(cls)。 Sleep(1*1000)。 printf(\n \1 內(nèi)存中沒有符合的空閑區(qū)可供分配 !等待釋放內(nèi)存中 ~~\n)。show()。 muen()。 /*空閑區(qū)的大小 */ int state。為了盡量減少由于分割造成的碎片,盡可能分配低地址部分的空閑區(qū),將較大空閑區(qū)留在高地址端,以利于大作業(yè)的裝入。 狀態(tài)有: 未分配:該欄目是記錄的有效空閑區(qū)。因此,采取首次適應算法,以及那少內(nèi)存的浪費。基于數(shù)據(jù)結(jié)構中的伙伴系統(tǒng)的分配與回收思想給出了一個有效的算法。內(nèi)核應該為分配一組連續(xù)的頁面而建立一種穩(wěn)定、高效的分配策略。 使學生初步具有研究、設計、編制和調(diào)試操作系統(tǒng)模塊的能力。 四、工作進度安排 周一:布置、講解題目,收集資料; 周二:系統(tǒng)分析,算法設計; 周三:編制、調(diào)試程序; 周四:測試系統(tǒng),形成設計結(jié)論,編寫課設報告; 周五: 系統(tǒng)及材料驗收,課設答辯。但是請注意,在 Linux 中, CPU 不能按物理地址來訪問存儲空間,而必須使用虛擬地址;因此,對于內(nèi)存頁面的管理,通常是先在虛存空間中分配一個虛存區(qū)間,然后才根據(jù)需要為此區(qū)間分配相應的物理頁面并建立起映射,也就是說,虛存區(qū)間的分配在前,而物理頁面的分配在后,但是為了承接上一節(jié)的內(nèi)容,我們先介紹內(nèi)存的分配和回收,然后再介紹用戶進程虛存區(qū)間的建立。因此,存儲管理模塊要為每一個并發(fā)執(zhí)行的進程分配內(nèi)存空間。 例如,某時刻主存空間占用情況如圖 31 所示。 (2) 當有一個新作業(yè)要求裝入主存時,必須查空閑區(qū)說明表,從中找出一個足夠大的空閑區(qū)。作業(yè)的釋放區(qū)與空閑區(qū)的鄰接分以下 4 種情況考慮: A.釋放區(qū)下鄰 (低地址鄰接 )空閑區(qū); B.釋放區(qū)上鄰 (高地址鄰接 )空閑區(qū); C.釋放區(qū)上下都與空閑區(qū)鄰接; D.釋放區(qū)與空閑區(qū)不鄰接。 說明:設置已分配區(qū)說明表為結(jié)構體類型,構成已分配區(qū)表的分區(qū) 內(nèi)蒙古工業(yè)大學 課設 6 第 四 章 詳細設計 菜單模塊 為了操作界面的人性化和美觀,為模擬系統(tǒng)開辟一個操作菜單,通過 switch() case 的方法來實現(xiàn),其核心代碼為 int start。 printf(\n 系統(tǒng)原有內(nèi)存空閑區(qū)分表和已分配表區(qū)如下 :\n\n)。 start=alloc(a,d)。 break。 Sleep(1*1000)。 order1()。 printf(\n \1 系統(tǒng)回收內(nèi)存成功 !:\n\n)。 order()。 default: system(cls)。j=b。 freeblock[i].size=freeblock[i].sizea。freeblock[i].size==a) { freeblock[i].state=0。由于每個作業(yè)或進程所用的內(nèi)存長度不一 樣而出現(xiàn)大量分散,較小的空閑區(qū)。 內(nèi)蒙古工業(yè)大學 課設 11 N Y N Y Y N Y N 數(shù)據(jù)流程圖 開始 S=釋 放區(qū)始址 L= 釋放區(qū)長度 查空閑區(qū)說明表 有與釋放區(qū)的高地址鄰接 (上鄰 )的空閑區(qū)嗎? 有與釋放區(qū)下鄰的空閑區(qū)嗎? 在空閑區(qū)說明表中找一空表目登記:始址 =S 長度=L 狀態(tài) =未分配 按地址順序調(diào)整和緊縮空閑區(qū)說明表 上空閑區(qū)首地址為總地址,大小為兩個大小之和 上空閑區(qū)首地址為總地址,大小為兩個大小之和 L=L+上鄰空閑區(qū)長度 有與釋放區(qū)下鄰的空閑區(qū)嗎? 把上鄰空閑區(qū)登記欄中的始址改為 S,長度改為 L 把上鄰空閑區(qū)登記欄中的狀態(tài)置為“空表目”,且將空表目向后調(diào)整。 /*輸入釋放區(qū)的大小 */ for(k=0。 setfree()。j++) 內(nèi)蒙古工業(yè)大學 課設 13 { if(freeblock[j].startaddress==s+lamp。 } } else { for(j=0。 freeblock[j].startaddress=s。在這次實踐中,我們充分的意識到,編程功底的薄弱,只是粗淺的了解了語言,只是會一些語法,在編程思想上,我們顯的很弱。通過這次課程設計我也發(fā)現(xiàn)了自身存在的不足之處,雖然感覺理論上已經(jīng)掌握,但在運用到實踐的過程中仍有意想不到的困惑,經(jīng)過一番努力才得以解決。 struct fullarea { int address。 printf( * *\n)。 struct freearea m。 freeblock[j].startaddress=freeblock[i].startaddress。i++) for(j=0。 freeblock[j].size=freeblock[j+1].size。iN。 fullblock[i].sizes=。iN。i++) if(freeblock[i].state==1amp。 break。 /*返回為作業(yè)分配的主存地址 */ break。l)。 } } if(k==N1) { printf(\n 輸入釋放作業(yè)開始地址不存在,請重新輸入 !)。jN。 return。 內(nèi)蒙古工業(yè)大學 課設 26 } else { if(freeblock[j].state==0) { freeblock[j].size=l。 muen()。show()。 printf(\n \1 內(nèi)存中沒有符合的空閑區(qū)可供分配 !等待釋放內(nèi)存中 ~~\n)。 Sleep(1*1000)。
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1