課程內(nèi)容
Python并發(fā)編程高級(jí)課程--進(jìn)程狀態(tài)和分配空間
進(jìn)程的狀態(tài):
當(dāng)我們打開(kāi)一段程序運(yùn)行的時(shí)候,就需要占用CPU,如果其他程序占用。那就需要等待系統(tǒng)為其分配處理器,此時(shí)進(jìn)程的狀態(tài)就成為就緒態(tài),一旦系統(tǒng)噴賠了處理器資源來(lái)運(yùn)行此程序,那么進(jìn)程的狀態(tài)就成為運(yùn)行態(tài),如果在運(yùn)行過(guò)程中,需要和人進(jìn)行互動(dòng),比如需要用戶鍵盤(pán)輸入或鼠標(biāo)點(diǎn)擊才能繼續(xù)執(zhí)行,此時(shí)進(jìn)程會(huì)進(jìn)入休眠態(tài)。等待用戶輸入后,又會(huì)恢復(fù)為運(yùn)行態(tài)。
地址空間:
進(jìn)程在執(zhí)行過(guò)程中,還需要占用內(nèi)存等資源,所占用的內(nèi)存空間即虛擬地址空間。與虛擬地址空間相對(duì)的是物理地址空間,進(jìn)程的物理地址空間對(duì)應(yīng)的是進(jìn)程實(shí)際占用的這塊物理內(nèi)存。
進(jìn)程地址空間的內(nèi)存布局,大體可分為四個(gè)部分:代碼段,數(shù)據(jù)段,堆區(qū),棧區(qū)。每個(gè)部分用來(lái)存儲(chǔ)特定類型的數(shù)據(jù),比如代碼段存儲(chǔ)的是可執(zhí)行的機(jī)器指令,數(shù)據(jù)段存儲(chǔ)的是程序的數(shù)據(jù)。
操作系統(tǒng)在實(shí)際實(shí)現(xiàn)中將內(nèi)存與磁盤(pán)抽象為虛擬內(nèi)存,并為進(jìn)程提供了一層抽象,使得每個(gè)進(jìn)程都在獨(dú)占地使用這塊虛擬內(nèi)存。

- 上一篇
Python并發(fā)編程高級(jí)課程--進(jìn)程
什么是進(jìn)程?進(jìn)程可以直接的理解為正在執(zhí)行的程序。當(dāng)一個(gè)腳本文件運(yùn)行后就是一個(gè)進(jìn)程。而進(jìn)程的執(zhí)行必須由操作系統(tǒng)為其分配CPU,內(nèi)存,磁盤(pán)等系統(tǒng)資源,從這一個(gè)角度進(jìn)行分析,我們可以初步得出這樣的結(jié)論:進(jìn)程是操作系統(tǒng)進(jìn)行資源分配的基本單位。編程當(dāng)中需要考慮的問(wèn)題?既
- 下一篇
Python并發(fā)編程高級(jí)課程--進(jìn)程間的通信和同步
進(jìn)程間的通信:和人類社會(huì)一樣,每個(gè)進(jìn)程在執(zhí)行過(guò)程中也需要爭(zhēng)奪更多的系統(tǒng)資源來(lái)執(zhí)行自身程序,所以他們之間也需要通信,最常見(jiàn)的通信就是文件,共享內(nèi)存,信號(hào),套接字等。進(jìn)程之間的通信,本質(zhì)是數(shù)據(jù)傳輸。進(jìn)程間的同步:如果系統(tǒng)中只存在一個(gè)進(jìn)程,或系統(tǒng)中的進(jìn)程完全孤立