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

正文內(nèi)容

操作系統(tǒng)實(shí)驗(yàn)內(nèi)存分配-在線瀏覽

2024-09-02 12:03本頁面
  

【正文】 空間 int allocate(struct free_block_type *pre, struct free_block_type *allocate_free_block, struct allocated_block *ab){ struct allocated_block *p = allocated_block_head。 if(allocate_free_blocksize absize MIN_SLICE) { absize = allocate_free_blocksize。 } else { free_block = allocate_free_blocknext。 } else { allocate_free_blockstart_addr += absize。 } if(p == NULL) { allocated_block_head = ab。 pnext = ab。 if(current_free_mem_size == 0) free_block = NULL。}//按照最壞適應(yīng)算法給新進(jìn)程分配內(nèi)存空間int allocate_WF(struct allocated_block *ab){ int ret。 if(wf == NULL) return 1。 else if(current_free_mem_size = absize) ret = mem_retrench(ab)。 rearrange_WF()。 }// 按照最佳適應(yīng)算法給新進(jìn)程分配內(nèi)存空間int allocate_BF(struct allocated_block *ab){ int ret。 if(bf == NULL) return 1。 break。 pre = prenext。amp。 else ret = 2。 return ret。 struct free_block_type *pre = NULL, *ff = free_block。 while(ff != NULL) { if(ffsize = absize) { ret = allocate(pre, ff,ab)。 } pre = ff。 } if(ff == NULL amp。 current_free_mem_size absize) ret = mem_retrench(ab)。 rearrange_FF()。}//分配內(nèi)存模塊int allocate_mem(struct allocated_block *ab){ int ret 。 int request_size = absize。 switch(ma_algorithm) { case MA_FF : ret = allocate_FF(ab)。 case MA_BF : ret = allocate_BF(ab)。 case MA_WF : ret = allocate_WF(ab)。 default : break。}// 創(chuàng)建一個(gè)新的進(jìn)程。 int size。 ab = (struct allocated_block *)malloc(sizeof(struct allocated_block))。 abnext = NULL。 sprintf(abprocess_name, PROCESS%02d, pid)。 printf(Memory for %s:, abprocess_name)。 。size)。 if(size 0) { absize = size。 } else printf(The size have to greater than zero! Please input again!)。 //從空閑區(qū)分配內(nèi)存,ret==1表示分配ok if((ret == 1) amp。 (allocated_block_head == NULL)) //如果此時(shí)allocated_block_head尚未賦值,則賦值 { //進(jìn)程分配鏈表為空 allocated_block_head = ab。 } else if(ret == 1) //分配成功,將該已分配塊的描述插入已分配鏈表 { abnext = allocated_block_head。 return 2。 free(ab)。 } return 3。int do_exit(){ struct allocated_block *allocated_ab, *allocated_pre。 free_pre = free_block。 if(free_pre != NULL) { free_ab = free_prenext。 free_pre = free_ab。 } } if(allocated_pre != NULL) { allocated_ab = allocated_prenext。 allocated_pre = allocated_ab。 } } allocated_ab = allocated_abnext。}//在進(jìn)程分配鏈表中尋找指定進(jìn)程。 if(ab == NULL) { printf(Here??????111111111\n)。 } while(abpid != pid amp。 abnext != NULL) ab = abnext。amp。 return NULL。}//顯示當(dāng)前內(nèi)存的使用情況,包括空閑區(qū)的情況和已經(jīng)分配的情況。 struct allocated_block *ab = allocated_block_head。 //顯示空閑區(qū) printf(Free Memory:\n)。 while(fbt != NULL) { printf(%20d %20d\n, fbtstart_addr, fbtsize)。 } //顯示已分配區(qū) printf(\nUsed Memory:\n)。 while(ab != NULL) { printf(%10d %20s %10d %10d\n, abpid, abprocess_name, abstart_addr, absize)。 } printf(\n)。}// 釋放ab數(shù)據(jù)結(jié)構(gòu)節(jié)點(diǎn)。 if(free_block == NULL) return 1。 free(free_ab)。 ab = allocated_block_headnext。 ab = abnext。 free(ab)。}/*將ab所表示的已分配區(qū)歸還,并進(jìn)行可能的合并*/in
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1