實驗三 軟中斷通信_第1頁
已閱讀1頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗三軟中斷通信實驗目的1、了解什么是信號2、熟悉LINUX系統(tǒng)中進程之間軟中斷通信的基本原理實驗內容1、編寫程序:用fk()創(chuàng)建兩個子進程,再用系統(tǒng)調用signal()讓父進程捕捉鍵盤上來的中斷信號(即按^c鍵);捕捉到中斷信號后,父進程用系統(tǒng)調用kill()向兩個子進程發(fā)出信號,子進程捕捉到信號后分別輸出下列信息后終止:Childprocess1iskilledbyparent!Childprocess2iskilledbypare

2、nt!父進程等待兩個子進程終止后,輸出如下的信息后終止:Parentprocessiskilled!2、分析利用軟中斷通信實現(xiàn)進程同步的機理實驗指導一、信號1、信號的基本概念每個信號都對應一個正整數(shù)常量(稱為signalnumber即信號編號。定義在系統(tǒng)頭文件中),代表同一用戶的諸進程之間傳送事先約定的信息的類型,用于通知某進程發(fā)生了某異常事件。每個進程在運行時,都要通過信號機制來檢查是否有信號到達。若有,便中斷正在執(zhí)行的程序,轉向與該

3、信號相對應的處理程序,以完成對該事件的處理;處理結束后再返回到原來的斷點繼續(xù)執(zhí)行。實質上,信號機制是對中斷機制的一種模擬,故在早期的UNIX版本中又把它稱為軟中斷。信號與中斷的相似點:(1)采用了相同的異步通信方式;(2)當檢測出有信號或中斷請求時,都暫停正在執(zhí)行的程序而轉去執(zhí)行相應的處理程序;(3)都在處理完畢后返回到原來的斷點;(4)對信號或中斷都可進行屏蔽。信號與中斷的區(qū)別:(1)中斷有優(yōu)先級,而信號沒有優(yōu)先級,所有的信號都是平等

4、的;(2)信號處理程序是在用戶態(tài)下運行的,而中斷處理程序是在核心態(tài)下運行;(3)中斷響應是及時的,而信號響應通常都有較大的時間延遲。信號機制具有以下三方面的功能:(1)發(fā)送信號。發(fā)送信號的程序用系統(tǒng)調用kill()實現(xiàn);(2)預置對信號的處理方式。接收信號的程序用signal()來實現(xiàn)對處理方式的預置;(3)收受信號的進程按事先的規(guī)定完成對相應事件的處理。2、信號的發(fā)送信號的發(fā)送,是指由發(fā)送進程把信號送到指定進程的信號域的某一位上。如果

5、目標進程正在一個可被中斷的優(yōu)先級上睡眠,核心便將它喚醒,發(fā)送進程就此結束。一個進程可能在其信號域中有多個位被置位,代表有多種類型的信號到達,但對于一類信號,進程卻只能記住其中的某一個。進程用kill()向一個進程或一組進程發(fā)送一個信號。violation),進程試圖去訪問其虛地址空間以外的位置12SIGSYS系統(tǒng)調用中參數(shù)錯,如系統(tǒng)調用號非法13SIGPIPE向某個非讀管道中寫入數(shù)據(jù)14SIGALRM鬧鐘。當某進程希望在某時間后接收信號

6、時發(fā)此信號15SIGTERM軟件終止(softwaretermination)16SIGUSR1用戶自定義信號117SIGUSR2用戶自定義信號218SIGCLD某個子進程死19SIGPWR電源故障function:在該進程中的一個函數(shù)地址,在核心返回用戶態(tài)時,它以軟中斷信號的序號作為參數(shù)調用該函數(shù),對除了信號SIGKILL,SIGTRAP和SIGPWR以外的信號,核心自動地重新設置軟中斷信號處理程序的值為SIG_DFL,一個進程不能捕

7、獲SIGKILL信號。function的解釋如下:(1)function=1時,進程對sig類信號不予理睬,亦即屏蔽了該類信號;(2)function=0時,缺省值,進程在收到sig信號后應終止自己;(3)function為非0,非1類整數(shù)時,function的值即作為信號處理程序的指針。三、參考程序#include#include#include#include#includevoidwaiting()stop()intwait_ma

8、rkintmain()intp1p2stdout=1while((p1=fk())==1)創(chuàng)建子進程p1if(p10)while((p2=fk())==1)創(chuàng)建子進程p2if(p20)wait_mark=1signal(SIGINTstop)接收到^c信號,轉stopwaiting()kill(p116)向p1發(fā)軟中斷信號16kill(p217)向p2發(fā)軟中斷信號17wait(0)同步wait(0)printf(“Parentproce

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論