![線程同步實驗報告(A39)_第1頁](http://file4.renrendoc.com/view/e1198824f25bd7fc73e1a3708e70a09a/e1198824f25bd7fc73e1a3708e70a09a1.gif)
![線程同步實驗報告(A39)_第2頁](http://file4.renrendoc.com/view/e1198824f25bd7fc73e1a3708e70a09a/e1198824f25bd7fc73e1a3708e70a09a2.gif)
![線程同步實驗報告(A39)_第3頁](http://file4.renrendoc.com/view/e1198824f25bd7fc73e1a3708e70a09a/e1198824f25bd7fc73e1a3708e70a09a3.gif)
![線程同步實驗報告(A39)_第4頁](http://file4.renrendoc.com/view/e1198824f25bd7fc73e1a3708e70a09a/e1198824f25bd7fc73e1a3708e70a09a4.gif)
![線程同步實驗報告(A39)_第5頁](http://file4.renrendoc.com/view/e1198824f25bd7fc73e1a3708e70a09a/e1198824f25bd7fc73e1a3708e70a09a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
廣州商學(xué)院操作系統(tǒng)實驗報告(第4次)實驗名稱:實驗六線程同步一、實驗?zāi)康?.加深理解線程同步的概念及實現(xiàn)線程同步的原理。2.掌握Linux線程庫支持的信號量同步機制和信號量互斥機制,學(xué)會通過信號量信號實現(xiàn)線程間的同步與互斥。二、實驗內(nèi)容實驗七、線程同步實現(xiàn)公交車司機與售票員同步,參考實驗四,完成該程序的設(shè)計三、原理和實驗主要步驟1、原理:Linux的線程庫中定義了同步信號量以及多種同步信號量操作函數(shù)(原語)。POSIX信號量同步信號量的類型為sem_t基本的同步信號量操作函數(shù)有4個:sem_init()sem_wait()(相當(dāng)于P操作)sem_post()(相當(dāng)于V操作)sem_destroy()它們均在頭文件semaphore.h中聲明。sem_init函數(shù)原型:intsem_init(sem_t*sem,inttype,intvalue);其中,參數(shù)sem為同步信號量的指針;type為信號量類型,若為0,表示該信號量是現(xiàn)行進程的局部信號量(只在現(xiàn)行進程的線程之間使用),否則,它可為多個進程所共享;value是信號量值的初值。功能:初始化同步信號量。sem_wait函數(shù)原型:intsem_wait(sem_t*sem);功能:同步信號量的P操作sem_post函數(shù)原型:intsem_post(sem_t*sem);功能:同步信號量的V操作sem_destroy函數(shù)原型:intsem_destroy(sem_t*sem);功能:清理同步信號量上述函數(shù)返回0表示成功,非0表示失敗。2、本實驗要求應(yīng)用Linux線程庫支持的信號量互斥機制改進實驗4.2,即程序test4_2.c。該互斥機制的內(nèi)容見講義Unit4中的4.2節(jié)。本實驗的程序框架和部分程序代碼如下,請完成該程序的設(shè)計,/*test6_1.c*/#include<stdio.h>#include<pthread.h>intticket[10]={1,3,5,7,9,2,4,6,8,10};intrest=10;intth_num[2]={1,2};/*自定義的線程序號*/<定義一個互斥信號量>void*terminal(void*p)/*售票終端線程代碼*/{intmynum=*((int*)p);/*本終端的序號*/inttot=0;/*本終端售票計數(shù)*/<你的設(shè)計部分>printf(“Terminal_%dselled%dtickets.\n”,mynum,tot);pthread_exit(0);}intmain(){pthread_ttid[2];<初始化信號量>pthread_create(&tid[0],NULL,terminal,&th_num[0]);/*參數(shù)“&th_num[0]”是線程的入口參數(shù)*/pthread_create(&tid[1],NULL,terminal,&th_num[1]);<等待線程終止><撤消信號量><結(jié)束>}問題描述:公共汽車上,司機和售票員的活動分別是:司機的活動:啟動車輛;正常行車;到站停車。售票員的活動:關(guān)車門;售票;開車門。在汽車不斷的到站、停站、行駛過程中,用信號量和P,V操作實現(xiàn)它們的同步。三、實驗結(jié)果測試(粘貼程序源代碼截圖。)/*test6_1.c*/#include<stdio.h>#include<pthread.h>#include<stdlib.h>intticket[10]={1,3,5,7,9,2,4,6,8,10};intrest=10;intth_num[2]={1,2};/*自定義的線程序號*//*<定義一個互斥信號量>*/pthread_mutex_tp_mutex;void*terminal(void*p)/*售票終端線程代碼*/{ intmynum=*((int*)p);/*本終端的序號*/ inttot=0;/*本終端售票計數(shù)*/ longi; /*<你的設(shè)計部分參考test_2.c>*/while(1){pthread_mutex_lock(&p_mutex);//lockif(rest>0){//pthread_mutex_lock(&p_mutex);//lock rest--; tot++; for(i=0;i<999999;i++);printf("終端_%d:賣掉1張票,號碼是:%d\n",mynum,ticket[rest]);// pthread_mutex_unlock(&p_mutex);//unlock}else{pthread_mutex_unlock(&p_mutex);//unlockbreak;}pthread_mutex_unlock(&p_mutex);for(i=0;i<999999;i++);}printf("終端_%d一共買掉%d張票.\n",mynum,tot); pthread_exit(0);}intmain(){ pthread_ttid[2]; pthread_mutex_init(&p_mutex,NULL);//初始化信號量/*參數(shù)"&th_num[0]"是線程的入口參數(shù)*/ pthread_create(&tid[0],NULL,terminal,&th_num[0]); pthread_create(&tid[1],NULL,terminal,&th_num[1]);pthread_join(tid[0],NULL);//等待線程終止pthread_join(tid[1],NULL);//等待線程終止pthread_mutex_destroy(&p_mutex);//撤消信號量printf("\n*************OVER*************\n");return0;//結(jié)束}代碼截圖:四、分析與思考在代碼的編寫過程中,往往少
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中小企業(yè)眾創(chuàng)空間聯(lián)盟協(xié)議
- 2025年個人信貸續(xù)期協(xié)議說明
- 2025年住宅陽臺封閉施工安全監(jiān)管協(xié)議
- 2025年公立醫(yī)療機構(gòu)員工合同
- 2025年公司食堂廚師雇傭合同格式
- 2025年融資協(xié)作框架協(xié)議創(chuàng)新策劃
- 2025年制造外包合作協(xié)議
- 2025年公有住房租賃策劃協(xié)議標(biāo)準(zhǔn)化模板
- 2025年醫(yī)療機構(gòu)設(shè)施維護服務(wù)合同
- 2025年工程責(zé)任分配與協(xié)調(diào)協(xié)議
- 2025年春新外研版(三起)英語三年級下冊課件 Unit4第1課時Startup
- 幼兒園市級課一等獎-大班語言健康繪本《我的情緒小怪獸》有聲繪本課件
- 2025年供電所所長個人工作總結(jié)(2篇)
- 2025四川廣安發(fā)展建設(shè)集團限公司第一批招聘6人高頻重點提升(共500題)附帶答案詳解
- 2025年語言文字工作計劃
- 《國防動員準(zhǔn)備》課件
- 《(近)零碳園區(qū)評價技術(shù)規(guī)范》
- 微信、抖音、快手等社交平臺管理制度
- 保安反恐防暴培訓(xùn)
- 檔案管理培訓(xùn)
- 私密品牌年度規(guī)劃
評論
0/150
提交評論