




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、XX學(xué)校實(shí)驗(yàn)報(bào)告 課程名稱: 學(xué) 院: 專 業(yè) 班: 姓 名: 學(xué) 號: 指導(dǎo)教師: 2011 年 3 月目錄實(shí)驗(yàn)1 進(jìn)程管理3一、實(shí)驗(yàn)?zāi)康?二、實(shí)驗(yàn)內(nèi)容3三、實(shí)驗(yàn)要求3四、程序說明和程序流程圖4五、程序代碼5六、程序運(yùn)行結(jié)果及分析7七指導(dǎo)教師評議8實(shí)驗(yàn)2 進(jìn)程通信9一、實(shí)驗(yàn)?zāi)康?二、實(shí)驗(yàn)內(nèi)容9三、實(shí)驗(yàn)要求9四、程序說明和程序流程圖9五、程序代碼11七指導(dǎo)教師評議14實(shí)驗(yàn)3 存儲管理15一、實(shí)驗(yàn)?zāi)康?5二、實(shí)驗(yàn)內(nèi)容15三、實(shí)驗(yàn)要求15四、程序說明和程序流程圖16六、程序運(yùn)行結(jié)果及分析23七指導(dǎo)教師評議23實(shí)驗(yàn)4 文件系統(tǒng)24一、實(shí)驗(yàn)?zāi)康?/p>
2、24二、實(shí)驗(yàn)內(nèi)容24三、實(shí)驗(yàn)要求24四、程序說明和程序流程圖24五、程序代碼26六、程序運(yùn)行結(jié)果及分析26七指導(dǎo)教師評議27實(shí)驗(yàn)1 進(jìn)程管理一、實(shí)驗(yàn)?zāi)康?. 弄清進(jìn)程和程序的區(qū)別,加深對進(jìn)程概念的理解。2. 了解并發(fā)進(jìn)程的執(zhí)行過程,進(jìn)一步認(rèn)識并發(fā)執(zhí)行的實(shí)質(zhì)。3. 掌握解決進(jìn)程互斥使用資源的方法。二、實(shí)驗(yàn)內(nèi)容1. 管道通信使用系統(tǒng)調(diào)用pipe( )建立一個(gè)管道,然后使用系統(tǒng)調(diào)用fork( )創(chuàng)建2個(gè)子進(jìn)程p1和p2。這2個(gè)子進(jìn)程分別向管道中寫入字符串:“Child process p1 is sending message!”和“Child process p2 is sending messa
3、ge!”,而父進(jìn)程則從管道中讀出來自兩個(gè)子進(jìn)程的信息,并顯示在屏幕上。2. 軟中斷通信使用系統(tǒng)調(diào)用fork( )創(chuàng)建2個(gè)子進(jìn)程p1和p2,在父進(jìn)程中使用系統(tǒng)調(diào)用signal( )捕捉來自鍵盤上的軟中斷信號SIGINT(即按Ctrl-C),當(dāng)捕捉到軟中斷信號SIGINT后,父進(jìn)程使用系統(tǒng)調(diào)用kill( )分別向2個(gè)子進(jìn)程發(fā)出軟中斷信號SIGUSR1和SIGUSR2,子進(jìn)程捕捉到信號后分別輸出信息“Child process p1 is killed by parent!”和“Child process p2 is killed by parent!”后終止。而父進(jìn)程等待2個(gè)子進(jìn)程終止后,輸出信息
4、“Parent process is killed!”后終止。三、實(shí)驗(yàn)要求1. 根據(jù)實(shí)驗(yàn)內(nèi)容編寫C程序。2. 上機(jī)調(diào)試程序。3. 記錄并分析程序運(yùn)行結(jié)果。四、程序說明和程序流程圖實(shí)驗(yàn)1管道通信所涉及的流程圖:實(shí)驗(yàn)2軟中斷信號所涉及的流程圖:五、程序代碼/*expe1_1.c*/#include <stdio.h>void main( ) int i, r, p1, p2, fd2; char buf50, s50; pipe(fd); /* 父進(jìn)程建立管道 */ while (p1=fork()=-1); /* 創(chuàng)建子進(jìn)程P1,失敗時(shí)循環(huán) */ if (p1=0) /* 由子進(jìn)程P
5、1返回,執(zhí)行子進(jìn)程P1 */ lockf(fd1, 1, 0); /* 加鎖鎖定寫入端 */ sprintf(buf, "Child process P1 is sending messages! n"); printf("Child process P1! n"); write(fd1, buf, 50); /* 把buf中的50個(gè)字符寫入管道 */ sleep(5); /* 睡眠5秒,讓父進(jìn)程讀 */ lockf(fd1, 0, 0); /* 釋放管道寫入端 */ exit(0); /* 關(guān)閉P1*/ else /* 從父進(jìn)程返回,執(zhí)行父進(jìn)程 */
6、while (p2=fork()=-1); /* 創(chuàng)建子進(jìn)程P2,失敗時(shí)循環(huán) */ if (p2=0) /* 從子進(jìn)程P2返回,執(zhí)行子進(jìn)程P2 */ lockf(fd1, 1, 0); /* 鎖定寫入端 */ sprintf(buf, "Child process P2 is sending messages! n"); printf("Child process P2! n"); write(fd1, buf, 50); /* 把buf中的字符寫入管道 */ sleep(5); /* 睡眠5秒,讓父進(jìn)程讀 */ lockf(fd1, 0, 0); /*
7、 釋放管道寫入端 */ exit(0); /* 關(guān)閉P2*/ wait(0);if (r=read(fd0, s, 50)= -1) printf("cannot read pipe! n"); else printf("%s", s); wait(0);if (r=read(fd0, s, 50)= -1) printf("cannot read pipe! n"); else printf("%s", s); exit(0); /*exp1-2.c*/#include<stdio.h>#includ
8、e<stdlib.h>#include<signal.h>int p1,p2;void main() void ppdo();void p1do();void p2do();signal(SIGINT,ppdo);p1=fork();if(p1=0) signal(SIGUSR1,p1do);for(;); else p2=fork(); if(p2=0) signal(SIGUSR2,p2do); for(;); wait(0); wait(0); printf("nParent process is killed!n"); exit(0);voi
9、d ppdo() kill(p1,SIGUSR1); kill(p2,SIGUSR2);void p1do() printf("nChild process p1 is killed by parent!n"); exit(0);void p2do() printf("nChild process p2 is killed by parent!n"); exit(0);六、程序運(yùn)行結(jié)果及分析實(shí)驗(yàn)1管道通信運(yùn)行結(jié)果截圖實(shí)驗(yàn)1管道通信結(jié)果分析父進(jìn)程建立后,創(chuàng)建了子進(jìn)程P1,P2,然后P1,P2分別向管道中寫入字符串“Child process p1 is s
10、ending message!”和“Child process p2 is sending message!”,父進(jìn)程從管道中讀取字符串。實(shí)驗(yàn)2軟中斷通信運(yùn)行結(jié)果截圖實(shí)驗(yàn)2軟中斷通信結(jié)果分析先預(yù)設(shè)中斷信號SIGINT,再先后創(chuàng)建子進(jìn)程P1和P2,預(yù)設(shè)中斷信號SIGUSR1,SIGUER2,當(dāng)我們按下“Ctrl+C”時(shí),父進(jìn)程發(fā)出中斷信號SIGUSR1和SIGUSR2,通知子進(jìn)程P1和P2,子進(jìn)程捕捉到信號后分別輸出相應(yīng)的信息后,終止,最后輸出“Parent process is killed!”后終止。實(shí)驗(yàn)后思考: 通過這次實(shí)驗(yàn),深刻地了解到了管道通信和軟中斷通信的詳細(xì)過程,深化了老師課堂上的
11、講解,對整個(gè)過程的把握也更加清晰了。 很值得的一次學(xué)習(xí)經(jīng)歷,做完實(shí)驗(yàn),再畫流程圖,程序運(yùn)行的細(xì)節(jié)熟悉于心,了如指掌。七指導(dǎo)教師評議 成績等級 實(shí)驗(yàn)2 進(jìn)程通信一、實(shí)驗(yàn)?zāi)康?. 了解進(jìn)程間通信IPC的三種方式:消息隊(duì)列、共享內(nèi)存和信號量。2. 掌握使用消息隊(duì)列進(jìn)行進(jìn)程間通信的有關(guān)系統(tǒng)調(diào)用和編程方法。3. 掌握使用共享內(nèi)存進(jìn)行進(jìn)程間通信的有關(guān)系統(tǒng)調(diào)用和編程方法。二、實(shí)驗(yàn)內(nèi)容1. 消息隊(duì)列使用系統(tǒng)調(diào)用msgget( )、msgsnd( )、msgrcv( )和msgctl( ),用消息隊(duì)列機(jī)制實(shí)現(xiàn)客戶進(jìn)程和服務(wù)器進(jìn)程間的通信。客戶進(jìn)程首先建立一個(gè)描述符為msgqid的消息隊(duì)列,接著向服務(wù)器進(jìn)程發(fā)送一
12、個(gè)消息正文為自己的進(jìn)程標(biāo)識pid且類型為1的消息,然后接收來自服務(wù)器進(jìn)程的消息,并在屏幕上顯示:“Client receives a message from xxxx!”,其中“xxxx”為服務(wù)器進(jìn)程的進(jìn)程標(biāo)識。服務(wù)器進(jìn)程首先捕捉軟中斷信號(除不能捕捉的SIGKILL),若捕捉到時(shí)則調(diào)用函數(shù)cleanup( )刪除消息隊(duì)列,終止服務(wù)器進(jìn)程。否則重復(fù)下列操作:接收所有類型為1的消息,并在屏幕上顯示:“Server receives a message from xxxx!”,其中“xxxx”為客戶進(jìn)程的進(jìn)程標(biāo)識;然后服務(wù)器進(jìn)程將客戶進(jìn)程的進(jìn)程標(biāo)識作為返回消息的類型,而將自己的進(jìn)程標(biāo)識作為消息正
13、文發(fā)送給客戶進(jìn)程。2. 共享內(nèi)存使用系統(tǒng)調(diào)用shmget( )、shmat( )和shmctl( ),用共享內(nèi)存機(jī)制實(shí)現(xiàn)進(jìn)程間的通信。其中一個(gè)進(jìn)程向共享內(nèi)存中寫入數(shù)據(jù),另一個(gè)進(jìn)程從共享內(nèi)存中讀出數(shù)據(jù)并顯示在屏幕上。三、實(shí)驗(yàn)要求1. 根據(jù)實(shí)驗(yàn)內(nèi)容編寫C程序。2. 上機(jī)調(diào)試程序。3. 記錄并分析程序運(yùn)行結(jié)果。四、程序說明和程序流程圖實(shí)驗(yàn)1消息隊(duì)列流程圖五、程序代碼實(shí)驗(yàn)1消息隊(duì)列/* msg_client.c */#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#define MSGKEY
14、 75struct msgform long mtype; char mtext256;main() struct msgform msg; int msgqid,pid,*pint; /* 文件主 同組用戶 其他用戶 rwxrwxrwx */ msgqid=msgget(MSGKEY,0777); /* rw-rw-rw- */ pid=getpid(); pint=(int*)msg.mtext; *pint=pid; msg.mtype=1; msgsnd(msgqid,&msg,sizeof(int),0); msgrcv(msgqid,&msg,256,pid,0);
15、 printf("client: receive from pid %dn",*pint);/* msg_server.c */#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#define MSGKEY 75struct msgform long mtype; char mtext256;msg;int msgqid;main() int i,pid,*pint; extern cleanup(); for (i=0;i<20;i+) signal(i,c
16、leanup); msgqid=msgget(MSGKEY, 0777|IPC_CREAT); for (;) msgrcv(msgqid,&msg, 256,1,0); pint=(int*)msg.mtext; pid=*pint; printf("server: receive from pid %dn",pid); msg.mtype=pid; *pint=getpid(); msgsnd(msgqid,&msg,sizeof(int),0);cleanup() msgctl(msgqid,IPC_RMID,0); exit(0);實(shí)驗(yàn)2共享內(nèi)存#i
17、nclude<sys/types.h>#include<sys/ipc.h>#include<sys/shm.h>#define SHMKEY 75#define K 1024int shmid;main() int i, * pint; char * addr;extern char * shmat(); shmid = shmget(SHMKEY, 8 * K, 0777); addr = shmat (shmid,0,0); pint = (int *)addr; while ( * pint=0 ) for (i=0; i<256; *pint
18、+) printf("%dn", *pint+);#include<sys/types.h>#include<sys/ipc.h>#include<sys/shm.h>#define SHMKEY 75#define K 1024int shmid;main() int i, * pint; char * addr; extern char * shmat(); extern cleanup(); for(i=0; i<20; i+) sinal (i, cleanup); shmid = shmget (SHMKEY, 16 *
19、K, 0777|IPC_CREAT); addr = shmat (shmid,0,0); printf("addr 0x%x n", addr); pint = (int *)addr; for(i=0; i<256; i+) *pint+ =i; pint = (int *)addr; *pint = 256; pause();cleanup() shmctl (shmid, IPC_RMID, 0); exit(0);六、程序運(yùn)行結(jié)果及分析實(shí)驗(yàn)1消息隊(duì)列運(yùn)行結(jié)果截圖客戶端:服務(wù)器端:實(shí)驗(yàn)1消息隊(duì)列結(jié)果分析服務(wù)端程序監(jiān)聽軟中斷,建立消息隊(duì)列,循環(huán)在隊(duì)列中接收類型為
20、1的消息,每接收一個(gè)消息向隊(duì)列中增加一個(gè)類型為客戶進(jìn)程ID的消息。當(dāng)發(fā)生軟中斷時(shí),刪除消息隊(duì)列??蛻舳诉M(jìn)程創(chuàng)建和服務(wù)端相同的消息隊(duì)列,并向消息隊(duì)列中發(fā)送類型為1的消息,然后接收類型為客戶進(jìn)程ID的消息。實(shí)驗(yàn)后思考: 對消息隊(duì)列的運(yùn)行情況有所了解,但關(guān)于內(nèi)存共享部分尚需仔細(xì)研究。七指導(dǎo)教師評議 成績等級 實(shí)驗(yàn)3 存儲管理一、實(shí)驗(yàn)?zāi)康?. 了解虛擬存儲管理技術(shù)的原理與特點(diǎn)。2. 掌握請求頁式存儲管理的頁面置換算法。二、實(shí)驗(yàn)內(nèi)容1. 通過隨機(jī)數(shù)產(chǎn)生一個(gè)指令序列,共320條指令。指令的地址按下述原則生成:(1) 50%的指令是順序執(zhí)行的;(2) 25%的指令均勻分布在前地址部分;(3) 25%的指令均
21、勻分布在后地址部分。實(shí)現(xiàn)方法:(1) 在0,319的指令地址中隨機(jī)選取一起點(diǎn)s;(2) 執(zhí)行指令s;(3) 順序執(zhí)行一條指令,即執(zhí)行地址為s+1的指令;(4) 在前地址0,s中隨機(jī)選取一條地址為m的指令執(zhí)行;(5) 順序執(zhí)行一條指令,即執(zhí)行地址為m+1的指令;(6) 在后地址m+2,319中隨機(jī)選取一條指令s;(7) 重復(fù)(2)(6),直到執(zhí)行320次指令。2. 將指令序列變換為頁地址流,設(shè):(1) 頁面大小為1K;(2) 用戶內(nèi)存容量為432頁面(page frame);(3) 用戶虛存容量為32K(即32頁)。若10條指令為1頁,則320條指令在虛存中的存放方式為:第0頁(虛存地址0,9)
22、第0條第9條指令;第1頁(虛存地址10,19)第10條第19條指令; 第31頁(虛存地址310,319)第310條第319條指令。3. 計(jì)算并輸出下列算法在不同內(nèi)存容量下的命中率(命中率=1-缺頁率)。(1) FIFOFirst In First Out Page Replacement Algorithm(2) LRULeast Recently Used Page Replacement Algorithm三、實(shí)驗(yàn)要求1. 根據(jù)實(shí)驗(yàn)內(nèi)容編寫C程序。2. 上機(jī)調(diào)試程序。3. 記錄并分析程序運(yùn)行結(jié)果。四、程序說明和程序流程圖程序說明為:1. 通過隨機(jī)數(shù)產(chǎn)生一個(gè)指令序列,共320條指令。指令的地
23、址按下述原則生成:(1) 50%的指令是順序執(zhí)行的;(2) 25%的指令均勻分布在前地址部分;(3) 25%的指令均勻分布在后地址部分。實(shí)現(xiàn)方法:(1) 在0,319的指令地址中隨機(jī)選取一起點(diǎn)s;(2) 執(zhí)行指令s;(3) 順序執(zhí)行一條指令,即執(zhí)行地址為s+1的指令;(4) 在前地址0,s中隨機(jī)選取一條地址為m的指令執(zhí)行;(5) 順序執(zhí)行一條指令,即執(zhí)行地址為m+1的指令;(6) 在后地址m+2,319中隨機(jī)選取一條指令s;(7) 重復(fù)(2)(6),直到執(zhí)行320次指令。2. 將指令序列變換為頁地址流,設(shè):(1) 頁面大小為1K;(2) 用戶內(nèi)存容量為432頁面(page frame);(3)
24、 用戶虛存容量為32K(即32頁)。若10條指令為1頁,則320條指令在虛存中的存放方式為:第0頁(虛存地址0,9)第0條第9條指令;第1頁(虛存地址10,19)第10條第19條指令; 第31頁(虛存地址310,319)第310條第319條指令。3. 計(jì)算并輸出下列算法在不同內(nèi)存容量下的命中率(命中率=1-缺頁率)。(1) FIFOFirst In First Out Page Replacement Algorithm(2) LRULeast Recently Used Page Replacement Algorithm流程圖:五、程序代碼#include <stdio.h>#
25、include <stdlib.h>/ #include <process.h>/* Windows環(huán)境,getpid()原型在process.h中 */#define TRUE 1#define FALSE 0#define INVALID -1#define NULL 0#define total_instruction 320/* 指令條數(shù) */#define total_vp 32/* 虛頁數(shù) */#define clear_period 50/* NRU清0周期 */typedef struct /* 頁表結(jié)構(gòu) */ int pn,pfn,counter,ti
26、me;/* counter(LFU),time(LRU) */ pl_type;pl_type pltotal_vp;/*頁表 */struct pfc_struct /* 存儲頁面表 */ int pn,pfn; struct pfc_struct *next;typedef struct pfc_struct pfc_type;pfc_type pfctotal_vp,*freepf_head,*busypf_head,*busypf_tail;int diseffect,atotal_instruction;/* 缺頁次數(shù),指令流 */int pagetotal_instruction,
27、offsettotal_instruction;void initialize(int);void fifo(int);void lru(int);void opt(int); void lfu(int); void nur(int);void main() int s,i,j; srand(getpid()*10);/* 進(jìn)程標(biāo)識作為隨機(jī)數(shù)種子 */ s=(float)319*rand()/2147483647;/* 0319 */ / s=(float)319*rand()/32767;/* 0319 */ for (i=0; i<total_instruction; i+=4) a
28、i=s; /* s=0319 */ ai+1=ai+1; /* s+1 */ ai+2=(float)ai*rand()/2147483647;/*m=0s*/ / ai+2=(float)ai*rand()/32767;/*m=0s*/ ai+3=ai+2+1; /* m+1*/ s=(float)rand()*(317-ai+2)/2147483147+ai+2+2;/* m+2319 */ / s=(float)rand()*(317-ai+2)/32767+ai+2+2;/* m+2319 */ for (i=0;i<total_instruction;i+) pagei=ai/
29、10; offseti=ai%10; for (i=4;i<=32;i+)/* 用戶內(nèi)存工作區(qū)4-32個(gè)頁面 */ printf("%2d page frames",i); fifo(i); lru(i); opt(i); lfu(i); nur(i); printf("n"); void initialize(int total_pf) int i; diseffect=0; for (i=0;i<total_vp;i+) pli.pn=i;pli.pfn=INVALID; pli.counter=0;pli.time=-1; for (i
30、=1;i<total_pf;i+) pfci-1.next=&pfci;pfci-1.pfn=i-1; pfctotal_pf-1.next=NULL; pfctotal_pf-1.pfn=total_pf-1; freepf_head=&pfc0; void fifo(int total_pf) int i,j; pfc_type *p; initialize(total_pf); busypf_head=busypf_tail=NULL;/* 置忙頁面隊(duì)列為空 */ for (i=0;i<total_instruction;i+) if (plpagei.pfn
31、=INVALID)/* 頁失效 */ diseffect+; /* 失效次數(shù)加1 */ if (freepf_head=NULL) /* 無空閑頁面 */ p=busypf_head->next; plbusypf_head->pn.pfn=INVALID; freepf_head=busypf_head; /* 釋放忙隊(duì)列中的第1個(gè)頁面(淘汰1頁),即出隊(duì) */ freepf_head->next=NULL; busypf_head=p;/* 插入到空閑頁面鏈表 */ p=freepf_head->next; freepf_head->next=NULL; fr
32、eepf_head->pn=pagei; plpagei.pfn=freepf_head->pfn; if (busypf_tail=NULL)/* 忙隊(duì)列為空時(shí),入隊(duì) */ busypf_head=busypf_tail=freepf_head; else/* 忙隊(duì)列為非空時(shí),入隊(duì) */ busypf_tail->next=freepf_head; busypf_tail=freepf_head; freepf_head=p; printf(" FIFO: %6.4f",1-(float)diseffect/320);void lru(int total
33、_pf) int min,minj,i,j,present_time; initialize(total_pf);present_time=0; for (i=0;i<total_instruction;i+) if (plpagei.pfn=INVALID) diseffect+; if (freepf_head=NULL) min=32767; for (j=0;j<total_vp;j+)/* 查找內(nèi)存中time最小的頁面 */ if (min>plj.time&&plj.pfn!=INVALID) min=plj.time;minj=j; freepf
34、_head=&pfcplminj.pfn;/* 插入空閑鏈表 */ plminj.pfn=INVALID; plminj.time=-1; freepf_head->next=NULL; plpagei.pfn=freepf_head->pfn; plpagei.time=present_time; freepf_head=freepf_head->next; else plpagei.time=present_time; present_time+; printf(" LRU: %6.4f",1-(float)diseffect/320); vo
35、id opt(int total_pf) int i,j,max,maxpage,d,disttotal_vp; initialize(total_pf); for (i=0;i<total_instruction;i+) if (plpagei.pfn=INVALID) diseffect+; if (freepf_head=NULL) for (j=0;j<total_vp;j+) if (plj.pfn!=INVALID) distj=32767; else distj=0;/* 頁在內(nèi)存中距離非0,不在內(nèi)存距離為0 */ d=1;/* 計(jì)算內(nèi)存中頁面與當(dāng)前訪問頁面的距離 *
36、/ for (j=i+1;j<total_instruction;j+) if (plpagej.pfn!=INVALID) distpagej=d; d+; max=-1;/* 淘汰距離最遠(yuǎn)的頁 */ for (j=0;j<total_vp;j+) if (max<distj) max=distj;maxpage=j; freepf_head=&pfcplmaxpage.pfn; freepf_head->next=NULL; plmaxpage.pfn=INVALID; plpagei.pfn=freepf_head->pfn; freepf_head
37、=freepf_head->next; printf(" OPT: %6.4f",1-(float)diseffect/320);void lfu(int total_pf) int i,j,min,minpage; initialize(total_pf); for (i=0;i<total_instruction;i+) if (plpagei.pfn=INVALID) diseffect+; if (freepf_head=NULL) min=32767; for (j=0;j<total_vp;j+) if (min>plj.counter
38、&& plj.pfn!=INVALID) min=plj.counter;minpage=j; plj.counter=0; freepf_head=&pfcplminpage.pfn; plminpage.pfn=INVALID; freepf_head->next=NULL; plpagei.pfn=freepf_head->pfn; freepf_head=freepf_head->next; else plpagei.counter+; printf(" LFU: %6.4f",1-(float)diseffect/320)
39、;void nur(int total_pf) int i,j,dp,cont_flag,old_dp; initialize(total_pf); dp=0; for (i=0;i<total_instruction;i+) if (plpagei.pfn=INVALID) diseffect+; if (freepf_head=NULL) cont_flag=TRUE;old_dp=dp; while (cont_flag) if (pldp.counter=0&&pldp.pfn!=INVALID) cont_flag=FALSE; else dp+; if (dp
40、=total_vp) dp=0; if (dp=old_dp) for (j=0;j<total_vp;j+) plj.counter=0; freepf_head=&pfcpldp.pfn; pldp.pfn=INVALID; freepf_head->next=NULL; plpagei.pfn=freepf_head->pfn; freepf_head=freepf_head->next; else plpagei.counter=1; if (i%clear_period=0) for (j=0;j<total_vp;j+) plj.counter=0; printf(" NUR: %
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《投資學(xué)原理》課件
- 壓貨款合同范本
- KFC考核試題答案練習(xí)測試題附答案
- 出境合同范本
- 親屬之間訂單轉(zhuǎn)讓合同范本
- 商業(yè)合作合同違約合同范本
- 合資日用產(chǎn)品經(jīng)營合同范本
- 國產(chǎn)機(jī)器購買合同范本
- 雙方個(gè)人修車合同范例
- 商業(yè)策展合同范本
- 2025年廣州市黃埔區(qū)東區(qū)街招考社區(qū)居委會專職工作人員高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2025年黑龍江省高職單招《職測》高頻必練考試題庫400題(含答案)
- GB 45184-2024眼視光產(chǎn)品元件安全技術(shù)規(guī)范
- 2025年湖南科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025年新人教版八年級下冊物理全冊教案
- 《建筑電氣設(shè)計(jì)》課件
- 品管圈PDCA案例-介入中心提高手術(shù)患者交接記錄書寫合格率醫(yī)院品質(zhì)管理成果匯報(bào)
- 第十七屆山東省職業(yè)院校技能大賽中職組“西式烹飪”賽項(xiàng)規(guī)程
- 華東師范大學(xué)《外國人文經(jīng)典(下)》2022-2023學(xué)年第一學(xué)期期末試卷
- 儲能電池模組PACK和系統(tǒng)集成項(xiàng)目可行性研究報(bào)告
- 2024年安徽省公務(wù)員錄用考試《行測》真題及解析
評論
0/150
提交評論