當(dāng)前位置首頁 > 計算機(jī) > linux/Unix
搜柄,搜必應(yīng)! 快速導(dǎo)航 | 使用教程

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

文檔格式:PPT| 12 頁|大小 286.65KB|積分 9.9|2024-12-11 發(fā)布|文檔ID:253313254
第1頁
第2頁
第3頁
下載文檔到電腦,查找使用更方便 還剩頁未讀,繼續(xù)閱讀>>
1 / 12
此文檔下載收益歸作者所有 下載文檔
  • 版權(quán)提示
  • 文本預(yù)覽
  • 常見問題
  • 單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,,*,,,單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,,*,實(shí)驗(yàn)三,linux,進(jìn)程信號通信,一、實(shí)驗(yàn)?zāi)康?了解,linux,中的信號,熟悉,linux,系統(tǒng)中進(jìn)程之間軟中斷信號的基本原理二、實(shí)驗(yàn)內(nèi)容,1,、編寫程序:用,fork(),創(chuàng)建兩個子進(jìn)程,再用系統(tǒng)調(diào)用,signal(),讓父進(jìn)程捕捉鍵盤上來的中斷信號(按,^c,鍵);捕捉到中斷信號后,父進(jìn)程用系統(tǒng)調(diào)用,kill(),向兩個子進(jìn)程發(fā)出信號,子進(jìn)程捕捉到信號后分別輸出下列信息,然后終止:,,,child process1 is killed by parent!,,child process2 is killed by parent!,,父進(jìn)程等待兩個子進(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,是一個或一組進(jìn)程的標(biāo)識符,參數(shù),sig,是要發(fā)送的軟中斷信號。

    1,),pid>0,時,核心將信號發(fā)送給進(jìn)程,pid.,,(2)pid=0,時,核心將信號發(fā)送給與發(fā)送進(jìn)程同組的所有進(jìn)程3,),pid=-1,時,核心將信號發(fā)送給所有用戶標(biāo)識符真正等于發(fā)送進(jìn)程的有效用戶標(biāo)識號的進(jìn)程signal(),系統(tǒng)調(diào)用,,預(yù)置對信號的處理方式,允許調(diào)用進(jìn)程控制軟中斷信號系統(tǒng)調(diào)用格式:,,signal(sig,function),,參數(shù)定義:,,signal(sig,function),,int sig;,,void(*func)();,,其中,,sig,用于指定信號的類型,,sig,為,0,則表示沒有收到任何信號,余者如下表所示:,,值,名字,說明,01,SIGHUP,掛起(,hangup),02,SIGINT,中斷,當(dāng)用戶從鍵盤按,^c,時,03,SIGQUIT,退出,當(dāng)用戶從鍵盤按,quit,鍵時,04,SIGILL,非法指令,05,SIGTRAP,跟蹤陷阱,啟動進(jìn)程,跟蹤代碼的執(zhí)行06,SIGIOT,IOT,指令,06,SIGEMT,EMT,指令,07,SIGFPE,浮點(diǎn)運(yùn)算溢出,08,SIGKILL,殺死終止進(jìn)程,16,SIGUSR1,用戶自定義信號,1,17,SIGUSR2,用戶自定義信號,2,,18,SIGCLD,某個子進(jìn)程死,19,SIGPWR,電源故障,function:,在該進(jìn)程中的一個函數(shù)地址,,,在核心態(tài)返回用戶態(tài)時,,,它以軟中斷信號的序號作為參數(shù)調(diào)用該函數(shù),,,對除了信號,sigkill,sigtrap,sigpwr,以外的信號,,,核心自動地重新設(shè)置軟中斷信號處理程序的值為,SIG_DFL,,一個進(jìn)程不能捕獲,SIGKILL,信號,.,,,function,解釋如下,:,,(1)function=1,時,,,進(jìn)程對,sig,類信號不理睬,,,即屏蔽了該類信號,;,,,(2)function=0,時,,,缺省值,,,進(jìn)程在收到,sig,信號后應(yīng)終止自已,;,,,(1)function,為非,0,,非,1,類整數(shù)時,,function,的值即作為信號處理程序的指針,.,3.lockf(),系統(tǒng)調(diào)用,,用作鎖定文件的某些段或者整個文件,.,,系統(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,信號,,,轉(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,信號,,,轉(zhuǎn),stop*/,,waiting();,kill(p1,16); /*,向,p1,發(fā)軟中斷信號,16*/,,kill(p2,17); /*,向,p2,發(fā)軟中斷信號,17*/,,wait(0); /*,同步*,/,,wait(0);,,printf("parent process is killed!\n");,,exit(0);,,},,,else,,{,,wait_mark=1;,,signal(17,stop); /*,接收到軟中斷信號,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); /*,接收到軟中斷信號,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; },另一個信號機(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");},,,,,問:此例屏幕上顯示的結(jié)果是什么?為什么?,。

    點(diǎn)擊閱讀更多內(nèi)容
    最新文檔
    傳統(tǒng)文化道德不是高懸的明月而是腳下的星光.pptx
    世界無煙日關(guān)注青少年成長健康無煙為成長護(hù)航.pptx
    五四青年節(jié)詩詞贊歌五四青年自強(qiáng)不息.pptx
    XX學(xué)校班主任培訓(xùn)用心管理慧做班主任.pptx
    拒絕熬夜健康養(yǎng)生規(guī)律作息遠(yuǎn)離亞健康.pptx
    兒童成長手冊時光里的童真印記.pptx
    幼兒園夏季傳染病預(yù)防指南預(yù)見夏天健康童行夏季傳染病預(yù)防科普.pptx
    高中生心理健康教育主題班會快樂學(xué)習(xí)高效學(xué)習(xí)正視壓力學(xué)會減壓.pptx
    員工職業(yè)道德與職業(yè)素養(yǎng)培訓(xùn)遵守職業(yè)道德提高職業(yè)修養(yǎng).pptx
    2025職業(yè)病防治法宣傳周健康守護(hù)職防同行.pptx
    XX幼兒園防災(zāi)減災(zāi)安全教育臨災(zāi)不亂安全童行學(xué)會保護(hù)自己.pptx
    在2025年縣教育工作大會暨高考備考工作推進(jìn)會上的講話發(fā)言材料.docx
    在2025年縣全面從嚴(yán)治黨和黨風(fēng)廉政會議上的講話發(fā)言材料.docx
    在2025年全市慶?!拔逡弧濒邉趧幽7侗碚么髸系闹v話發(fā)言材料多篇.docx
    2025年稅務(wù)局青年代表在五四青年座談會上的發(fā)言材料3篇.docx
    在2025年市委全體會議上的主持講話發(fā)言材料.docx
    2025年黨風(fēng)廉政建設(shè)工作要點(diǎn)材料.docx
    在2025年全市青年干部慶祝五四青年節(jié)大會上的講話發(fā)言材料多篇.docx
    在入黨積極分子培訓(xùn)班上的講話發(fā)言材料.docx
    縣文旅局黨組書記在五一假期及夏季旅游安全生產(chǎn)工作部署會議上的講話發(fā)言材料.docx
    賣家[上傳人]:huozhebian
    資質(zhì):實(shí)名認(rèn)證