程序是一个静态的概念,是存在于存储介质上的一组由代码指令,符号信息等组成的二进制数据,这组数据在不同的操作系统平台上有不同的组织格式,比如Windows的PE格式,Linux的ELF格式等。当需要运行一个程序时,由操作系统内核将该程序读取出来,按其组织格式解析,并把代码段,数据段等装入内存,并构建虚拟地址空间,并在内核的管理结构中注册这个新开僻的动态结构,这就是进程了,也就是说,进程是程序在系统中的一个运行实例,一个程序可以有多个运行实例。一个进程它有进程状态,地址空间,代码段,静态数据段,动态数据段,所请求的系统资源(打开的文件,占用的设备)等。
现在操作系统都是多任务的操作系统,有多个进程可以在同一个CPU上“同时”运行“,但这个”同时“是个假像,是通过分时调度实现的,当前正在运行的进程就称为当前进程。没有当前程序的概念。
如果还有不清楚的,我们随时在版面发文交流,谢谢。