久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

多進程編程的相關知識總結

時間:2019-05-12 03:57:21下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《多進程編程的相關知識總結》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《多進程編程的相關知識總結》。

第一篇:多進程編程的相關知識總結

多進程編程的相關知識總結

(一)作者:不詳

閱讀人次:2138

文章來源:vczx.com

發布時間:2007-8-29

友評論(0)條

一.多進程程序的特點

由于UNIX系統是分時多用戶系統, CPU按時間片分配給各個用戶使用, 而在實質上 應該

說CPU按時間片分配給各個進程使用, 每個進程都有自己的運行環境以使得在CPU 做進程

切換時不會“忘記”該進程已計算了一半的“半成品”.以DOS的概念來說, 進程的切 換都

是一次“DOS中斷”處理過程, 包括三個層次:

(1)用戶數據的保存: 包括正文段(TEXT), 數據段(DATA,BSS), 棧段(STACK), 共享

內存段(SHARED MEMORY)的保存.(2)寄存器數據的保存: 包括PC(program counter,指向下一條要執行的 指

令的地址), PSW(processor status word,處理機狀態字), SP(stack pointer,棧 指

針), PCBP(pointer of process control block,進程控制塊指針), FP(frame pointer,指向棧中一個函數的local變量的首地址), AP(augument pointer,指向 棧中函

數調用的實參位置), ISP(interrupt stack pointer,中斷棧指針), 以及其他的 通用寄 存器等.(3)系統層次的保存: 包括proc,u,虛擬存儲空間管理表格,中斷處理棧.以便于

該進程再一次得到CPU時間片時能正常運行下去.既然系統已經處理好所有這些中 斷處理 的過程, 我們做程序還有什么要擔心的呢? 我們盡可以使用系統提供的多進程的 特點, 讓幾個程序精誠合作, 簡單而又高效地把結果給它搞出來.另外,UNIX系統本身也是用C語言寫的多進程程序,多進程編程是UNIX的特點, 當我們

熟悉了多進程編程后,將會對UNIX系統機制有一個較深的認識.首先我介紹一下多 進程程

序的一些突出的特點:

1.并行化

一件復雜的事件是可以分解成若干個簡單事件來解決的, 這在程序員

的大腦中早就形成了這種概念, 首先將問題分解成一個個小問題, 將小問

題再細分, 最后在一個合適的規模上做成一個函數.在軟件工程中也是這

么說的.如果我們以圖的方式來思考, 一些小問題的計算是可以互不干擾

的, 可以同時處理, 而在關鍵點則需要統一在一個地方來處理, 這樣程序

的運行就是并行的, 至少從人的時間觀念上來說是這樣的.而每個小問題

的計算又是較簡單的.2.簡單有序

這樣的程序對程序員來說不亞于管理一班人, 程序員為每個進程設計

好相應的功能, 并通過一定的通訊機制將它們有機地結合在一起, 對每個

進程的設計是簡單的, 只在總控部分小心應付(其實也是蠻簡單的), 就可

完成整個程序的施工.3.互不干擾

這個特點是操作系統的特點, 各個進程是獨立的, 不會串位.4.事務化

比如在一個數據電話查詢系統中, 將程序設計成一個進程只處理一次

查詢即可, 即完成一個事務.當電話查詢開始時, 產生這樣一個進程對付

這次查詢;另一個電話進來時, 主控程序又產生一個這樣的進程對付, 每 個進程完成查詢任務后消失.這樣的編程多簡單, 只要做一次查詢的程序

就可以了.二.常用的多進程編程的系統調用

1.fork()

功能:創建一個新的進程.語法:#include

#include

pid_t fork();

說明:本系統調用產生一個新的進程, 叫子進程, 是調用進程的一個復

制品.調用進程叫父進程, 子進程繼承了父進程的幾乎所有的屬

性:

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

決定是否可以繼承..還有一些其它屬性.但子進程也有與父進程不同的屬性:

.進程號, 子進程號不同與任何一個活動的進程組號..父進程號..子進程繼承父進程的文件描述符或流時, 具有自己的一個拷貝

并且與父進程和其它子進程共享該資源..子進程的用戶時間和系統時間被初始化為0..子進程的超時時鐘設置為0..子進程的信號處理函數指針組置為空..子進程不繼承父進程的記錄鎖.返回值: 調用成功則對子進程返回0, 對父進程返回子進程號, 這也是

最方便的區分父子進程的方法.若調用失敗則返回-1給父進程,子進程不生成.例子:pid_t pid;

if((pid=fork())>0){

/*父進程處理過程*/

}

else if(pid==0){

/*子進程處理過程*/

exit(0);

/*注意子進程必須用exit()退出運行*/

}

else {

printf(“fork errorn”);

exit(0);

}

2.system()

功能:產生一個新的進程, 子進程執行指定的命令.語法:#include

#include

int system(string)

char *string;

說明:本調用將參數string傳遞給一個命令解釋器(一般為sh)執行, 即

string被解釋為一條命令, 由sh執行該命令.若參數string為一

個空指針則為檢查命令解釋器是否存在.該命令可以同命令行命令相同形式, 但由于命令做為一個參數放

在系統調用中, 應注意編譯時對特殊意義字符的處理.命令的查

找是按PATH環境變量的定義的.命令所生成的后果一般不會對父

進程造成影響.返回值:當參數為空指針時, 只有當命令解釋器有效時返回值為非零.若參數不為空指針, 返回值為該命令的返回狀態(同waitpid())

的返回值.命令無效或語法錯誤則返回非零值,所執行的命令被

終止.其他情況則返回-1.例子:char command[81];

int i;

for(i=1;i<8;i++){ sprintf(command,“ps-t tty%02i”,i);system(command);} 3.exec()功能:執行一個文件 語法:#include

int execl(path,arg0,...,argn,(char*)0)

char *path,*arg0,...,*argn;

int execv(path,argv)

char *path,*argv[];

int execle(path,arg0,...,argn,(char*)0,envp)

char *path,*arg0,...,*argn,*envp[];

int execve(path,argv,envp)

char *path,*argv[],*envp[];

int execvp(file,argv)

char *file,*argv[];

說明:這是一個系統調用族, 用于將一個新的程序調入本進程所占的內

存, 并覆蓋之, 產生新的內存進程映象.新的程序可以是可執行

文件或SHELL批命令.當C程序被執行時,是如下調用的:

main(int argc,char *argv[],char *envp[]);

argc是參數個數,是各個參數字符串指針數組,envp是新進程的環

境變量字符串的指針數組.argc至少為1,argv[0]為程序文件名,所以,在上面的exec系統調用族中,path為新進程文件的路徑名,file為新進程文件名,若file不是全路徑名,系統調用會按PATH環

境變量自動找對應的可執行文件運行.若新進程文件不是一個可

執行的目標文件(如批處理文件),則execlp()和execvp()會將該

文件內容作為一個命令解釋器的標準輸入形成system().arg0,...等指針指向'

主站蜘蛛池模板: 成年女人免费毛片视频永久vip| 日韩人妻一区二区三区免费| 色五月丁香五月综合五月| 丰满人妻无奈张开双腿av| 久久天天躁夜夜躁狠狠躁2014| 国产三级在线观看免费| 国产一性一交一伦一a片| 99无码人妻一区二区三区免费| 国产精品亚洲а∨无码播放| 国产精品成人99一区无码| 99久久99精品久久久久久| 中文字幕乱码亚洲无线码三区| 国产精品yy9299在线观看| 亚洲欧洲成人精品香蕉网| 国产精品爆乳在线播放| 午夜无码片在线观看影院y| 国产69精品久久久久乱码| 国产97超碰人人做人人爱| 1000部无遮挡拍拍拍免费视频观看| 久久大香香蕉国产免费网vrr| 国产人妻777人伦精品hd| 欧美牲交a欧美牲交aⅴ久久| 日本少妇又色又爽又高潮| 国产日韩亚洲大尺度高清| 九九久久精品国产波多野结衣| 国产成人无码av在线播放无广告| 亚洲人成网亚洲欧洲无码| 高清无码视频直接看| 久久久久久久久久久综合日本| 少妇性荡欲午夜性开放视频剧场| 99精品欧美一区二区三区| 黑人30厘米少妇高潮全部进入| 在线天堂中文www官网| 男女性高爱潮免费观看| 亚洲午夜精品久久久久久人妖| 久久国产美女精品久久| 亚洲a∨国产av综合av下载| 国语自产偷拍在线观看| 国产乱女婬av麻豆国产| 少妇真实被内射视频三四区| 大肉大捧一进一出好爽mba|