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

正文內(nèi)容

操作系統(tǒng)課設報告(存儲版)

2025-04-22 08:34上一頁面

下一頁面
  

【正文】 //缺頁數(shù)加1 } else{ for(i=sbottom。 count_order++。 int workplace。 //棧底指針}stack。iBLOCK_N。jORDER_N。 return random。(4) 文件目錄結構采用多級目錄結構。l close:用于關閉文件。 //文件大小 int fatherBlockNum。/*常量設置*/const int BlockSize = 512。 //FCB拷貝 OPENLIST() { files=0。 //本身的FCB fcb[0].fatherBlockNum=_FatherBlockNum。struct DISK/**********************************************************************/{ int FAT1[BlockCount]。 //FAT作備份 (2,2,C:\\)。 //輸入指令struct DISK *osPoint。int delfile(char *name)。 currentPath=C:\\。 return 1。i++){ if(dirfcb[i].type==DIRECTORY amp。 return 0。 /*接下來進行分配*/ osPointFAT1[iFAT]=osPointFAT2[iFAT] = 2。 return 1。i++){ //查找該目錄文件 if(dirfcb[i].type==DIRECTORY amp。 //當前子目錄的指針 sonDir=(struct dirFile *)(osPointdata [ j 3])。 dirfcb[temp].initialize()。 else dir=(struct dirFile *)(osPointdata [current3])。amp。 } if(i==BlockCount){ printf(磁盤已滿!\n)。 dirfcb[emptyNum].size =0。(osPointroot)。 } } printf(\n該目錄下共有 %d 個文本文件, %d 個文件夾\n\n,FileCount,DirCount)。i BlockFcbCount。kOPEN_MAX。 j = dirfcb [temp].currentBlockNum 。}/*進入當前目錄下的子目錄*/int changePath(char *sonfname){ struct dirFile *dir。 return 1。 } current = dirfcb[0].fatherBlockNum 。 //標記該目錄項為空文件 printf(在當前目錄下刪除文件成功!\n)。 } } } if(k!=OPEN_MAX){ close(name)。 } int k。 else dir=(struct dirFile *)(osPointdata [current3])。 } if(dirfcb[i].type==DIRECTORY){ //查找目錄文件 DirCount++。 //搜索當前目錄 struct dirFile *dir。 dirfcb[emptyNum].fatherBlockNum=current。iBlockCount。 isFound = 1。 //當前目錄的指針 if(current==2) dir=amp。 //fat清空 char *p=osPointdata[j3]。 } j = dirfcb[temp].currentBlockNum。 for(i=1。 //定位到子目錄盤塊號 dirinit (current,iFAT,sonfname)。 return 0。 i++){//查找空白fcb序號 if(dirfcb[i].type==Zero) break。 /*為了避免該目錄下同名文件夾*/ for(i = 1。 fclose(fp)。int read(char *file)。int create(char *name)。 //當前路徑int current=2。 //FAT2 FAT1[0]=FAT1[1]=FAT1[2]=2。 //標記為子項 fcb[i].type=Zero。struct dirFile/*目錄文件結構*/{ struct FCB fcb[BlockFcbCount]。 // 統(tǒng)計當前打開文件數(shù)目 struct OPENLIST //用戶文件打開表{ int files。 }}。 //文件名 char type。l create:用于創(chuàng)建目錄。(3) 空閑磁盤空間的管理可選擇位示圖或其它方法。 }}//生成隨機數(shù)int random_order(int start,int end){ int random。iPAGE_N。 }//初始化內(nèi)存void initMemory(memory *m){ int i。 int top。 }order。 //修改棧中頁的順序 sst[i]=pg。 print(*m)。 //棧頂指針加1 print(*m)。 //指令計數(shù)器加1 }} LRU算法void lru(memory *m,int order_id,page pag[],stack *s){ int pg=belong_page(order_id)。 //輸出內(nèi)存塊狀態(tài) } else{ //內(nèi)存塊已滿 pag[mblock[mpoint]].workplace=1。jBLOCK_N。 pag[p].workplace=1。 for(j=0。i320。 i++。 i++。 count_order++。 count_order++。 //指令計數(shù)器加1 } while(count_order320){ if(m111){ m2=random_order(0,m11)。 //指令計數(shù)器加1 if(m1+1320){ p=belong_page(m1+1)。 } //隨機生成320條指令 m1=random_order(0,319)。3) 置換算法請分別采用OPT、FIFO和LRU;4) 作業(yè)中的指令順序按如下原則生成:l 50%的指令順序執(zhí)行;l 25%的指令跳轉到當前地址前(目標地址隨機生成);l 25%的指令跳轉到當前地址后(目標地址隨機生成);具體的實施方法是:① 在[0,319]的指令地址之間隨機選取一條起始執(zhí)行指令,其序號為m;② 順序執(zhí)行下一條指令,即序號為m+1的指令;③ 通過隨機數(shù)跳轉到前地址部分[0,m1]中的某條指令處,其序號為;④ 順序執(zhí)行下一條指令,其地址為+1的指令;⑤ 通過隨機數(shù)跳轉到后地址部分[+2,319]中的某條指令處,其序號為; ⑥ 順序執(zhí)行下一跳指令,即序號為+1的指令;⑦ 重復跳轉到前地址部分、順序執(zhí)行、跳轉到后地址部分、順序執(zhí)行的過程,直至執(zhí)行320條指令。 print(space_head)。tsk[5],5,60)。 sort(space_head)。tsk[3],3,200)。tsk[2],2,100)。 sort(space_head)。 print(space_head)。 print(space_head)。 print(space_head)。tsk[2],2,100)。tsk[0],0,130)。 printf(親輸入分區(qū)方式,F(xiàn)用首次適應算法分配,B用最佳適應算法分配\n\n)。 tsksize=size。ifree_block1。 for(i=0。 //任務id int size。 插入有序鏈表 t=slinknext。 while(t){ q=tp。算法代碼如下://沒分配完一個分區(qū)或進程釋放空間,對分區(qū)鏈表進行排序void sort(space_link slink){ space_link tp,t,p,q。 } if(i==free_block) printf(任務%d分配空間失敗\n,task_id)。3 模擬算法的實現(xiàn)NY開始初始化空閑分區(qū)初始化各任務選擇分區(qū)模式,輸入F首次適應算法分區(qū)最佳首次適應算法分區(qū)初始化各任務結束: 動態(tài)分區(qū)分配流程圖 首次適應算法首次適應算法(Firstfit):當要分配內(nèi)存空間時,就查表,在各空閑區(qū)中查找滿足大小要求的可用塊。 while(countN){ program=maxPriority(ready)。 */ } }}int main(void){ pcb pcb[N]。 pnext=ready_endnext。 block_endnext=p。 if(pcb[prog].state==39。 */ ready_end=t。 //就緒隊列尾指針 q=block_q。 if(pblocktime==0) //判斷阻塞隊列中進程狀態(tài)是否變成就緒狀態(tài) pstate=39。 改變運行進程 if(running_palltime==0) 的信息和狀態(tài) running_pstate=39。progN){ //判斷是否有進程運行 p=ready_qnext。 max=prog=INT_MIN。pcb[i+1]。 39。i++) scanf(%d,amp。 //初始化進程開始阻塞時間 for(i=0。 printf(\n)。i++) scanf(%d,amp。 //初始化進程id for(i=0。 //進程狀態(tài) pcb* next。(4)假設在調(diào)度前,系統(tǒng)中有5個進程,它們的初始狀態(tài)如下:ID01234PRIORITY93830290CPUTIME00000ALLTIME33634STARTBLOCK21111BLOCKTIME30000STATEREADYREADYREADYREADYREADY(5)為了清楚地觀察諸進程的調(diào)度過程,程序應將每個時間片內(nèi)的進程的情況顯示出來,參照的具體格式如下:RUNNING PROG: iREADY_QUEUE:id1id2BLOCK_QUEUE:id3id4==================================ID 0 1 2 3 4PRIORITY P0 P1 P2 P3 P4CPUTIME C0 C1 C2 C3 C4ALLTIME A0 A1 A2 A3 A4STARTBLOCK T0 T1 T2 T3 T4BLOCKTIME B0 B1 B2 B3 B4STATE S0 S1 S2 S3 S43 使用動態(tài)優(yōu)先權的進程調(diào)度算法的模擬(1) :NYNYNY開始創(chuàng)建N個進程并初始化pcb[N]根據(jù)進程狀態(tài)初始化阻塞隊列和就緒隊列在就緒隊列中找出優(yōu)先權最大的進程運行進程運行完畢即alltime=0刪除該進程運行一個時間片就緒隊列中其他進程優(yōu)先數(shù)prority+1進程運行完畢優(yōu)先數(shù)priority3結束阻塞就緒轉換進程調(diào)入就緒隊列或阻塞隊列 動態(tài)優(yōu)先權進程調(diào)度流程圖(2) 實驗效果圖:1): 初始化進程狀態(tài)2):
點擊復制文檔內(nèi)容
范文總結相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1