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

正文內(nèi)容

操作系統(tǒng)實(shí)驗(yàn)報(bào)告(9489)-資料下載頁(yè)

2025-08-03 04:46本頁(yè)面
  

【正文】 int ret。 char c=39。t39。 char *a=c。 //定義char*指針變量傳參數(shù)用 ret=pthread_create(amp。id1,NULL,(void *) threadchar,a)。 //創(chuàng)建線程1,第四個(gè)參數(shù)為char*型變量用來(lái)傳遞字符 if(ret!=0){ //線程創(chuàng)建失敗 printf (Create pthread error!\n)。 exit (1)。 } int i=99。 int *b=i。 //定義int*指針變量傳參數(shù)用 ret=pthread_create(amp。id2,NULL,(void *) threadint,b)。 //創(chuàng)建線程2,第四個(gè)參數(shù)為int*型變量用來(lái)傳遞字符 if(ret!=0){ //線程創(chuàng)建失敗 printf (Create pthread error!\n)。 exit (1)。 } printf(This is the main process.\n)。 pthread_join(id1,NULL)。 //等待線程1結(jié)束 pthread_join(id2,NULL)。 //等待線程2結(jié)束 return (0)。}六、實(shí)驗(yàn)結(jié)果由圖可知兩個(gè)線程主程序創(chuàng)建了兩個(gè)進(jìn)程這兩個(gè)進(jìn)程分別輸出了一句話。主程序分別創(chuàng)建了兩個(gè)線程并向線程1傳遞了‘t’向線程2傳遞了99,線程運(yùn)行函數(shù)分別輸出告知接收了這兩個(gè)參數(shù)。七、實(shí)驗(yàn)感想通過(guò)本次實(shí)驗(yàn),我學(xué)會(huì)了如何使用LINUX下的線程創(chuàng)建函數(shù)pthread_create()來(lái)創(chuàng)建線程,并且向線程傳遞參數(shù)。同時(shí)更加熟練的使用LINUX。實(shí)驗(yàn)七 利用信號(hào)量實(shí)現(xiàn)進(jìn)程的控制一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí) UNIX 類操作系統(tǒng)信號(hào)量機(jī)制,編寫(xiě)Linux 環(huán)境下利用信號(hào)量實(shí)現(xiàn)進(jìn)程控制的方法,掌握相關(guān)系統(tǒng)調(diào)用的使用方法。二、實(shí)驗(yàn)內(nèi)容創(chuàng)建4 個(gè)線程,其中兩個(gè)線程負(fù)責(zé)從文件讀取數(shù)據(jù)到公共的緩沖區(qū),另兩個(gè)線程從緩沖區(qū)讀取數(shù)據(jù)作不同的處理(加和乘運(yùn)算)。使用信號(hào)量控制這些線程的執(zhí)行。三、實(shí)驗(yàn)要求按照要求編寫(xiě)程序,放在相應(yīng)的目錄中,編譯成功后執(zhí)行,并按照要求分析執(zhí)行結(jié)果,并寫(xiě)出實(shí)驗(yàn)報(bào)告。四、實(shí)驗(yàn)設(shè)計(jì)功能設(shè)計(jì)題目要求創(chuàng)建4個(gè)線程,其中兩個(gè)負(fù)責(zé)從文件讀數(shù)據(jù)到緩沖區(qū),另兩個(gè)負(fù)責(zé)從緩沖區(qū)讀數(shù)據(jù)進(jìn)行加和乘的運(yùn)算。我對(duì)這4個(gè)線程進(jìn)行如下安排,線程1讀后線程2才可以讀,線程2讀了后線程3才可以進(jìn)行加的運(yùn)算,線程3加完了后線程4才能進(jìn)行乘的運(yùn)算,線程4乘完后線程1才能繼續(xù)讀。故需4個(gè)信號(hào)量sem1,sem2,sem3,sem4。線程1消費(fèi)sem1生產(chǎn)sem2,線程2消費(fèi)sem2生產(chǎn)sem3,線程3消費(fèi)sem3生產(chǎn)sem4,線程4消費(fèi)sem4生產(chǎn)sem1,形成一個(gè)循環(huán),直到文件結(jié)束為止。數(shù)據(jù)結(jié)構(gòu)信號(hào)量(semaphore):數(shù)據(jù)類型為結(jié)構(gòu) sem_t,本質(zhì)上是一個(gè)長(zhǎng)整型的數(shù)。一共4個(gè)公共緩沖區(qū)(stack):采用2維數(shù)組的方式實(shí)現(xiàn)(stack[NUM][2])。數(shù)組中的兩列分別存儲(chǔ)兩個(gè)文件中的數(shù)據(jù)。該2維數(shù)組還有一個(gè)索引:size,指向2維數(shù)組的頂部。讀線程每次從文件讀出兩個(gè)數(shù)放到stack[NUM][0]和stack[NUM][1]程序框圖五、實(shí)驗(yàn)程序includeincludeincludedefine MAX 10int operand[MAX][2]。int size=0。sem_t sem。void ReadData1(void){ FILE *fp=fopen(,r)。 while(!feof(fp)){ fscanf(fp,%d %d,amp。operand[size][0],amp。operand[size][1])。 if (feof(fp)) break。 ++size。 sem_post(amp。sem)。 } fclose(fp)。}void ReadData2(void){ FILE *fp=fopen(,r)。 while(!feof(fp)){ fscanf(fp,%d %d,amp。operand[size][0],amp。operand[size][1])。 if (feof(fp)) break。 ++size。 sem_post(amp。sem)。 } fclose(fp)。}void HandleData1(void){ while(1){ sem_wait(amp。sem)。 size。 printf(Plus:%d+%d=%d\n,operand[size][0],operand[size][1], operand[size][0]+operand[size][1])。 }}void HandleData2(void){ while(1){ sem_wait(amp。sem)。 size。 printf(Multiply:%d*%d=%d\n,operand[size][0],operand[size][1], operand[size][0]*operand[size][1])。 }}int main(void){ pthread_t t1,t2,t3,t4。 sem_init(amp。sem,0,0)。 pthread_create(amp。t3,NULL,(void *)ReadData1,NULL)。 pthread_create(amp。t1,NULL,(void *)HandleData1,NULL)。 pthread_create(amp。t4,NULL,(void *)ReadData2,NULL)。 pthread_create(amp。t2,NULL,(void *)HandleData2,NULL)。 pthread_join(t2,NULL)。 return 0。}六、實(shí)驗(yàn)結(jié)果,然后線程3從緩沖區(qū)讀出兩個(gè)數(shù)相加,最后線程4再讀出兩個(gè)數(shù)相乘。七、實(shí)驗(yàn)感想通過(guò)本次實(shí)驗(yàn),我進(jìn)一步掌握了如何使用LINUX下的線程創(chuàng)建函數(shù)pthread_create()創(chuàng)建線程,并且學(xué)會(huì)了如何使用信號(hào)量控制進(jìn)程的運(yùn)行,學(xué)會(huì)了使用消費(fèi)函數(shù)sem_wait(),生產(chǎn)函數(shù)sem_post(),以及如何初始化信號(hào)量,同時(shí)也掌握了文件的讀取方法,本次實(shí)驗(yàn)加深了我對(duì)信號(hào)量的認(rèn)識(shí)。26
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1