简单地说,当计算机运行一个软件,会被拆分成若干部分来执行,进程就是计算机正在运行的程序,它具体指程序执行时所需的虚拟地址空间和控制信息。而每一个应用程序运行于独立的进程、他们拥有自己独立的地址空间。不同应用程序的分界线称为进程边界。
进程
一般进程可以定为一个正在运行的程序,
一个内核对象,操作系统可以用它来管理进程。也是系统保存进程统计信息的地方。
一个地址空间,其中包含了可执行文件和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[]);