簡單地說,當計算機運行一個軟件,會被拆分成若干部分來執行,進程就是計算機正在運行的程序,它具體指程序執行時所需的虛擬地址空間和控制信息。而每一個應用程序運行於獨立的進程、他們擁有自己獨立的地址空間。不同應用程序的分界線稱為進程邊界。今天就為大家介紹windows的那些進程與應用程序,希望了解這些能更好的為系統服務.
進程
一般進程可以定為一個正在運行的程序的一個實例,
一個內核對象,操作系統可以用它來管理進程。也是系統保存進程統計信息的地方。
一個地址空間,其中包含了可執行文件和DLL模塊的代碼數據,同時包括動態內存分配,和線程堆棧和堆得分配。
CPU的工作方式,是 一個進程可以有多個線程..然後CPU會輪流調度資源分配給各個線程,就像一個時鐘一樣。
關於Windows應用程序的組成
要點描述:
1. GUI 和 CUI 分別表示 圖形和控制台的界面,
2./SUBSYSTEM:CONSOLE 和 /SUB-SYSTEM:WINDOWS 分別是控制台和窗口的鏈接器開關
3._tWinMain 圖形界面的入口點函數 和 _tmain 控制台界面的入口點函數。
一、Windows一般可以建立兩種應用程序。
1.GUI程序 - 圖形用戶界面 - 它使用的連接器開關是/SUBSYSTEM:CONSOLE
2.CUI程序 - 控制台界面 - 它使用的連接器開關是/SUB-SYSTEM:WINDOWS
操作系統會加載並檢查可執行文件映像的文件頭,並獲取這個子系統值。
根據子系統值來創建 一個符合要求的程序界面。
二、 Windows 應用程序
都會有個入口點函數,在程序運行時,函數會被調用。
int WINAPI _tWinMain(
HINSTANCE hInstanceExe,
HINSTANCE,
PTSTR pszCmdLine,
int nCmdShow);
int _tmain(
int argc,
TCHAR *argv[],
TCHAR *envp[]);