歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix教程

淺析Unix操作系統下進程

今天我們來學習一些Unix操作系統進程之間的知識。這部分知識很重要,所以我們應好好的學習這部分知識。進程通訊是unix中很重要的知識。

進程是操作系統結構的基礎;是一個正在執行的程序;計算機中正在運行的程序實例;可以分配給處理器並由處理器執行的一個實體;由單一順序的執行顯示,一個當前狀態和一組相關的系統資源所描述的活動單元。

產生一個新的Unix操作系統進程主要有以下3種方法:

1,fork調用;
2,System調用;
3,Exec調用;

我們常說的進程通訊編程主要有以下3種方法:

1,Message queue隊列編程;
2,Tcp/IP socket編程;
3,共享內存編程;

一、Unix操作系統進程調用

1,產生進程Fork調用例子:

功能:創建一個新的進程.
語法:#include  unistd.h
說明:本系統調用產生一個新的進程, 叫子進程, 是調用進程的一個復制品.

調用進程叫父進程, 子進程繼承了父進程的幾乎所有的屬性:

實際UID,GID和有效UID,GID.環境變量.附加GID.調用exec()時的關閉標志.UID設置模式比特位.GID設置模式比特位.進程組號.會話ID.控制終端.當前工作目錄.根目錄.文件創建掩碼UMASK.文件長度限制ULIMIT.預定值, 如Unix操作系統優先級和任何其他的進程預定參數, 根據種類不同決定是否可以繼承.

還有一些其它屬性.但Unix操作系統子進程也有與父進程不同的屬性:

進程號, 子進程號不同與任何一個活動的進程組號.父進程號.

子進程繼承父進程的文件描述符或流時, 具有自己的一個拷貝並且與父進程和其它子進程共享該資源.

子進程的用戶時間和Unix操作系統時間被初始化為0.子進程的超時時鐘設置為0.子進程的信號處理函數指針組置為空.子進程不繼承父進程的記錄鎖.

返回值: 調用成功則對子進程返回0, 對父進程返回子進程號, 這也是最方便的區分父子進程的方法. 若調用失敗則返回-1給父進程,子進程不生成.

這樣,我們就介紹完了關於Unix操作系統進程之間的知識。希望大家能夠了解更多。

Copyright © Linux教程網 All Rights Reserved