进程与程序
所谓“进程”就是程序的一次执行。从内核角度看,进程是系统中的一个对象,它对应一个程序的执行流并且是一个资源分配的单位。系统为程序的这次活动分配内存,装入代码和数据,然后开始执行。执行过程中,进程要占用一部分系统资源,包括内存,处理器,文件等。操作系统就以“进程”为单位,管理这个执行流和它占用的内存等资源,并负责做到多个进程之间互不影响。
所谓“程序”,是一个由cpu指令和数据构成的集合,这些指令和数据存放在磁盘的一个普通文件中。程序是一个静态的概念,它用于在创建进程时初始化进程的用户数据段和指令段。初始化完成之后,进程开始执行。自此以后,进程和初始化它的程序之间就不再有联系了。
一个活动的进程和初始化它的程序之间要说还有联系的话,那便是进程运行后,它对应得磁盘上的程序文件不可被删除。这是由于操作系统中虚拟内存管理功能的需要。为了节约物理内存,用程序初始化进程的指令段是,并没有把程序中所有的指令全部调入内存,二是按照分页按需调入的策略,只调入部分,其它部分需要时才调入。因此程序文件不允许删除,也不允许改动。如果不是因为虚拟内存管理的原因,而是在程序初始化进程指令段时将所有命令都调入内存,那么进程启动后的程序文件完全可以删除。
几个同时运行的进程可以由同一程序初始化得到,而这些进程之间没有什么联系。Unix内核可以通过安排相同程序创建的多个进程来共享同一个指令段以节省内存,甚至只用动态链接的手段允许不同的程序共享相同的子程序代码。
所谓“程序”,是一个由cpu指令和数据构成的集合,这些指令和数据存放在磁盘的一个普通文件中。程序是一个静态的概念,它用于在创建进程时初始化进程的用户数据段和指令段。初始化完成之后,进程开始执行。自此以后,进程和初始化它的程序之间就不再有联系了。
一个活动的进程和初始化它的程序之间要说还有联系的话,那便是进程运行后,它对应得磁盘上的程序文件不可被删除。这是由于操作系统中虚拟内存管理功能的需要。为了节约物理内存,用程序初始化进程的指令段是,并没有把程序中所有的指令全部调入内存,二是按照分页按需调入的策略,只调入部分,其它部分需要时才调入。因此程序文件不允许删除,也不允许改动。如果不是因为虚拟内存管理的原因,而是在程序初始化进程指令段时将所有命令都调入内存,那么进程启动后的程序文件完全可以删除。
几个同时运行的进程可以由同一程序初始化得到,而这些进程之间没有什么联系。Unix内核可以通过安排相同程序创建的多个进程来共享同一个指令段以节省内存,甚至只用动态链接的手段允许不同的程序共享相同的子程序代码。
浙公网安备 33010602011771号