進(jìn)程

每個(gè)進(jìn)程都可以通過(guò)系統(tǒng)調(diào)用fork來(lái)創(chuàng)建子進(jìn)程召夹,子進(jìn)程復(fù)制父進(jìn)程的數(shù)據(jù)段滥嘴、堆动羽、棧和代碼段句喷。全盤復(fù)制父進(jìn)程的數(shù)據(jù)會(huì)很低效镣典,Linux內(nèi)核采用一種寫時(shí)復(fù)制(Cpoy On Write)的機(jī)制來(lái)提高創(chuàng)建進(jìn)程的效率。

子進(jìn)程也可以通過(guò)系統(tǒng)調(diào)用exec來(lái)加載一個(gè)新程序唾琼,覆蓋原先從父進(jìn)程復(fù)制的數(shù)據(jù)段兄春、代碼段、堆和棧等锡溯。

進(jìn)程的屬性

進(jìn)程描述符保存了進(jìn)程相關(guān)的屬性赶舆,包括優(yōu)先級(jí)、狀態(tài)祭饭、虛擬地址范圍以及各種訪問(wèn)權(quán)限芜茵。進(jìn)程描述符其實(shí)就是一種數(shù)據(jù)結(jié)構(gòu),在Linux系統(tǒng)中倡蝙,每個(gè)進(jìn)程都有一個(gè)唯一標(biāo)識(shí)(也會(huì)保存在進(jìn)程描述符中)九串,就是進(jìn)程ID,即PID寺鸥,還有父進(jìn)程ID猪钮,即PPID。

進(jìn)程狀態(tài)

image.png

進(jìn)程的空間

用戶進(jìn)程存在于用戶空間中胆建,無(wú)法與硬件進(jìn)行交互烤低;內(nèi)核進(jìn)程存在于內(nèi)核空間中,可以直接與硬件交互笆载;

用戶空間和內(nèi)核空間都是操作系統(tǒng)對(duì)內(nèi)存范圍的劃分扑馁,這里說(shuō)的內(nèi)存其實(shí)是虛擬內(nèi)存,并不等同于物理內(nèi)存凉驻。

image.png

用戶進(jìn)程只能通過(guò)內(nèi)核提供的系統(tǒng)調(diào)用腻要,來(lái)操作內(nèi)核,達(dá)到和硬件交互的效果沿侈。

系統(tǒng)調(diào)用使用上跟普通的函數(shù)調(diào)用是一樣的闯第,但其實(shí)是兩種東西市栗,CPU在執(zhí)行進(jìn)程的時(shí)候缀拭,會(huì)有狀態(tài)的概念-內(nèi)核態(tài)和用戶態(tài),比如在執(zhí)行用戶進(jìn)程的時(shí)候填帽,CPU是沒(méi)有權(quán)限訪問(wèn)內(nèi)核空間的蛛淋。因此,在進(jìn)行系統(tǒng)調(diào)用的時(shí)候篡腌,還伴隨著CPU狀態(tài)的變換褐荷。

進(jìn)程切換意味著需要做上下文的切換(其實(shí)就是CPU運(yùn)行過(guò)程中寄存器狀態(tài)的保存和切換),線程切換也會(huì)有這部分開銷嘹悼。

IPC-進(jìn)程間通信

上述描述的是多進(jìn)程不斷的切換叛甫,獲得CPU調(diào)度层宫,相互獨(dú)立的執(zhí)行。
但其實(shí)大多數(shù)常見(jiàn)其监,都是需要多進(jìn)程協(xié)同完成某些任務(wù)的萌腿,這就需要IPC的支持。

資源共享

多進(jìn)程(或者是多線程抖苦、多協(xié)程等)訪問(wèn)統(tǒng)一資源毁菱,難免會(huì)相互干擾,這個(gè)干擾就成為競(jìng)態(tài)條件锌历。
資源共享還引入了兩個(gè)概念:

  • 原子操作:執(zhí)行過(guò)程中不能被中斷的操作成為原子操作贮庞。
  • 臨界區(qū):需要串行訪問(wèn)的資源或者代碼段,成為臨界區(qū)究西。

管道

管道是一種單向的通信方式窗慎。

信號(hào)

一種異步的通信方式,用軟件來(lái)模擬硬件的中斷機(jī)制卤材,通知某個(gè)進(jìn)程某個(gè)事件發(fā)生了捉邢。每個(gè)信號(hào)都是以“SIG”前綴的名字,本質(zhì)上其實(shí)是正整數(shù)商膊。
Linux支持62種信號(hào)伏伐,分為標(biāo)準(zhǔn)信號(hào)(131)和實(shí)時(shí)信號(hào)(3464)。

  • 標(biāo)準(zhǔn)信號(hào):同一個(gè)進(jìn)程晕拆,每種標(biāo)準(zhǔn)信號(hào)只會(huì)被記錄和處理一次藐翎。
  • 實(shí)時(shí)信號(hào):多個(gè)同種類的信號(hào)都可以被記錄,并且按順序被處理实幕。

socket

實(shí)現(xiàn)分布式通信

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吝镣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子昆庇,更是在濱河造成了極大的恐慌末贾,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件整吆,死亡現(xiàn)場(chǎng)離奇詭異拱撵,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)表蝙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門拴测,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人府蛇,你說(shuō)我怎么就攤上這事集索。” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵务荆,是天一觀的道長(zhǎng)妆距。 經(jīng)常有香客問(wèn)我,道長(zhǎng)函匕,這世上最難降的妖魔是什么毅厚? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮浦箱,結(jié)果婚禮上吸耿,老公的妹妹穿的比我還像新娘。我一直安慰自己酷窥,他們只是感情好咽安,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蓬推,像睡著了一般妆棒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沸伏,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天糕珊,我揣著相機(jī)與錄音,去河邊找鬼毅糟。 笑死红选,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的姆另。 我是一名探鬼主播喇肋,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼迹辐!你這毒婦竟也來(lái)了蝶防?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤明吩,失蹤者是張志新(化名)和其女友劉穎间学,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體印荔,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡低葫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了躏鱼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氮采。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡殷绍,死狀恐怖染苛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤茶行,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布躯概,位于F島的核電站,受9級(jí)特大地震影響畔师,放射性物質(zhì)發(fā)生泄漏娶靡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一看锉、第九天 我趴在偏房一處隱蔽的房頂上張望姿锭。 院中可真熱鬧,春花似錦伯铣、人聲如沸呻此。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)焚鲜。三九已至,卻和暖如春放前,著一層夾襖步出監(jiān)牢的瞬間忿磅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工凭语, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留葱她,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓似扔,卻偏偏與公主長(zhǎng)得像览效,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子虫几,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 又來(lái)到了一個(gè)老生常談的問(wèn)題锤灿,應(yīng)用層軟件開發(fā)的程序員要不要了解和深入學(xué)習(xí)操作系統(tǒng)呢? 今天就這個(gè)問(wèn)題開始辆脸,來(lái)談?wù)劜?..
    tangsl閱讀 4,098評(píng)論 0 23
  • 1 進(jìn)程介紹 1.1 進(jìn)程和程序 所謂進(jìn)程是由正文段(text)但校、用戶數(shù)據(jù)段(user segment)以及系統(tǒng)數(shù)...
    瘋狂小王子閱讀 1,228評(píng)論 0 7
  • 操作系統(tǒng)概論 操作系統(tǒng)的概念 操作系統(tǒng)是指控制和管理計(jì)算機(jī)的軟硬件資源,并合理的組織調(diào)度計(jì)算機(jī)的工作和資源的分配啡氢,...
    野狗子嗷嗷嗷閱讀 11,897評(píng)論 3 34
  • 1.進(jìn)程組織結(jié)構(gòu) 1. task_struct ,thread_info 和內(nèi)核棧 在內(nèi)核中通常current宏獲...
    FlyingReganMian閱讀 1,178評(píng)論 0 1
  • 一個(gè)人為什么想一個(gè)人倘是?因?yàn)樗蛩?jīng)見(jiàn)到過(guò)她或他亭枷。這一見(jiàn),心就開始抓取了搀崭、粘連了叨粘、貪戀了猾编,愛(ài)染了所以就想了、念了升敲、...
    騁祥閱讀 857評(píng)論 0 1