歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

實(shí)驗(yàn)三linux進(jìn)程信號(hào)通信

  • 資源ID:253313254       資源大?。?span id="qnfh2o1" class="font-tahoma">286.65KB        全文頁(yè)數(shù):12頁(yè)
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

實(shí)驗(yàn)三linux進(jìn)程信號(hào)通信

單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,第五級(jí),,,,*,,,單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,第五級(jí),,,,*,實(shí)驗(yàn)三,linux,進(jìn)程信號(hào)通信,一、實(shí)驗(yàn)?zāi)康?了解,linux,中的信號(hào),熟悉,linux,系統(tǒng)中進(jìn)程之間軟中斷信號(hào)的基本原理。,二、實(shí)驗(yàn)內(nèi)容,1,、編寫程序:用,fork(),創(chuàng)建兩個(gè)子進(jìn)程,再用系統(tǒng)調(diào)用,signal(),讓父進(jìn)程捕捉鍵盤上來(lái)的中斷信號(hào)(按,^c,鍵);捕捉到中斷信號(hào)后,父進(jìn)程用系統(tǒng)調(diào)用,kill(),向兩個(gè)子進(jìn)程發(fā)出信號(hào),子進(jìn)程捕捉到信號(hào)后分別輸出下列信息,然后終止:,,,child process1 is killed by parent!,,child process2 is killed by parent!,,父進(jìn)程等待兩個(gè)子進(jìn)程終止后,輸出如下的信息后終止:,,parent process is killed!,,2.,分析利用軟中斷通信實(shí)現(xiàn)進(jìn)程同步的機(jī)制。,,3,、寫出例,2,中的實(shí)驗(yàn)結(jié)果,并作適當(dāng)?shù)姆治觥?三、實(shí)驗(yàn)指導(dǎo),1,、,kill(),系統(tǒng)調(diào)用,,系統(tǒng)調(diào)用格式:,int kill(pid,sig),,參數(shù)定義:,int pid,sig;,,其中,,pid,是一個(gè)或一組進(jìn)程的標(biāo)識(shí)符,參數(shù),sig,是要發(fā)送的軟中斷信號(hào)。,,(,1,),pid>0,時(shí),核心將信號(hào)發(fā)送給進(jìn)程,pid.,,(2)pid=0,時(shí),核心將信號(hào)發(fā)送給與發(fā)送進(jìn)程同組的所有進(jìn)程。,,(,3,),pid=-1,時(shí),核心將信號(hào)發(fā)送給所有用戶標(biāo)識(shí)符真正等于發(fā)送進(jìn)程的有效用戶標(biāo)識(shí)號(hào)的進(jìn)程。,2,。,signal(),系統(tǒng)調(diào)用,,預(yù)置對(duì)信號(hào)的處理方式,允許調(diào)用進(jìn)程控制軟中斷信號(hào)。,,系統(tǒng)調(diào)用格式:,,signal(sig,function),,參數(shù)定義:,,signal(sig,function),,int sig;,,void(*func)();,,其中,,sig,用于指定信號(hào)的類型,,sig,為,0,則表示沒(méi)有收到任何信號(hào),余者如下表所示:,,值,名字,說(shuō)明,01,SIGHUP,掛起(,hangup),02,SIGINT,中斷,當(dāng)用戶從鍵盤按,^c,時(shí),03,SIGQUIT,退出,當(dāng)用戶從鍵盤按,quit,鍵時(shí),04,SIGILL,非法指令,05,SIGTRAP,跟蹤陷阱,啟動(dòng)進(jìn)程,跟蹤代碼的執(zhí)行。,06,SIGIOT,IOT,指令,06,SIGEMT,EMT,指令,07,SIGFPE,浮點(diǎn)運(yùn)算溢出,08,SIGKILL,殺死。終止進(jìn)程,。。。,,,16,SIGUSR1,用戶自定義信號(hào),1,17,SIGUSR2,用戶自定義信號(hào),2,,18,SIGCLD,某個(gè)子進(jìn)程死,19,SIGPWR,電源故障,function:,在該進(jìn)程中的一個(gè)函數(shù)地址,,,在核心態(tài)返回用戶態(tài)時(shí),,,它以軟中斷信號(hào)的序號(hào)作為參數(shù)調(diào)用該函數(shù),,,對(duì)除了信號(hào),sigkill,sigtrap,sigpwr,以外的信號(hào),,,核心自動(dòng)地重新設(shè)置軟中斷信號(hào)處理程序的值為,SIG_DFL,,一個(gè)進(jìn)程不能捕獲,SIGKILL,信號(hào),.,,,function,解釋如下,:,,(1)function=1,時(shí),,,進(jìn)程對(duì),sig,類信號(hào)不理睬,,,即屏蔽了該類信號(hào),;,,,(2)function=0,時(shí),,,缺省值,,,進(jìn)程在收到,sig,信號(hào)后應(yīng)終止自已,;,,,(1)function,為非,0,,非,1,類整數(shù)時(shí),,function,的值即作為信號(hào)處理程序的指針,.,3.lockf(),系統(tǒng)調(diào)用,,用作鎖定文件的某些段或者整個(gè)文件,.,,系統(tǒng)調(diào)用格式,:lockf(files,function,size),,參數(shù)定義,:,,int lockf(files,function,size),,int files,function;,,long size;,,其中,:files,是文件描述符,;function,是鎖定和解鎖,;1,表鎖定,,0,表解鎖,.size,是鎖定或解鎖的字節(jié)數(shù),,,為,0,,表示從文件的當(dāng)前位置到文件尾,.,5,、參考程序(例,1,),#include,,#include,,#include,,void waiting (),stop();,,int wait_mark;,,main(),,{,,int p1,p2,stdout;,,signal(SIGINT,stop); /*,接收到,^c,信號(hào),,,轉(zhuǎn),stop*/,,while((p1=fork())==-1); /*,創(chuàng)建子進(jìn)程,P1*/,,if(p1>0),,{,,while((p2=fork())==-1); /*,創(chuàng)建子進(jìn)程,p2*/,,if(p2>0),,{,,wait_mark=1;,,sleep(5); /*,接收到,^c,信號(hào),,,轉(zhuǎn),stop*/,,waiting();,kill(p1,16); /*,向,p1,發(fā)軟中斷信號(hào),16*/,,kill(p2,17); /*,向,p2,發(fā)軟中斷信號(hào),17*/,,wait(0); /*,同步*,/,,wait(0);,,printf("parent process is killed!\n");,,exit(0);,,},,,else,,{,,wait_mark=1;,,signal(17,stop); /*,接收到軟中斷信號(hào),17,,轉(zhuǎn),stop*/,,waiting();,,lockf(stdout,1,0);,,printf("child process 2 is killed by parent!\n");,,lockf(stdout,0,0);,,exit(0);,,},,},else,,{,,wait_mark=1;,,signal(16,stop); /*,接收到軟中斷信號(hào),16,,轉(zhuǎn),stop*/,,waiting();,,lockf(stdout,1,0);,,printf("child process 1 is killed by parent!\n");,,lockf(stdout,0,0);,,exit(0);,,},,},,void waiting(),,{ while (wait_mark!=0); },,void stop(),,{ wait_mark=0; },另一個(gè)信號(hào)機(jī)構(gòu)方法的例子:(例,2,),#include,,#include,,main(),,{int status;,,pid_t pid;,,void func();,,signal(SIGUSR1,func);,,If(pid=fork()),,{ printf("parent:will send signal.\n");,,kill(pid,SIGUSR1);,,wait(,,printf(“status=%d: parent finished.\n“,status);},,else,,{sleep(10);,,printf("child :signal is received.\n");,,exit(0);},,},,void func(),,{printf(“it is signal processing function.\n");},,,,,問(wèn):此例屏幕上顯示的結(jié)果是什么?為什么?,

注意事項(xiàng)

本文(實(shí)驗(yàn)三linux進(jìn)程信號(hào)通信)為本站會(huì)員(huo****ian)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  sobing.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!