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

正文內(nèi)容

北京聯(lián)合大學操作系統(tǒng)實驗報告進程管理-wenkub.com

2024-11-09 05:09 本頁面
   

【正文】 文件關(guān)閉后一般不能存取,若要存取,則必須再次打開文件。讀寫方式可為讀,寫和既讀又寫等。建立文件的實質(zhì)是建立文件的 FCB,并建立必要的存儲空間,分配空的FCB。 close(b)。 //把緩沖區(qū)中的字節(jié)寫入 a中 } if(c==0) //讀到末尾 { printf(讀到結(jié)尾 \n)。 //b為打開的文件描述符 while(c!=0amp。 //緩沖區(qū) a=creat(liu1,10705)。成功時返回10,如果 c為 0表示讀到了末尾,如果 c 為 1 表示出現(xiàn)了錯誤。如果 a==1,說明建立失敗 b=open(,O_RDWR) 打開一個名為 的文件, O_RDWR 表明以讀寫方式打開。 實驗四 實驗內(nèi)容與目的 熟悉有關(guān)文件的系統(tǒng)調(diào)用,學習文件系統(tǒng)的系統(tǒng)調(diào)用命令,提高對文件系統(tǒng)實現(xiàn)功能的理解和掌握。然后運行 thread1 和 thread2,兩個線程的作用是對 number 這個共享變量 +1,每次運行一次線程, number 就加 1。 printf(我是主函數(shù)哦,我正在等待線程完成任務阿,呵呵 \n)。 } } int main() { /*用默認屬性初始化互斥鎖 */ pthread_mutex_init(amp。 } void thread_wait(void) { /*等待線程結(jié)束 */ if(thread[0] !=0) { pthread_join(thread[0],NULL)。 else printf(線程 1被創(chuàng)建 \n)。 //將 thread中的內(nèi)容清 0 memset(amp。 sleep(3)。mut)。 for (i = 0。 //休眠 2秒 } printf(thread1 :主函數(shù)在等我完成任務嗎? \n)。 number++。 i MAX。 int number=0, i。這樣可以保證通道的 互斥訪問,保證了消息的正確性。 } } 本程序模擬父子進程之間的通信,在父進程傳遞消息時首先關(guān)閉讀通道,防止子進程來讀消息。/*子進程關(guān)閉寫通道 */ Read(chan1[0],buf,100)。 //父進程關(guān)閉寫通道 Printf(“parent process waits the child to terminate.\n”)。 } If(pid0) { close(chan1[0])。 //創(chuàng)建無名通道, chan1[0]為讀通道 ,chan1[1]為寫通道 Pipe(chan1)。當輸出內(nèi)容以后,程序讓兩個子進程休眠 5秒和 10 秒 ,這是父進程無法結(jié)束,只有在兩個子進程都結(jié)束時父進程才能結(jié)束。 //child2 結(jié)束 Exit(0)。 //child2結(jié)束 Exit(0)。 //這是父進程結(jié)束 Exit(0)。 Wait(0)。 實驗心得 1) 對第一個程序 (父子進程之間的同步 )的理解: include Main( ) //主函數(shù)代表父進程 。同時本實驗強化了課堂知識,并復習了 c 語言知識 。 2) 時間片輪轉(zhuǎn)法是把每一個程序都運行一個時間片,這樣的好處不會使一個程序長期得不到運行,但是時間片輪轉(zhuǎn)法沒有考慮進程優(yōu)先級的問題,當有一個比較緊急的進程進入內(nèi)存時,系統(tǒng)不會立即響應,而是繼續(xù)進行時間片輪轉(zhuǎn)。 GetFirst()。 runcount = 0。 InsertFinish(run)。 runcputime++。 /*繼續(xù)取就緒隊列隊頭進程進入執(zhí)行隊列 */ } } void RoundRun() /*時間片輪轉(zhuǎn)調(diào)度算法 */ { int flag = 1。 /*進程執(zhí)行的次數(shù)加一 */ InsertTime(run)。 flag = 0。/*進程執(zhí)行完成的剩余時間減一 */ if(runneedtime == 0)/*如果進程執(zhí)行完畢,將進程狀態(tài)置為 F,將其插入到完成隊列 */ { run state = 39。 while(run != NULL) /*當就緒隊列不為空時,則調(diào)度進程如執(zhí)行隊列執(zhí)行 */ { Output()。 /*假設每個進程所分配的時間片是 2*/ tmp count = 0。 tmp state =39。 getchar()。i num。 /*按照優(yōu)先級從高到低,插入到就緒隊列 */ } } void TimeCreate() /*時間片輸入函數(shù) */ { PCB *tmp。 tmp prio = 50 tmpneedtime。(tmpneedtime))。 exit(1)。 printf(輸入進程名字和進程所需時間: \n)。 } in next = fst next。 fst = finish。 } else { while(fstnext != NULL) { fst = fstnext。 } } } } void InsertTime(PCB *in) /*將進程插入到就緒隊列尾部 */ { PCB *fst。 } if(fst next == NULL) /*已經(jīng)搜索到隊尾,則其優(yōu)先級數(shù)最小,將其插入到隊尾即可 */ { in next = fst next。 } else /*查到合適的位置進行插入 */ { if(in prio = fst prio) /*比第一個還要大,則插入到隊頭 */ { innext = ready。 } } void InsertPrio(PCB *in) /*創(chuàng)建優(yōu)先級隊列,規(guī)定優(yōu)先數(shù)越小,優(yōu)先級越低 */ { PCB *fst,*nxt。 p = pnext。 while(p!=NULL) { printf(%s\t%d\t%d\t%d\t%d\t\t%c\t\t%d\n,pname,pprio,pround,pcputime,pneedtime,pstate,pcount)。 run next = NULL。 } void GetFirst() /*取得第一個就緒隊列節(jié)點 */ { run = ready。 break。: case 39。 Priority()。P39。 printf(輸入進程的調(diào)度方法: (P/R)\n)。 printf(請輸入要創(chuàng)建的進程數(shù)目 :\n)。 /*優(yōu)先級輸入函數(shù) */ void TimeCreate()。 /*輸出隊列信息 */ void InsertPrio(PCB *in)。 PCB *ready=NULL,*run=NULL,*finish=NULL。 /*進程執(zhí)行所需要的時間
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1