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

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)-主存空間的分配與回收(存儲(chǔ)版)

  

【正文】 case 2: system(cls)。i++) { if(fullblock[i].address==0) { d=i。system(cls)。 if((t=getchar())==39。system(cls)。 void muen() { printf(\n **************************************************\n)。 printf( * *\n)。i++) for(j=i。 freeblock[i].startaddress=。amp。 freeblock[j+1].size=。 j++) if(fullblock[i].addressfullblock[j].address) { =fullblock[j].address。 printf( | 空閑區(qū)說(shuō)明表 | | 已分配區(qū)表 |\n)。 } printf( |…………………………………………… |內(nèi)蒙古工業(yè)大學(xué) 課設(shè) 31 |……………………………………………| \n)。 freeblock[i].size=freeblock[i].sizea。freeblock[i].size==a) { freeblock[i].state=0。 /*tagl 代表釋放區(qū)的高地址是否鄰接一個(gè)空閑區(qū) ,tag2 代表釋放區(qū)的高低地址是否都鄰接一個(gè)空閑區(qū) ,tag3 代表釋放區(qū)的低地址是否鄰接一個(gè)空閑區(qū) */ printf(\n\n 請(qǐng)輸入需要釋作業(yè)的首地址 :)。k++) { if(fullblock[k].address==s) { if(fullblock[k].sizes==l) { fullblock[k].address=0。 } } for(i=0。 freeblock[j].state==1) 內(nèi)蒙古工業(yè)大學(xué) 課設(shè) 33 { freeblock[i].size=freeblock[i].size+l+freeblock[j].size。j++) { if(freeblock[j].startaddress==s+lamp。 return。b)。a)。 show()。syste。 Sleep(1*1000)。 printf(\n 請(qǐng)輸入作業(yè)申請(qǐng)量 :)。 printf( 請(qǐng)選擇操作編號(hào) :)。 freeblock[j].startaddress=s。 } } else { for(j=0。j++) { if(freeblock[j].startaddress==s+lamp。 setfree()。 /*輸入釋放區(qū)的大小 */ for(k=0。 } if(tag==0) { return 1。 } else if (freeblock[i].state==1amp。amp。i++) { printf( | %3d %3d %3d | | %3d %3d |\n,freeblock[i].startaddress, freeblock[i].size, freeblock[i].state,fullblock[i].address, fullblock[i].sizes)。 } } void show() /*定義打印空閑區(qū)說(shuō)明表函數(shù): print()*/ { int i。i++) for(j=i。 freeblock[j].state=freeblock[j+1].state。jN。 freeblock[j].size=freeblock[i].size。 for(i=0。 printf( * *\n)。 int sizes。 printf(\n 輸入有誤 ,請(qǐng)重新選擇 !\n)。 show()。 order()。 for(i=0。system(cls)。 } 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ū)的開(kāi)始地址 */ 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。一切問(wèn)題必須要 靠自己一點(diǎn)一滴的解決,而在解決的過(guò)程當(dāng)中你會(huì)發(fā)現(xiàn)自己在飛速的提升。但是由于對(duì) JAVA 的使用不夠熟練,所以我們就用了比較熟悉的 c 語(yǔ)言。 return。 freeblock[i].state=1。freeblock[i].state==1) { for(j=i+1。 break。 scanf( %d,amp。 D.釋 放區(qū)與空閑區(qū)不鄰接:將三個(gè)空閑區(qū)合并為一個(gè)空閑區(qū),新空閑區(qū)的首地址為上空閑區(qū)的首地址,大小為三個(gè)空閑區(qū)之和。} if(tag==0) return 1。 } else if (freeblock[i].state==1amp。返回分配給作業(yè)的主存始址。然后該算法從所找到分區(qū)中畫出所要求的內(nèi)存長(zhǎng)度分配給用戶,把余下的部分進(jìn)行合并(如果有相鄰空閑區(qū)存在)后留在可用表中,但要修改其相應(yīng)的表項(xiàng)。 case 0: if(b==0) c=0。 t=getchar()。 Sleep(1*1000)。setfree()。 order()。 show()。a)。b)。 /*分配作業(yè)的首地址 */ int sizes。 (3) 當(dāng)一個(gè)作業(yè)執(zhí)行完成時(shí),作業(yè)所占用的分區(qū)應(yīng)歸還給系統(tǒng)。否則造成溢出,無(wú)法登記。有的分區(qū)被作業(yè)占用,有的分區(qū)空閑。 課程設(shè)計(jì)內(nèi)容 編程序?qū)崿F(xiàn)下述 在不同的存儲(chǔ)管理方式下 的主存空間的分配與回收,其中 原始數(shù)據(jù)設(shè)為 空閑區(qū)說(shuō)明表 結(jié)構(gòu)體 (1).設(shè)計(jì)基于空閑區(qū)說(shuō)明表的可變分區(qū)分配與回收算法; (2).或設(shè)計(jì)基于空閑區(qū)鏈表的可變分區(qū)的分配與回收; 內(nèi)蒙古工業(yè)大學(xué) 課設(shè) 2 第二章 需求分析 硬件需求 本系統(tǒng)適用于現(xiàn)用的各種類型的計(jì)算機(jī),內(nèi)存容量建議為 128MB 以上,不必配備外部附加設(shè)備 軟件需求 VC++ 開(kāi)發(fā)工具 設(shè)計(jì)需求 內(nèi)存的分配與回收是內(nèi)存管理的主要功能之一。由此帶來(lái)的問(wèn)題是,即使這些小塊的空閑頁(yè)面加起來(lái)足以滿足所請(qǐng)求的頁(yè)面, 但是要分配一個(gè)大塊的連續(xù)頁(yè)面可能就根本無(wú)法滿足。 設(shè)計(jì)要求: 1. 設(shè)計(jì)基于空閑區(qū)說(shuō)明表的可變分區(qū)分配與回收算法; 2. 或設(shè)計(jì)基于空閑區(qū)鏈表的可變分區(qū)分配與回收算法; 3. 畫出以上算法流程圖; 4. 編程實(shí)現(xiàn)算法功能; 5.編寫課程設(shè)計(jì)說(shuō)明書。 技術(shù)參數(shù): Windows XP系統(tǒng), VC++。頻繁地請(qǐng)求和釋放不同大小的一組連續(xù)頁(yè)面,必然導(dǎo)致在已分配的內(nèi)存塊中分散許多小塊的空閑頁(yè)面。 也使 學(xué)生初步具有研究、設(shè)計(jì)、編制和調(diào)試操作系統(tǒng)模塊的能力。隨著作業(yè)的裝入、完成,主存空間被分割成許多大大小小的分區(qū)。 由于分區(qū)個(gè)數(shù)不定,所以空閑區(qū)說(shuō)明表中應(yīng)有足夠的 空表目項(xiàng)。為了便于快速查找,要不斷地對(duì)表格進(jìn)行緊縮,即讓“空表目”項(xiàng)留在表的 后部。 說(shuō)明:設(shè)置空閑區(qū) 為結(jié)構(gòu)體類型 ,并且為其初始化 ,構(gòu)成空閑區(qū)表的分區(qū) 內(nèi)蒙古工業(yè)大學(xué) 課設(shè) 5 已分配區(qū)說(shuō)明表設(shè)計(jì) struct fullarea { int address。 scanf(%d,amp。 scanf(%d,amp。system(cls)。 printf(\n \1 系統(tǒng)為作業(yè)分配內(nèi)存成功 !:\n\n)。show()。 } } printf(\n \1 系統(tǒng)正在回收為作業(yè)分配的內(nèi)存中?? \n\n)。 case 3: system(cls)。) break。該算法的最大特點(diǎn)是一旦找到大于或等于所要求內(nèi)存長(zhǎng)度的分區(qū),則結(jié)束探索。freeblock[i].sizea) 開(kāi)始 申請(qǐng)XK 主存 J=0 J=J+1 查看第 J個(gè)表目的登記項(xiàng) 狀態(tài)為“未分配”嗎 ? 長(zhǎng)度 =XK? 置狀態(tài)為“空表目” 將空表目向后移 長(zhǎng)度 =長(zhǎng)度- XK 始址 =始址+ XK 作業(yè)等待 返回 登記已分配區(qū)表和空閑區(qū)表,輸出系統(tǒng)中各數(shù)據(jù)結(jié)構(gòu)的值。 break。 break。 C.釋放區(qū)上下都與空閑區(qū)鄰接:釋放區(qū)作為一個(gè)新的可用區(qū)插入可用表。 /*輸入釋放區(qū)的開(kāi)始地址 */ printf(\n 輸入作業(yè)的大小 :)。 } else { fullblock[k].sizes=fullblock[k].sizesl。amp。 } freeblock[i].size=freeblock[i].size+l。 freeblock[j].size=freeblock[j].size+l。但是這個(gè)代碼語(yǔ)法本身有問(wèn) 題。 總結(jié) 在這次設(shè)計(jì)中遇到了很多實(shí)際性的問(wèn)題,在實(shí)際設(shè)計(jì)中才發(fā)現(xiàn),書本上理論性的東西與在實(shí)際運(yùn)用中的還是有一定距離的。 /* 空閑區(qū)始址 */ int size。 printf( * \1 模擬的主存空間的分配與回收 \1 *\n)。 printf( * *\n)。 j++) if(freeblock[i].startaddressfreeblock[j].startaddress) { =freeblock[j].startaddress。 freeblock[i].state=。 =freeblock[j].size。 } } void order1() { int j,i。 fullblock[j].address=fullblock[i].address。 printf( | start size state | | start size |\n)。 /* tag為檢查是否有滿足作業(yè)需要的空閑區(qū)的標(biāo)志 ,0 表 示滿 ,1 表示未滿 */ j=b。 fullblock[j].sizes=a。 fullblock[j].sizes=a。s)。 break。i++) { if(freeblock[i].startaddress+freeblock[i].size==samp。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1