程序是静态的概念,在linux下通过命令gcc xxx.c -o main磁盘中生产一个文件main 叫做程序。例如下面main、a.out 、f_config文件
进程是程序的一次运行活动,也就是说程序运行,系统就多一个进程。
通过ps指令可以查看系统中的进程 ps -aux 可以显示全部进程,示例如下 除此之外linux下还有一个top指令,相当于window下的任务管理器每个进程都有一个非负整数来表示唯一的ID,linux系统下称之为PID号,可以同比文件标识符、身份证号。每个进程都有唯一的进程标识符,如上图所示。
PID=0,称为交换进程,用于进程调度 PID=1,init进程,用于系统初始化1.将要被grep命令执行的代码保存在一个磁盘文件中。正常情况下,Linux进程不能对存放这代码文件的内存区域进行写的操作,即代码是以只读方式写入内存区域。可被多个进程安全的共享。 2.进程有自己的栈空间,用于保持函数中的局部变量和控制函数的调用与返回。 3.进程有自己的环境空间,包含专门为这个进程建立的环境变量。在linux系统中,在/proc中有一组特殊的文件,它允许你查看正在运行的进程内部的情况
Linux进程表像一种数据结构,它把当前加载在内存中的所有进程的有关信息保存在一个表中,如PID、进程状态、命令字符串等等信息。操作系统通过PID对他们进行管理和一些操作。早期的UNIX系统只能同时运行256个进程,而现在最新的版本,可以运行的进程数可能仅仅和建立进程表象的内存空间有关,也就是说这部分内存空间越大,相对之下,可运行的进程数越多,可以说是没了数字限制。
ps命令可以显示我们正在运行的进程、其他用户正在运行的进程或者目前在系统上运行的所有进程。
在某一个进程A中,创建了进程B,称进程A为父进程、进程B为子进程。linux系统中,通过fork()函数创建子进程。
此部分不需要深究,有大致了解即可。
基础概念很重要,这里只是简单介绍,深入了解可以多查查百度 增强编程能力,光看不行,动手最关键,最后总结出一片文章记录自己的学习过程。