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

正文內容

[it計算機]操作系統(tǒng)實驗進程管理存儲器管理設備管理實驗代碼報告(編輯修改稿)

2024-12-18 15:23 本頁面
 

【文章內容簡介】 timeint 的語句。當 timeint 的返回值為TURE 時,表示時間片到限,進程中止執(zhí)行,返回主控程序。 調試程序出現(xiàn)的問題及解決的方法 調試程序過程中發(fā)現(xiàn)一些問題主要問題如下: 輸出內容多,在屏幕上一閃而過,可采用在程序中預先設置斷點或將輸出信息發(fā)送到文件中的方法來處理。 設計體會 計算機操作系統(tǒng)實驗指導書 13 操作系統(tǒng)是現(xiàn)代計算機系統(tǒng)工作的基石,而且進行程序離不開操作系統(tǒng)的支持。本程序完成后對于進程管理有了整體的定義和 理解。進程:可并發(fā)執(zhí)行的程序,在某個數(shù)據(jù)集合上的一次運行過程。而進程控制塊是為使程序(含數(shù)據(jù))能獨立運行,為之配置一進程控制塊,即 PCB。進程有三種基本狀態(tài)為就緒態(tài)( Ready),執(zhí)行態(tài)( Running),阻塞態(tài)( Blocked)在程序中還涉及到進程的阻塞與喚醒 ,系統(tǒng)有 3 個進程,執(zhí)行時涉及到高低就緒態(tài)和優(yōu)先數(shù)的選擇。 經過本次試驗加深了對于進程管理的理解和認識,對于它的執(zhí)行過程和整體的結構有了一定的了解, 熟悉了進程管理中主要數(shù)據(jù)結構的設計及進程調度算法,進程控制機構,同步機構,通訊機構的實施。通過本次實驗把理 論知識轉化成了實際結果,強化了理論知識的學習把課本知識生動的得到了驗證。對今后從事實驗工作打下了堅實的基礎。 實驗二 存儲器管理 一、目的 本課題實驗的目的是,使學生實驗存儲器管理系統(tǒng)的設計方法;加深對所學各種存儲器管理方案的了解;要求采用一些常用的存儲器分配算法,設計一個存儲器管理模擬系統(tǒng)并調試運行。 二、 題目 存儲器管理 三、要求及提示 要求采用一種常用的存儲器分配算法,設計一個存儲器管理模擬系統(tǒng)。允許進行多次的分配和釋放,并可向用戶反饋分配和釋放情況及當前內存的情況;采用“命令菜單”選擇和鍵盤 命令輸入的會話方式,根據(jù)輸入請求調用分配模塊,或回收模塊,或內存查詢模塊,或最終退出系統(tǒng)。 編程實現(xiàn)。 工具: C語言或其它高級語言 實驗時間: 3學時 四、實驗報告 寫出存儲器管理的思想。 畫出算法流程圖和設置的數(shù)據(jù)結構。 寫出調試程序出現(xiàn)的問題及解決的方法。 打印實驗報告及程序清單。 報告給出測試的結果。 五、范例 采用可變分區(qū)存儲器管理方案的模擬系統(tǒng)。 計算機操作系統(tǒng)實驗指導書 14 問題描述 該模擬系統(tǒng)的外部特性與真實系統(tǒng)基本一樣。存儲分配算法采用首次適應法。用“拼,接”和“緊湊”技術來處理存儲器碎 片。 算法 存儲分配算法采用首次適應( FF)法。根據(jù)指針 freep查找自由鏈,當找到第一塊可滿足分配請求的空閑區(qū)時便分配之。當某空閑區(qū)被分配后的剩余空閑區(qū)空間大于規(guī)定的碎片最小容量 min 時,則形成一個較小的空閑區(qū)留在自由鏈中。 回收時,根據(jù) MAT 將指定分區(qū)鏈入自由鏈。若該分區(qū)有前鄰或后鄰空閑分區(qū),則將他們拼接成一塊加大的空閑區(qū)。 當某個分配請求不能被滿足,但此時系統(tǒng)中所有碎片總量滿足分配請求的容量時,系統(tǒng)立即進入內存“緊湊”以消除碎片。即將各作業(yè)占用區(qū)集中下移到用戶內存區(qū)的下部(高地址部分),形成一片連 接的作業(yè)區(qū),而在用戶內存區(qū)的上部形成一塊較大的空閑區(qū)。然后再進行分配。 本系統(tǒng)的主要程序模塊包括:分配模塊 ffallocation,回收模塊 ffcolection,緊湊模塊coalesce 及命令處理模塊 menu。 Menu用以模擬系統(tǒng)的輸入,采用“命令菜單”選擇和鍵盤命令輸入的會話方式,根據(jù)輸入請求調用分配模塊,或回收模塊,或內存查詢模塊,或最終退出系統(tǒng)。 系統(tǒng)的主流程如圖 3 所示。 數(shù)據(jù)結構 ( 1) 自由鏈與區(qū)頭。內存空閑區(qū)采用自由鏈結構。鏈首由 freep 指向,鏈中各個空閑區(qū)按地址遞增次序排列。初啟時整個用戶內存 區(qū)為一個空閑區(qū)。在每個空閑區(qū)首部設置一個區(qū)頭( freearca)結構。區(qū)頭信息包括: size 空閑區(qū)大?。ㄒ宰止?jié)計),包括區(qū)頭所占空間; next 前向鏈指針,指向下一個空閑區(qū); back 反向鏈指針,指向上一個空閑區(qū); address 本空閑區(qū)首地址。 ( 2) 內存分配表 MAT。系統(tǒng)設置一個 MAT,每個運行作業(yè)都在 MAT 中占有一個表目,回收分區(qū)時清除相應表目。表目信息包括: name 用戶作業(yè)名; length 作業(yè)區(qū)大??; addr 作業(yè)區(qū)首地址; 程序清單 include include define TOTAL 5000 define SETADDRESS 2020 define MIN 100 define MAX 10 typedef struct freearea 計算機操作系統(tǒng)實驗指導書 15 { int address。 int size。 struct freearea *next。 struct freearea *back。 }*freeptr。 typedef struct mat { char name。 int address。 int length。 struct mat *next。 struct mat *back。 }*jobptr。 char string[10]。 long totalfree。 char jobnumber。 freeptr freep。 jobptr jobp。 /********初始化 **********/ init() { freep=(freeptr)malloc(sizeof(struct freearea))。 freepsize=TOTAL。 freepaddress=SETADDRESS。 freepnext=NULL。 freepback=NULL。 totalfree=TOTAL。 jobp=NULL。 jobnumber=0。 return(0)。 } /******分配模塊 *******/ fengpei(int jl,char jn) {freeptr fp。 jobptr jp,jp1,jp2。 jp2=(jobptr)malloc(sizeof(struct mat))。 if(totalfreejl) return(1)。 fp=freep。 計算機操作系統(tǒng)實驗指導書 16 while(fp!=NULL) {if(fpsizejl) fp=fpnext。 else {jobnumber=jobnumber+1。 totalfree=totalfreejl。 jp2name=jn。 jp2length=jl。 jp2address=freepaddress。 if(jobp==NULL) { jp2next=NULL。 jp2back=NULL。 jobp=jp2。 } else { jp=jobp。 while(jp!=NULLamp。amp。(jp2addressjpaddress)) { jp1=jp。 jp=jpnext。 } jp2next=jp。 if(jp==NULL) { jp2back=jp1。 jp1next=jp2。 } else { jp2back=jpback。 if(jpback!=NULL) jp1next=jp2。 else jobp=jp2。 jpback=jp2。 } } if((fpsizejl)MIN) { if(fpnext!=NULL) fpnextback=fpback。 if(fpback!=NULL) fpbacknext=fpnext。 else freep=fpnext。 /* return()。*/ } else 計算機操作系統(tǒng)實驗指導書 17 { fpsize=fpsizejl。 fpaddress=fpaddress+jl。 } return(2)。 } if(totalfree=jl) return(0)。 } } /*********顯示模塊 *********/ xianshi() {jobptr jp。 /****清屏 ****/ if(jobnumber=0) printf(NO JOB!)。 else { printf(name\t\tlength\t\taddress\n)。 jp=jobp。 while(jp!=NULL) { printf(%c\t\t%d\t\t%d\n,jpname,jplength,jpaddress)。 jp=jpnext。 } } printf(\nthe total left is %d bytes:,totalfree)。 } /******回收模塊 ********/ huishou(char jn) { freeptr fp,fp1,fp2。 jobptr jp。 int f=0。 jp=jobp。 while((jp!=NULL)amp。amp。(jpname!=jn)) jp=jpnext。 if(jp!=NULL) { 計算機操作系統(tǒng)實驗指導書 18 jobnumber=jobnumber1。 totalfree=totalfree+jplength。 if(freep==NULL) { freep=(freeptr)malloc(sizeof(struct freearea))。 freepaddress=jpaddress。 freepsize=jpaddress。 freepnext=NULL。 freepback=NULL。 } else { fp=freep。 while((fp!=NULL)amp。amp。(fpaddressjpaddress)) { fp1=fp。 fp=fpnext。 } if(fp!=NULL) { if((fpnext!=NULL)amp。amp。(fpnextaddress=jpaddress+jplength)) f=f+1。 if((fpback!=NULL)amp。amp。(jpaddress=fp1address+fp1size)) f=f+2。 } else if((jpaddress)=(fp1address+fp1size)) f=f+2。 switch(f) { case 0: { fp2=(freeptr)malloc(sizeof(struct freearea))。 fp2address=jpaddress。 fp2size=jplength。 fp2next=fp。 if(fp!=NULL) { fp2back=fpback。 if(fpback!=NULL) fp1next=fp2。 else freep=fp2。 計算機操作系統(tǒng)實驗指導書 19 fpback=fp2。 } else { fp2back=fp1。 fp1next=fp2。 } } case 1: { fpsize=fpsize+jplength。 fpaddress=jpaddress。 } case 2: fp1size=fp1size+jplength。 case 3: { fp1size=fp1size+jplength+fpsize。 fp1next=fpnext。 if(fpnext!=NULL) fpnextback=fp2。 free(fp)。 } } } if(jp==jobp) jobp=jpnext。 if(jpnext!=NULL) jpnextback=jpback。 if(jpback!=NULL) jpback
點擊復制文檔內容
黨政相關相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1