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

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告-可變分區(qū)存儲(chǔ)管理和多級(jí)隊(duì)列調(diào)度算法模擬實(shí)現(xiàn)-文庫吧資料

2024-11-20 16:43本頁面
  

【正文】 操作系統(tǒng) 課程設(shè)計(jì)報(bào)告 2 實(shí)驗(yàn) 二:多級(jí)隊(duì)列調(diào)度算法模擬實(shí)現(xiàn) ? 在熟練掌握計(jì)算機(jī)處理機(jī)調(diào)度原理的基礎(chǔ)上,利用一種程序設(shè)計(jì)語言模擬實(shí)現(xiàn)多級(jí)反饋隊(duì)列進(jìn)程調(diào)度算法,一方面加深對(duì)原理的 理解,另一方面提高學(xué)生通過編程根據(jù)已有原理解決實(shí)際問題的能力,為學(xué)生將來進(jìn)行系統(tǒng)軟件開發(fā)和針對(duì)實(shí)際問題提出高效的軟件解決方案打下基礎(chǔ)??偠灾?,究其原因還是自己平時(shí)沒學(xué)牢固 。任何輸入而正常結(jié)束。在教案中提供了雙向鏈表的實(shí)現(xiàn)方法,但是感覺對(duì)于性能提升影響不大,但是對(duì)于編程復(fù)雜度提高較多,實(shí)際做下來感覺這個(gè)方法比較雞肋。但是過程中遇到很多困難,只能邊做邊查資料,問同學(xué)。 在這次操作系統(tǒng)的課程設(shè)計(jì)我使用了 C 語言編寫系統(tǒng)軟件,對(duì) OS 中可變分區(qū)存儲(chǔ)管理有了更深刻的理解。 return system(pause)。 printf(\n)。 printf( 10設(shè)置適應(yīng)算法 \n)。 printf( 8重新裝入未裝入內(nèi)存的作業(yè) \n)。 printf( 6顯示當(dāng)前作業(yè)鏈的信息 \n)。 printf( 4顯示當(dāng)前空閑分區(qū)鏈的信息 \n)。 printf( 2作業(yè)進(jìn)入內(nèi)存(內(nèi)存分配) \n)。 printf( 主界面\n)。 } void mainpage() //主界面 { int i = 0。 } printf(\n)。 } else { printf(| 已裝入內(nèi)存 )。 printf( )。 printf( )。 printf( )。 i != NULL。 printf( 作業(yè) ID 作業(yè)編號(hào) 作業(yè)大小 作業(yè)狀態(tài) \n)。 } void showJList() //顯示當(dāng)前作業(yè)鏈的信息 { printf(\n)。 } printf(\n)。 printf(|%10d, ijid)。 printf(|%10d, isize)。 i = inext) { printf( %10d, istartAddress)。 for (aNode * i = al。 printf( 當(dāng)前已分配分區(qū)鏈信息\n)。 printf(\n)。 printf(\n)。 printf( )。 i != NULL。 printf( 分區(qū)起始地址 分區(qū)大小 \n)。 } } } } void showFList() //顯示當(dāng)前空閑分區(qū)鏈的信息 { printf(\n)。 } else { istatus = 1。 i = inext) { if (istatus == 0) { doFitAlgorithm()。 } void reload()//重新裝入作業(yè)鏈中未裝入內(nèi)存的作業(yè) { for (jNode * i = jl。 flsize = userMemory sum。 } if (fl != NULL) //fl 不為空表示還存在空閑空間,否則不存在空閑空間 { flnext = NULL。 i = inext) { istartAddress = i next size + i nextstartAddress。 //記錄已分配空間的總大小 for (aNode * i = al。 delete ns。 nsnextlast = nslast。 } else if (nsnext == NULL) { //若 ns 為尾結(jié)點(diǎn),則直接將該結(jié)點(diǎn)刪除 nslastnext = NULL。amp。 nssize = nssize + tsize。amp。 (ns == NULL)) { //有前一個(gè)分區(qū)可以與之合并 lssize = lssize + tsize。 } } if ((ls != NULL) amp。 fllast = t。 (ns == NULL)) { //沒有相鄰的空閑分區(qū)可以合并,則單獨(dú)作為一個(gè)分區(qū)插入空閑分區(qū)鏈表 if (fl == NULL) { fl = t。 } } if ((ls == NULL) amp。 i = inext) { if ((endAddress + 1) == istartAddress) { //查找與其結(jié)束地址后相鄰的空閑分區(qū) ns = i。 for (fNode * i = fl。 tlast = NULL。 tstartAddress = startAddress。 fNode * ns = NULL。 mergeMemory(startAddress, endAddress)。 anextlast = alast。 } else if (anext == NULL) { alastnext = NULL。 endAddress = startAddress + asize 1。 break。 i != NULL。 //待合并分區(qū)的起始地址 int endAddress。 } } void deallocateMemory(int jid) //內(nèi)存回收 { aNode * a = (aNode *)malloc(sizeof(aNode))。 deallocateMemory(id)。 jobnextlast = joblast。 //若該 job 為鏈表頭結(jié)點(diǎn),則 jl 鏈表直接指向其下一個(gè)結(jié)點(diǎn) } else if (jobnext == NULL) { joblastnext = NULL。 } } if (flag == 0) { printf(\n 該 ID 不存在?。?! \n)。 flag = 1。 i != NULL。 cin id。 //用于標(biāo)記該 ID 是否存在, 0 為不存在 int id = 0。 } void finishJob() //完成作業(yè) { jNode * job = (jNode *)malloc(sizeof(jNode))。 break。 } delete i。 } else { ilastnext = inext。 } else { //若該分區(qū)大小恰 好等于作業(yè)大小,則從空閑分區(qū)鏈表中刪除該分區(qū) if (ilast == NULL) { fl = inext。 } if (isize tmpsize) { //若該分區(qū)大小大于作業(yè)大小,則將剩余大小重新賦給該分區(qū) istartAddress = istartAddress + tmpsize。 allast = t。 if (al == NULL) //將已分配的分區(qū)接入已分配分區(qū)鏈表中 { //若 al 鏈為空,則直接將 al 指向該結(jié)點(diǎn) al = t。 tlast = NULL。 tsize = tmpsize。 //更改作業(yè)狀態(tài)為已裝入內(nèi)存 aNode * t = (aNode *)malloc(sizeof(aNode))。 i != NULL。 } } int allocateMemory(jNode * tmp) //內(nèi)存分配 { int flag = 0。 //在進(jìn)行內(nèi)存分配之前需執(zhí)行適應(yīng)算法 if (allocateMemory(job) == 0) //開始內(nèi)存分配 { printf(\n 沒有足夠的內(nèi)存空間分配給該作業(yè)?。?! \n)。 jl = job。 } else { //若 jl 不為空,則將該結(jié)點(diǎn)插入 jl 鏈的前端 jobnext = jl。 jobnext = NULL。 jobstatus = 0。 jobnum = num。 jNode * job = (jNode *
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1