歡迎來(lái)到天天文庫(kù)
瀏覽記錄
ID:59205834
大小:269.00 KB
頁(yè)數(shù):4頁(yè)
時(shí)間:2020-09-10
《實(shí)驗(yàn)四線程同步.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、集美大學(xué)誠(chéng)毅學(xué)院信息工程系實(shí)驗(yàn)報(bào)告課程名稱計(jì)算機(jī)操作系統(tǒng)序號(hào)名稱實(shí)驗(yàn)四線程同步姓名孫幸杰學(xué)號(hào)專業(yè)計(jì)算1191日期13.11.30成績(jī)教師洪聯(lián)系評(píng)語(yǔ):1.實(shí)驗(yàn)?zāi)康?掌握在Linux環(huán)境下的線程創(chuàng)建:clone();線程同步:信號(hào)燈sem_t實(shí)現(xiàn)線程同步與互斥;實(shí)現(xiàn)經(jīng)典同步問(wèn)題讀者-寫(xiě)者問(wèn)題;2.實(shí)驗(yàn)環(huán)境Win7系統(tǒng)虛擬機(jī)安裝的linux系統(tǒng)。3.實(shí)驗(yàn)內(nèi)容用信號(hào)燈+PV操作實(shí)現(xiàn)讀者—寫(xiě)者問(wèn)題;用clone()函數(shù)4個(gè)讀者線程和4個(gè)寫(xiě)者線程;每次讀者在共享數(shù)據(jù)區(qū)(緩沖區(qū))讀操作,或者寫(xiě)者在共享數(shù)據(jù)區(qū)寫(xiě)操作時(shí),要顯示當(dāng)前正在操作的線程;按讀者優(yōu)先
2、或者寫(xiě)者優(yōu)先編寫(xiě)程序,但要明確是那個(gè)優(yōu)先;4.實(shí)驗(yàn)程序(有詳細(xì)注釋)#include#include#include#include#include//定義信號(hào)燈變量sem_tr_w_w;sem_tmutex;intreadCount=0;charinfo[20];//共享數(shù)據(jù)區(qū)intReader(intr_n){charrc[20];while(1){sem_wait(&mutex);readCount++;if(readCount=
3、=1){sem_wait(&r_w_w);printf(“FirstreaderinterCR!”);}sem_post(&mutex);printf(“%dthreaderisreading:”,r_n);strcpy(rc,info);printf(“%s”,rc);sem_wait(&mutex);readCount--;if(readCount==0)sem_post(&r_w_w);printf(“%dthreaderexit.”,r_n);sem_post(&mutex);}}intWriter(intw_n){c
4、harws[20];sprintf(ws,”%dthwriter”,w_n);while(1){sem_wait(&r_w_w);strcpy(info,ws);sem_post(&r_w_w);}}main(){inti,arg;intclone_flag;char*stack;sem_init(&r_w_w,0,1);sem_init(&mutex,0,1);clone_flag=CLONE_VM
5、CLONE_SIGHAND
6、CLONE_FS
7、CLONE_FILES;for(i=0;i<4;i++){arg=i+1;stack=(ch
8、ar*)malloc(4096);clone((void*)Reader,&(stack[4096]),clone_flag,(void*)&arg);stack=(char*)malloc(4096);clone((void*)Writer,&(stack[4096]),clone_flag,(void*)&arg);}exit(1);}5.實(shí)驗(yàn)結(jié)果及其分析6.實(shí)驗(yàn)小結(jié)
此文檔下載收益歸作者所有