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

正文內(nèi)容

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

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

【正文】 最后要感謝計(jì)算機(jī)系的全體老師,感謝他們的指導(dǎo)和幫助,希望他們身體健康、工作順利。在我的選題、開(kāi)題和以后的設(shè)計(jì)中,楊老師給予了我很大的幫助。 default: printf(對(duì)不起!您的選擇有誤!請(qǐng)重新選擇!\n\n)。 case 4: if (endProcess()) // printf(進(jìn)程已結(jié)束!\n\n)。 case 2: output()。 scanf(%d, amp。}菜單模塊代碼:void menu(){ int choice。 } process[ID][0] = 0。 }*/ for (int j=1。 } else printf(對(duì)不起!您所要結(jié)束的進(jìn)程%d不存在,請(qǐng)重新輸入\n\n,ID)。 } if(ID==p1pid) { if(p1==finish) ready=p1next。 } else if(p1=finish) { while(ID!=p1pidamp。 } if(ID==p1pid) { if(p1==ready) ready=p1next。 if(p1=ready) { while(ID!=p1pidamp。 printf(請(qǐng)輸入您要結(jié)束的進(jìn)程號(hào)(小于%d):, N)。 i++) if (process[i][0] 0) printf(%2d , i)。 return false。 printf( 輸出結(jié)束\n)。R39。W39。F39。 finish = run。 runround+=timeSlice。R39。 run=ready。 scanf(%d,amp。 if(processCount1) { printf(當(dāng)前程序無(wú)進(jìn)程,請(qǐng)重新輸入!\n\n)。 } processCount++。 if(ready!=NULL) insert(p)。 pstate=39。 //strcpy(ppid,pid)。 process[na][i] = k。 i=pages。 return false。 goto loop。 a[j]=na。 scanf(%d%d%d, amp。 int a[N]。 run=NULL。 int time。 tail=tailnext。 while(q!=NULL) { prt1(q)。q!=run) { prt1(q)。 if(run!=NULL) prt1(run)。 ready=readynext。)。)。 count = 0。 /*if (count == 15) { putchar(39。 j=process[id][0]。 printf(||\n)。 // for (int i=0。 scanf(%d,amp。\n39。\n39。 for (int k=0,count=0。}輸出模塊代碼:void output(){ printf(\n內(nèi)存總量:%d 塊, 已用空間:%d 塊, 剩余空間:%d 塊, 進(jìn)程總數(shù):%d 個(gè)\n, N, NblockCount, blockCount, processCount)。 } processCount = 0。 i++){ process[i][0] = 0。 iN。 i80。 // 初始化內(nèi)存狀態(tài)標(biāo)志數(shù)組 for (i=0。void output()。 struct node *next。 int needtime。 // 記錄當(dāng)前進(jìn)程數(shù)bool flag = true。 附錄全局變量代碼:include include includeincludedefine N 100 // 共有100個(gè)內(nèi)存塊int process[N][N+1]。這是一個(gè)容易被忽略的問(wèn)題。比如,在輸出每個(gè)進(jìn)程的內(nèi)存使用情況時(shí),首先輸出該進(jìn)程占用的總內(nèi)存,然后以統(tǒng)一的對(duì)齊方式依次輸出各個(gè)內(nèi)存塊編號(hào)?;痉猪?yè)的思想是比較簡(jiǎn)單的,而且應(yīng)用了一種可行的數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)程序中需要用到的數(shù)據(jù),因此這個(gè)實(shí)驗(yàn)在構(gòu)思上是沒(méi)有多少難度的。 blockCount+= pages。 j++) { block[process[ID][j]] = 0。 } else printf(對(duì)不起!您所要結(jié)束的進(jìn)程%d不存在,請(qǐng)重新輸入\n\n,ID)。 } if(ID==p1pid) { if(p1==finish) ready=p1next。 } else if(p1=finish) { while(ID!=p1pidamp。 } if(ID==p1pid) { if(p1==ready) ready=p1next。 if(p1=ready) { while(ID!=p1pidamp。 printf(請(qǐng)輸入您要結(jié)束的進(jìn)程號(hào)(小于%d):, N)。 i++) if (process[i][0] 0) printf(%2d , i)。 return false。finish=p1next。p1next!=NULLp2=p1。然后清除process[ID][]這一行的內(nèi)容,同時(shí)置內(nèi)存標(biāo)志數(shù)組block[N]為0表示釋放。第一個(gè)結(jié)點(diǎn)雖然仍存在,但它已與鏈表脫離。如果刪除的不是第一個(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)。 printf( 輸出結(jié)束\n)。R39。W39。F39。 finish = run。 runround+=timeSlice。R39。 run=ready。 scanf(%d,amp。結(jié)束輸出運(yùn)行隊(duì)列時(shí)間片信息輸出就緒隊(duì)列時(shí)間片信息輸出完成隊(duì)列時(shí)間片信息truefalsetruefalsetruefalse圖 353(b)prt輸出函數(shù)流程圖 主要代碼bool Roundrun(){ int timeSlice。amp。runnext = finish。R39。W39。runstate=39。F39。runcount++。調(diào)用輸出函數(shù):prt()。 ready=readynext。(3) 執(zhí)行處理機(jī)調(diào)度時(shí),開(kāi)始選擇隊(duì)首的第一個(gè)進(jìn)程運(yùn)行。直至所有的進(jìn)程運(yùn)行完畢。} 測(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í)間片相同。 } } else printf(當(dāng)前內(nèi)存無(wú)進(jìn)程!\n)。 j=process[id][0]。 printf(||\n)。id)。)。)。 kN。 if (flag amp。printf(| 頁(yè)號(hào)| 塊號(hào)|\n)。在配置了頁(yè)表后,進(jìn)程執(zhí)行時(shí)通過(guò)查找頁(yè)表,即可找到每頁(yè)在內(nèi)存中的物理塊號(hào)。 } return true。 ready=p。 pround =0。 pcputime=0。 k++。amp。 process[na][0] = pages。 goto loop。kj。time,amp。jM。 scanf(%d,amp。 ready=NULL。 int pages, k = 0。k++。blockCount = pages。 pstate=39。 tail=ready。ready!=NULLtailnext =q。圖332把具有統(tǒng)一狀態(tài)的PCB用鏈接字鏈接成一個(gè)隊(duì)列。 int state。 int round。 flag = false。 j++) process[i][j] = 1。 iN。 for (i=0。 for (i=0。012N10 1 2 N1 N...進(jìn)程號(hào)進(jìn)程塊數(shù)塊占用標(biāo)志圖 321 內(nèi)存二維數(shù)組示意圖 主要代碼void init(){ int i, j。 內(nèi)存初始化 內(nèi)存定義定義內(nèi)存塊共有N個(gè),初始化后的內(nèi)存空間應(yīng)該有一部分已經(jīng)被使用,這可以用系統(tǒng)提供的隨機(jī)數(shù)函數(shù)rand()完成。 int state。 int round。 // 記錄當(dāng)前內(nèi)存剩余空間int processCount。函數(shù)之間的調(diào)用的關(guān)系如圖23所示。(6) 運(yùn)行進(jìn)程代碼塊。(4) 創(chuàng)建進(jìn)程代碼塊。(2) 初始化代碼塊。(1) 回收的PCB在就緒隊(duì)列。內(nèi)存分配主要完成下列工作:(1) 初始化內(nèi)存數(shù)組,將其分割成一組不連續(xù)的塊。(3) 將撤銷信息顯示在屏幕上。(3) 假如進(jìn)程運(yùn)行完便插入到完成隊(duì)列,從就緒隊(duì)列取下一進(jìn)程到運(yùn)行隊(duì)列。(4) 將PCB插入到就緒隊(duì)列,等待調(diào)度。 進(jìn)程創(chuàng)建一旦操作系統(tǒng)接收到用戶輸入的創(chuàng)建命令,便調(diào)用進(jìn)程創(chuàng)建函數(shù)按下列方式為用戶創(chuàng)建一個(gè)新進(jìn)程。如圖21運(yùn)行運(yùn)行完進(jìn)入時(shí)間片用完進(jìn)程調(diào)度釋放就緒完成圖21 進(jìn)程基于時(shí)間片輪轉(zhuǎn)算法的基本狀態(tài) 進(jìn)程控制塊進(jìn)程控制塊PCB(Process Control Block)是進(jìn)程最重要的數(shù)據(jù)結(jié)構(gòu),它用于描述和控制進(jìn)程,是進(jìn)程存在的唯一標(biāo)識(shí)。介紹各個(gè)代碼塊的詳細(xì)設(shè)計(jì)流程。介紹課題的背景、設(shè)計(jì)目標(biāo)和意義。通過(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ǔ)。操作系統(tǒng)的功能強(qiáng)大、代碼量大,閱讀理解實(shí)際系統(tǒng)對(duì)于一般的學(xué)習(xí)者來(lái)說(shuō)幾乎是不可能的,因此為了更好地理解操作系統(tǒng)的運(yùn)行機(jī)制,根據(jù)操作系統(tǒng)的原理和實(shí)際系統(tǒng)的組織結(jié)構(gòu)和一些具體實(shí)現(xiàn),設(shè)計(jì)一個(gè)模擬的操作系統(tǒng)來(lái)幫助我們更好地掌握操作系統(tǒng)的原理是非常必要的。(3) 熟悉了軟件工程開(kāi)發(fā)的基本方法、模型、步驟等,確定了系統(tǒng)的框架。創(chuàng)建進(jìn)程的同時(shí)完成對(duì)用戶提出內(nèi)存塊數(shù)的分配,并顯示在屏幕上。進(jìn)程管理部分主要實(shí)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1