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

正文內(nèi)容

最新基于c語(yǔ)言的小型模擬操作系統(tǒng)設(shè)計(jì)-文庫(kù)吧在線文庫(kù)

  

【正文】 部鏈表都找不到要?jiǎng)h除的結(jié)點(diǎn)為止。 ready = ready next。 run = NULL。 runcount++。 ready=readynext。 if(processCount1) { printf(當(dāng)前程序無(wú)進(jìn)程,請(qǐng)重新輸入!\n\n)。 finish = run。tail = run。 run = NULL。run != NULLruncputime=runcputime+timeSlice。另外,再設(shè)一個(gè)當(dāng)前運(yùn)行進(jìn)程的指針,指向當(dāng)前正在運(yùn)行的進(jìn)程。即將CPU的處理時(shí)間劃分成一個(gè)個(gè)相同的時(shí)間片,就緒隊(duì)列的諸進(jìn)程輪流運(yùn)行一個(gè)時(shí)間片。 j++) { printf(| %2d | %2d |\n,count,process[id][j],count++)。 printf(內(nèi)存詳細(xì)使用情況如下:\n)。 count = 0。amp。內(nèi)存輸出函數(shù)output()主要功能是輸出內(nèi)存初始化下的內(nèi)存占用信息以及在系統(tǒng)執(zhí)行撤銷(xiāo)進(jìn)程函數(shù)endProcess()后輸出內(nèi)存占用情況。 tail=ready。 pneedtime=time。 k100) k++。 } if (pages blockCount) { printf(錯(cuò)誤!內(nèi)存分配失敗,沒(méi)有你要求的進(jìn)程塊數(shù)!\n)。pages)。M)。 PCB *p。process[na][0] = pages。ppid=na。現(xiàn)做如下定義。 int needtime。 } processCount = 0。 iN。 for (i=0。 struct node *next。 // 記錄當(dāng)前進(jìn)程數(shù)bool flag = true。采用時(shí)間片輪轉(zhuǎn)調(diào)度算法調(diào)度進(jìn)程運(yùn)行。初始化內(nèi)存數(shù)組。(2) 為進(jìn)程分配用戶(hù)提出請(qǐng)求的頁(yè)數(shù)。(4) 否則將這一進(jìn)程插入到就緒隊(duì)列隊(duì)尾,等待下一次調(diào)度。(1) 申請(qǐng)一個(gè)空白的PCB。第四章 問(wèn)題與總結(jié)。 意義通過(guò)在平時(shí)原有認(rèn)識(shí)的基礎(chǔ)上又進(jìn)一步的系統(tǒng)的學(xué)習(xí)了操作系統(tǒng)的相關(guān)知識(shí),強(qiáng)化了自己的認(rèn)知。(4) 使用C語(yǔ)言編寫(xiě)了模擬操作系統(tǒng)。進(jìn)程的創(chuàng)建和撤銷(xiāo)主要應(yīng)用指針和鏈表的知識(shí),進(jìn)程的運(yùn)行方式采用的是時(shí)間片輪轉(zhuǎn)調(diào)度算法,通過(guò)輸入相關(guān)指令可以看到多個(gè)進(jìn)程在時(shí)間片調(diào)度算法下由就緒態(tài)到運(yùn)行態(tài)再到完成態(tài)的全過(guò)程。 本科生畢業(yè)設(shè)計(jì)(創(chuàng)作) 題  目 基于C語(yǔ)言的小型模擬操作系統(tǒng)設(shè)計(jì) (只包含進(jìn)程管理和存儲(chǔ)管理)  姓  名   王在平        學(xué)  號(hào)   200910624231      院  系   計(jì)算機(jī)系        專(zhuān)  業(yè)   計(jì)算機(jī)科學(xué)與技術(shù)     指導(dǎo)教師  楊 瑞        2013 年 6 月 教務(wù)處制本科生畢業(yè)設(shè)計(jì)(論文、創(chuàng)作)聲明本人鄭重聲明:所呈交的畢業(yè)設(shè)計(jì),是本人在指導(dǎo)教師指導(dǎo)下,進(jìn)行研究工作所取得的成果。進(jìn)程管理部分主要實(shí)現(xiàn)了進(jìn)程的創(chuàng)建和撤銷(xiāo)、進(jìn)程的運(yùn)行。(3) 熟悉了軟件工程開(kāi)發(fā)的基本方法、模型、步驟等,確定了系統(tǒng)的框架。通過(guò)設(shè)計(jì)模擬操作系統(tǒng),加深學(xué)生對(duì)操作系統(tǒng)實(shí)現(xiàn)思路的理解,提高綜合運(yùn)用所學(xué)知識(shí)的能力,以及培養(yǎng)系統(tǒng)設(shè)計(jì)能力,為以后更進(jìn)一步的設(shè)計(jì)和分析系統(tǒng)打下堅(jiān)實(shí)的基礎(chǔ)。介紹各個(gè)代碼塊的詳細(xì)設(shè)計(jì)流程。 進(jìn)程創(chuàng)建一旦操作系統(tǒng)接收到用戶(hù)輸入的創(chuàng)建命令,便調(diào)用進(jìn)程創(chuàng)建函數(shù)按下列方式為用戶(hù)創(chuàng)建一個(gè)新進(jìn)程。(3) 假如進(jìn)程運(yùn)行完便插入到完成隊(duì)列,從就緒隊(duì)列取下一進(jìn)程到運(yùn)行隊(duì)列。內(nèi)存分配主要完成下列工作:(1) 初始化內(nèi)存數(shù)組,將其分割成一組不連續(xù)的塊。(2) 初始化代碼塊。(6) 運(yùn)行進(jìn)程代碼塊。 // 記錄當(dāng)前內(nèi)存剩余空間int processCount。 int state。012N10 1 2 N1 N...進(jìn)程號(hào)進(jìn)程塊數(shù)塊占用標(biāo)志圖 321 內(nèi)存二維數(shù)組示意圖 主要代碼void init(){ int i, j。 for (i=0。 j++) process[i][j] = 1。 int round。圖332把具有統(tǒng)一狀態(tài)的PCB用鏈接字鏈接成一個(gè)隊(duì)列。 tail=ready。blockCount = pages。 int pages, k = 0。 scanf(%d,amp。time,amp。 goto loop。amp。 pcputime=0。 ready=p。在配置了頁(yè)表后,進(jìn)程執(zhí)行時(shí)通過(guò)查找頁(yè)表,即可找到每頁(yè)在內(nèi)存中的物理塊號(hào)。 if (flag amp。)。id)。 j=process[id][0]。} 測(cè)試結(jié)果圖 344 運(yùn)行進(jìn)程 時(shí)間片輪轉(zhuǎn)調(diào)度算法所有就緒進(jìn)程按 FCFS排成一個(gè)隊(duì)列,總是把處理機(jī)分配給隊(duì)首的進(jìn)程,各進(jìn)程占用CPU的時(shí)間片相同。(3) 執(zhí)行處理機(jī)調(diào)度時(shí),開(kāi)始選擇隊(duì)首的第一個(gè)進(jìn)程運(yùn)行。調(diào)用輸出函數(shù):prt()。F39。W39。runnext = finish。結(jié)束輸出運(yùn)行隊(duì)列時(shí)間片信息輸出就緒隊(duì)列時(shí)間片信息輸出完成隊(duì)列時(shí)間片信息truefalsetruefalsetruefalse圖 353(b)prt輸出函數(shù)流程圖 主要代碼bool Roundrun(){ int timeSlice。 run=ready。 runround+=timeSlice。F39。R39。如果刪除的不是第一個(gè)結(jié)點(diǎn),則使p1后移指向下一個(gè)結(jié)點(diǎn)(p1next賦給p1),在此之前應(yīng)將p1的值賦給p2,使p2指向剛才檢查過(guò)的那個(gè)結(jié)點(diǎn),見(jiàn)圖 361 (b)。然后清除process[ID][]這一行的內(nèi)容,同時(shí)置內(nèi)存標(biāo)志數(shù)組block[N]為0表示釋放。finish=p1next。 i++) if (process[i][0] 0) printf(%2d , i)。 if(p1=ready) { while(ID!=p1pidamp。 } else if(p1=finish) { while(ID!=p1pidamp。 } else printf(對(duì)不起!您所要結(jié)束的進(jìn)程%d不存在,請(qǐng)重新輸入\n\n,ID)。 blockCount+= pages。比如,在輸出每個(gè)進(jìn)程的內(nèi)存使用情況時(shí),首先輸出該進(jìn)程占用的總內(nèi)存,然后以統(tǒng)一的對(duì)齊方式依次輸出各個(gè)內(nèi)存塊編號(hào)。 附錄全局變量代碼:include include includeincludedefine N 100 // 共有100個(gè)內(nèi)存塊int process[N][N+1]。 int needtime。void output()。 i80。 i++){ process[i][0] = 0。}輸出模塊代碼:void output(){ printf(\n內(nèi)存總量:%d 塊, 已用空間:%d 塊, 剩余空間:%d 塊, 進(jìn)程總數(shù):%d 個(gè)\n, N, NblockCount, blockCount, processCount)。\n39。 scanf(%d,amp。 printf(||\n)。 /*if (count == 15) { putchar(39。)。 ready=readynext。q!=run) { prt1(q)。 tail=tailnext。 run=NULL。 scanf(%d%d%d, amp。 goto loop。 i=pages。 //strcpy(ppid,pid)。 if(ready!=NULL) insert(p)。 if(processCount1) { printf(當(dāng)前程序無(wú)進(jìn)程,請(qǐng)重新輸入!\n\n)。 run=ready。 runround+=timeSlice。F39。R39。 return false。 printf(請(qǐng)輸入您要結(jié)束的進(jìn)程號(hào)(小于%d):, N)。 } if(ID==p1pid) { if(p1==ready) ready=p1next。 } if(ID==p1pid) { if(p1==finish) ready=p1next。 }*/ for (int j=1。}菜單模塊代碼:void menu(){ int choice。 case 2: output()。 default: printf(對(duì)不起!您的選擇有誤!請(qǐng)重新選擇!\n\n)。最后要感謝計(jì)算機(jī)系的全體老師,感謝他們的指導(dǎo)和幫助,希望他們身體健康、工作順利。在我的選題、開(kāi)題和以后的設(shè)計(jì)中,楊老師給予了我很大的幫助。 case 4: if (endProcess()) // printf(進(jìn)程已結(jié)束!\n\n)。 scanf(%d, amp。 } process[ID][0] = 0。 } else printf(對(duì)不起!您所要結(jié)束的進(jìn)程%d不存在,請(qǐng)重新輸入\n\n,ID)。 } else if(p1=finish) { while(ID!=p1pidamp。 if(p1=ready) { while(ID!=p1pidamp。 i++) if (process[i][0] 0) printf(%2d , i)。 printf( 輸出結(jié)束\n)。W39。 finish = run。R39。 scanf(%d,amp。 } processCount++。 pstate=39。 process[na][i] = k。 return false。 a[j]=na。 int a[N]。 int time。 while(q!=NULL) { prt1(q)。 if(run!=NULL) prt1(run)。)。 count = 0。 j=process[id][0]。 // for (int i=0。\n39。 for (i
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1