【正文】
化。而lockf()函數(shù)作為監(jiān)視鎖,對鎖定的進程控制訪問。因此加入了my_wait()和my_stop()兩個函數(shù),并通過flag來實現(xiàn)子進程對中斷信號的屏蔽。父進程一旦收到子進程發(fā)送來的終止信息,則結束等待,終止自己的進程。//程序終止信號,默認操作寫dumpcore文件ii. 源代碼:參照a)中源代碼。但是后兩種情況的含義是不同的。使用系統(tǒng)調用pipe() 建立一條管道線;兩個子進程P1和P2分別向管道各寫一句話:Child 1 is sending a message!Child 2 is sending a message!而父進程則從管道中讀出來自于兩個子進程的信息,顯示在屏幕上。在管道通信中,系統(tǒng)調用pipe()函數(shù)初始化一個二元組作為管道,1為出,0為進,以此來保證管道通信不發(fā)生沖突。這個子進程和父進程不同的地方只有他的進程ID,其他部分都一樣。而在創(chuàng)建后,先執(zhí)行父進程還是子進程則取決于內核的調度算法。在加載可執(zhí)行文件時首先操作系統(tǒng)應該判斷該文件是否為一個合法的執(zhí)行文件,若是則按照段表中的指示為可執(zhí)行文件分配地址空間。4. 進程通信有什么特點?linux下進程間通信的幾種主要方式:管道(Pipe)及有名管道(named pipe):管道可用于具有親緣關系進程間的通信,有名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還允許無親緣關系進程間的通信; 信號(Signal):信號是比較復雜的通信方式,用于通知接受進程有某種事件發(fā)生,除了用于進程間通信外,進程還可以發(fā)送信號給進程本身;linux除了支持Unix早期信號語義函數(shù)sigal外,(實際上,該函數(shù)是基于BSD的,BSD為了實現(xiàn)可靠信號機制,又能夠統(tǒng)一對外接口,用sigaction函數(shù)重新實現(xiàn)了signal函數(shù)); 報文(Message)隊列(消息隊列):消息隊列是消息的鏈接表,包括Posix消息隊列system V消息隊列。是針對其他通信機制運行效率較低而設計的。起初是由Unix系統(tǒng)的BSD分支開發(fā)出來的,但現(xiàn)在一般可以移植到其它類Unix系統(tǒng)上:Linux和System V的變種都支持套接字總的來說,進程間的通信根據(jù)通信內容可以劃分為控制信息的傳送(低級通信)和大批數(shù)據(jù)的傳送(高級通信)。先是下載了virtualbox軟件但卻因為版本問題一直不能安裝linux系統(tǒng)成功。在聽課時,由于沒有將書本跟實際動手操作聯(lián)系在一起,對知識的印象不是很深,但這次為了編程,將書本上的內容完完整整過了好幾遍,對進程中fork()、kill()、signal()、lockf()、pipe()等函數(shù)有了更深的