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

正文內(nèi)容

最新基于c語(yǔ)言的小型模擬操作系統(tǒng)設(shè)計(jì)(參考版)

2025-06-25 07:39本頁(yè)面
  

【正文】 38 。其次要感謝我身邊所有的同學(xué)和朋友們,由于自己沒(méi)能很好的安排自己的設(shè)計(jì)日程,所以在后續(xù)設(shè)計(jì)中趕得很緊,情緒比較低落,感謝他們的鼓勵(lì)和安慰,讓我能按時(shí)完成題目。由于在自己前期的設(shè)計(jì)中沒(méi)有下功夫鉆研,所以遇到很多的問(wèn)題,楊老師總是悉心指導(dǎo),不厭其煩。} 參考文獻(xiàn)[1]湯小丹,[M].西安電子科技大學(xué)出版社,2007. 1140[2][M].清華大學(xué)出版社,[3][M].清華大學(xué)出版社,2010年6月. 131305[4]Andrew S. [M].電子工業(yè)出版社, 致謝首先要感謝我的指導(dǎo)老師楊瑞老師。 } }}主函數(shù)模塊代碼:void main(){ init()。 case 0: return 。 //else // printf(進(jìn)程結(jié)束失?。n\n)。 break。 break。 continue。choice)。 printf(請(qǐng)輸入您要進(jìn)行的操作:)。 while (true) { printf(操作菜單:\n)。 return true。 processCount。 process[ID][j] =1。 jpages。 return false。 pages = process[ID][0]。 } else printf(對(duì)不起!您所要結(jié)束的進(jìn)程%d不存在,請(qǐng)重新輸入\n\n,ID)。 else p2next=p1next。 p1=p1next。amp。 } else printf(對(duì)不起!您所要結(jié)束的進(jìn)程%d不存在,請(qǐng)重新輸入\n\n,ID)。 else p2next=p1next。 p1=p1next。amp。 PCB *p1,*p2。 scanf(%d, amp。)。 putchar(39。 iN。 } printf(當(dāng)前內(nèi)存中的進(jìn)程有 %d 個(gè), 進(jìn)程號(hào)為:, processCount)。 if (processCount 1) { printf(當(dāng)前內(nèi)存沒(méi)有進(jìn)程!\n\n)。return true。 } printf(*****************************************************************************\n)。 ready = ready next。 run state = 39。 tail = run。 } } else { if(ready != NULL) { runstate = 39。 run = NULL。 } runstate = 39。 if(run != tail) { tailnext = ready。 runnext = finish。 runcount++。 runneedtime = runneedtime timeSlice。 prt()。 runstate=39。 ready=readynext。 printf(*****************************************************************************\n)。timeSlice)。 //printf( )。 return 0。}運(yùn)行進(jìn)程模塊代碼: bool Roundrun(){ int timeSlice。 printf(創(chuàng)建新進(jìn)程成功!\n\n)。 tail=ready。 else { pnext=ready。 pcount =0。W39。 pneedtime=time。 ppid=na。 } p=(PCB *)malloc(sizeof(PCB))。 block[k] = 1。 k100) k++。 i++) { while (block[k]==1 amp。 for (int i=1。 } blockCount = pages。 } if (pages blockCount) { printf(錯(cuò)誤!內(nèi)存分配失敗,沒(méi)有你要求的進(jìn)程塊數(shù)!\n)。 } } if (na 99) { printf(錯(cuò)誤!進(jìn)程號(hào)過(guò)大!\n)。k++) { if(a[k]==a[k+1]) { printf(進(jìn)程號(hào)輸入重復(fù),請(qǐng)重新輸入!\n\n)。 for(int k=0。pages)。na, amp。j++) { loop:printf(請(qǐng)輸入進(jìn)程號(hào)(小于%d)和運(yùn)行時(shí)間和所需頁(yè)面數(shù):, N)。 for(int j=0。M)。 printf( 輸入進(jìn)程數(shù):)。 finish=NULL。 //char na[10]。 PCB *p。}創(chuàng)建進(jìn)程模塊代碼:bool createProcess(){ int na。}void insert(PCB *q){ tailnext =q。 q=qnext。 } q=finish。 if(qnext == run) break。amp。 q=ready。 printf(* 進(jìn)程號(hào) cpu時(shí)間 所需時(shí)間 記數(shù) 時(shí)間片 狀態(tài) *\n)。}void prt1(PCB *q){ printf(* %10d %10d %10d %10d %10d %10c*\n, qpid,qcputime,qneedtime,qcount,qround,qstate)。R39。}void firstin(){ run=ready。\n39。 } // } } else printf(當(dāng)前內(nèi)存無(wú)進(jìn)程!\n)。\n39。 }*/ } printf(***輸出結(jié)束***\n)。 printf( )。\n39。 //printf(%2d , process[i][j], count++)。 j++) { printf(| %2d | %2d |\n,count,process[id][j],count++)。 for (int j=1,count=0。 printf(| 頁(yè)號(hào)| 塊號(hào)|\n)。 printf(進(jìn)程號(hào): %d \n, id)。 iN。 printf(內(nèi)存詳細(xì)使用情況如下:\n)。id)。 printf(請(qǐng)輸入要查看的進(jìn)程號(hào): )。)。 } } putchar(39。)。 if (count == 10) { putchar(39。 kN。 blockCount N) { printf(已使用的內(nèi)存塊(%d):\n, NblockCount)。 if (flag amp。 flag = false。 printf(初始化結(jié)果如下:)。 j++) process[i][j] = 1。 for (j=1。 iN。 i++) if (block[i] == 0) blockCount++。 for (i=0。 i++) block[rand()%(N1)] = 1。 for (i=0。 iN。初始化模塊代碼:void init(){ int i, j。//bool createProcess()。//void init()。}PCB。 int state。 int cputime。 int round。int M。 // 記錄當(dāng)前內(nèi)存剩余空間int processCount。 // 存放每個(gè)進(jìn)程的頁(yè)表int block[N]。通過(guò)自己編程模擬內(nèi)存分配,我不僅加深了對(duì)進(jìn)程調(diào)度和這類(lèi)內(nèi)存管理方式的理解,也增強(qiáng)了C語(yǔ)言的編程能力。這個(gè)程序起初基本沒(méi)考慮這個(gè)問(wèn)題,但在后來(lái)的調(diào)試過(guò)程中,逐漸加上了一些基本的容錯(cuò)功能,比如用戶在結(jié)束某進(jìn)程時(shí),其輸入的進(jìn)程號(hào)可能根本不存在,這時(shí)應(yīng)該給出用戶出錯(cuò)提示,并要求用戶重新輸入,但這里用了一個(gè)編程中不太推薦的方式:goto 語(yǔ)句。(2)程序的容錯(cuò)性。當(dāng)然,對(duì)于不同的模塊輸出的信息也應(yīng)該不一樣,比如,內(nèi)存初始化結(jié)束后應(yīng)該輸出哪個(gè)內(nèi)存塊被占用了,否則無(wú)法判斷后續(xù)的內(nèi)存分配是否正確,但在以后查看內(nèi)存使用情況時(shí)則不必把所有已占用的內(nèi)存塊輸出,因?yàn)槊總€(gè)進(jìn)程都會(huì)單獨(dú)把自己占用的內(nèi)存塊顯示出來(lái)。最終選擇了盡可能詳細(xì)地輸出有用信息,通過(guò)空格、空行、對(duì)齊等手段盡力使輸出格式簡(jiǎn)潔美觀。由于程序中主要使用的是數(shù)組,操作起來(lái)比較方便,不像前時(shí)間片輪轉(zhuǎn)算法需要用到大量的鏈表操作。其中最難的是模擬時(shí)間片輪轉(zhuǎn)算法的執(zhí)行過(guò)程和控制流程,經(jīng)過(guò)閱讀相關(guān)代碼和C語(yǔ)言的學(xué)習(xí)解決了這一問(wèn)題。 return true。 processCount。 process[ID][j] =1。 jpages。 pages = process[ID][0]。 } else printf(對(duì)不起!您所要結(jié)束的進(jìn)程%d不存在,請(qǐng)重新輸入\n\n,ID)。 else p2next=p1next。 p1=p1next。amp。 } else printf(對(duì)不起!您所要結(jié)束的進(jìn)程%d不存在,請(qǐng)重新輸入\n\n,ID)。 else p2next=p1next。 p1=p1next。amp。 PCB *p1,*p2。 scanf(%d, amp。)。 putchar(39。 iN。 } printf(當(dāng)前內(nèi)存中的進(jìn)程有 %d 個(gè), 進(jìn)程號(hào)為:, processCount)。 if (processCount 1) { printf(當(dāng)前內(nèi)存沒(méi)有進(jìn)程!\n\n)。p2next=p1next。ID==p1pidp1==readyp1==finishready=p1next。 p1=p1next。amp。最后進(jìn)程計(jì)數(shù)器processCount減1,相應(yīng)的把剩余塊計(jì)數(shù)器blockCount加上回收的頁(yè)面數(shù)。首先找到要回收的內(nèi)存數(shù)組的進(jìn)程號(hào),并用process[ID][0]記錄所要回收的頁(yè)面數(shù)。(2) 如果要?jiǎng)h除的不是第一個(gè)結(jié)點(diǎn),則將p1next賦給p2next,見(jiàn)圖3
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1