單片機實(shí)時(shí)操作系統中進(jìn)程與鄉程
在32位的Windows系統中,術(shù)語(yǔ)多任務(wù)是指系統可以同時(shí)運行多個(gè)進(jìn)程,而每個(gè)進(jìn)程也可以同時(shí)執行多個(gè)線(xiàn)程。
----------------------------------------------------------------------------------------------------------------------
進(jìn)程能開(kāi)多少個(gè)?
進(jìn)程表不可以無(wú)限開(kāi)。每個(gè)進(jìn)程在系統內核的進(jìn)程表中都有記錄,以便于系統的調度,在進(jìn)程表中應該會(huì )給每個(gè)進(jìn)程一個(gè)固定長(cháng)度的編號,比如說(shuō)8位或16位的二進(jìn)制號碼,編號的長(cháng)度決定了系統最多可以調度的進(jìn)程數。一般XP開(kāi)200個(gè)進(jìn)程沒(méi)問(wèn)題的,只要配置高一點(diǎn)。
1、那么一個(gè)進(jìn)程能開(kāi)多少線(xiàn)程?
默認情況下,一個(gè)線(xiàn)程的棧要預留1M的內存空間,而一個(gè)進(jìn)程中可用的內存空間只有2G,所以理論上一個(gè)進(jìn)程中最多可以開(kāi)2048個(gè)線(xiàn)程,但是內存當然不可能完全拿來(lái)作線(xiàn)程的棧,所以實(shí)際數目要比這個(gè)值要小。
能開(kāi)多少進(jìn)程是根據內存限制的。
2.如何突破2000個(gè)限制?
可以通過(guò)修改CreateThread參數來(lái)縮小線(xiàn)程棧StackSize,
----------------------------------------------------------------------------------------------------------------------
簡(jiǎn)單的說(shuō),你每啟動(dòng)一個(gè)程序,就啟動(dòng)了一個(gè)進(jìn)程。在Windows 3.x下,進(jìn)程是最小運行單位。在Windows 95/NT下,每個(gè)進(jìn)程還可以啟動(dòng)幾個(gè)線(xiàn)程,比如每下載一個(gè)文件可以單獨開(kāi)一個(gè)線(xiàn)程。在Windows 95/NT下,線(xiàn)程是最小單位。WINDOWS的多任務(wù)特性使得線(xiàn)程之間獨立運行,但是它們彼此共享虛擬空間,也就是共用變量,線(xiàn)程有可能會(huì )同時(shí)操作一片內存。
所謂進(jìn)程,本身不能執行,它只是一個(gè)資源的集合體,擁有地址空間,模塊,內存,...
線(xiàn)程是真正的執行單元,一個(gè)進(jìn)程如果沒(méi)有線(xiàn)程,那么就沒(méi)有存在的意義,因為不可能執行
評論