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

正文內(nèi)容

操作系統(tǒng)課程設(shè)計實驗報告-可變分區(qū)存儲管理和多級隊列調(diào)度算法模擬實現(xiàn)(專業(yè)版)

2025-01-07 16:43上一頁面

下一頁面
  

【正文】 在這次操作系統(tǒng)中,使我對操作系統(tǒng)中進程的概念,進程的狀態(tài)轉(zhuǎn)換,線程的概念和多線程實現(xiàn)對處理器分配的基本原理有了更加深刻的理解。 操作系統(tǒng) 課程設(shè)計報告 12 if(point next!=NULL) { run round = pointnext round。 int k = 0。 GetFirst(timechip)。 for(i = 0。R39。 printf(輸入就緒隊列的個數(shù): \n)。 } in next = fst next。 操作系統(tǒng) 課程設(shè)計報告 2 printf(進程名 \t 優(yōu)先級 \t 輪數(shù) \tcpu 時間 \t 需要時間 \t 進程狀態(tài) \t 計數(shù)器 \n)。特別是進程調(diào)度程序,由于其運行頻率高,更加要求調(diào)度算法簡單,高效,系統(tǒng)開銷小,進程切換快,可以說,調(diào)度算法的好壞直接影響整個計算機系統(tǒng)的性能。通過驗證,可以說是做出結(jié)果。 printf( 1初始化(設(shè)置物理內(nèi)存中用戶區(qū)的大小,選取適應(yīng)算法) \n)。 for (jNode * i = jl。 } void showAList() //顯示當(dāng)前已分配分區(qū)鏈的信息 { printf(\n)。 i != NULL。 (ns != NULL)) { //前后兩個分區(qū)都與之合并 if (nslast == NULL) { //若 ns 為頭結(jié)點,則 fl 鏈表直接指向其下一個結(jié)點 fl = nsnext。 } if ((istartAddress + isize) == startAddress) { //查找與其起始地址前相鄰的空閑分區(qū) ls = i。 if (alast == NULL) { al = anext。 } else { if (joblast == NULL) //將已完成的作業(yè)從作業(yè)鏈表中刪除 { jl = jobnext。 inextlast = ilast。 i = inext) { if (isize = tmpsize) //找到一個符合要求的分區(qū)裝入作業(yè) { tmpstatus = 1。 //初始化一個新作業(yè)結(jié)點 jobid = count。 } break。 } doFitAlgorithm()。 setFitAlgorithm()。 根據(jù)可變分區(qū)存儲管理的基本原理,程序的實現(xiàn)主要包括以下幾 個部分: 1 內(nèi)存的初始化:包括確定內(nèi)存的起始地址、內(nèi)存的大小等。 2 要進入內(nèi)存的程序鏈表的產(chǎn)生:多個要進入內(nèi)存運行的程序的產(chǎn)生,包括程序編號、所占存儲空間的大小。 fNode * tmp = (fNode *)malloc(sizeof(fNode))。 } void doFitAlgorithm() //執(zhí)行適應(yīng)算法 { fNode * t = (fNode *)malloc(sizeof(fNode))。 } } } tmpStartAddress = istartAddress。 jobnum = num。 //更改作業(yè)狀態(tài)為已裝入內(nèi)存 aNode * t = (aNode *)malloc(sizeof(aNode))。 } delete i。 //若該 job 為鏈表頭結(jié)點,則 jl 鏈表直接指向其下一個結(jié)點 } else if (jobnext == NULL) { joblastnext = NULL。 } else if (anext == NULL) { alastnext = NULL。 } } if ((ls == NULL) amp。 } else if (nsnext == NULL) { //若 ns 為尾結(jié)點,則直接將該結(jié)點刪除 nslastnext = NULL。 i = inext) { if (istatus == 0) { doFitAlgorithm()。 printf( 當(dāng)前已分配分區(qū)鏈信息\n)。 i != NULL。 printf( 2作業(yè)進入內(nèi)存(內(nèi)存分配) \n)。但是過程中遇到很多困難,只能邊做邊查資料,問同學(xué)。 ? 多級隊列調(diào)度算法是一種動態(tài)優(yōu)先數(shù)調(diào)度算法。 while(print) { if(print LinkPCB != NULL) { p=print LinkPCB。 fst next = in。 scanf(%d,amp。 queue LinkPCB = queue LinkPCB next。i num。 while(run != NULL) { while(flag) { runcount++。 ReadyQueue *point。 InsertLast(run,pointnext)。其中也體現(xiàn)了我的不足: ( 1) 系統(tǒng)冗余代碼過多。 此系統(tǒng)簡單模擬實現(xiàn)多級反饋隊列調(diào)度算法,但是只是人為的模擬多線程實現(xiàn)處理器的分配,沒有真正地實現(xiàn)多線程,只是單執(zhí)行流過程。 runcount = 0。 } } void MultiDispatch() { int flag = 1。 } } void RoundRun(ReadyQueue *timechip) { int flag = 1。 printf(輸入進程名字和進程所需時間: \n)。 if(queue LinkPCB != NULL) { run state = 39。 int i。 } else { while(fstnext != NULL) { 操作系統(tǒng) 課程設(shè)計報告 4 fst = fstnext。 PCB *p?,F(xiàn)代操作系統(tǒng)廣泛采用多道程序設(shè)計的技術(shù)來提高系統(tǒng)吞吐量,提高程序的并發(fā)度和資源利用率。 在這次操作系統(tǒng)的課程設(shè)計我使用了 C 語言編寫系統(tǒng)軟件,對 OS 中可變分區(qū)存儲管理有了更深刻的理解。 printf( 主界面\n)。 printf( 作業(yè) ID 作業(yè)編號 作業(yè)大小 作業(yè)狀態(tài) \n)。 printf(\n)。 } void reload()//重新裝入作業(yè)鏈中未裝入內(nèi)存的作業(yè) { for (jNode * i = jl。amp。 i = inext) { if ((endAddress + 1) == istartAddress) { //查找與其結(jié)束地址后相鄰的空閑分區(qū) ns = i。 endAddress = startAddress + asize 1。 } } if (flag == 0) { printf(\n 該 ID 不存在!??! \n)。 } else { ilastnext = inext。 i != NULL。 jNode * job = (jNode *)malloc(sizeof(jNode))。 } case 4: { if (jstartAddress tstartAddress) //最后適應(yīng)算法,找到鏈表中分區(qū)起始地址最大的分區(qū) { t = j。 cin fitAlgorithm。 cin userMemory。通常用鏈表把這些同種類型的存儲空間連接起來,使用結(jié)構(gòu)體來描述每個存儲空間的屬性信息??梢园堰@些內(nèi)容以記錄式文件的形式保存到磁盤上,也可以把他們存放在二維數(shù)組中。 tmpstartA
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1