Linux进程
时间:2010-11-04 来源:龍蝦
进程和程序:
程序只是一个静态的数据和指令集合,而进程是一个程序的动态执行过程,具有生命周期,是动态的产生和消亡的。
进程是资源申请、调度和独立运行的单位,因此它使用系统中的运行资源,而程序不占用系统的运行资源。
程序与进程无一一对应关系。一个程序可以由多个进程所共用,即一个程序在运行过程中可以产生多个进程;一个进程在生命周期内可以顺序执行若干个程序。
Linux中的进程,每个进程有一个识别号,PID(Process ID)。系统启动后的第一个进程是init,PID是1。init是唯一一个由系统内核直接运行的进程。新的进程可以用系统调用fork产生,从一个旧进程中分出一个新进程来,旧进程是新进程的父进程,新进程是产生他的旧进程的子进程,除了init之外,每一个进程都有父进程。
系统启动后,init进程会创建login进程等待用户登录,当用户登录系统后,login进程就会为用户启动shell进程,此后用户运行的进程都是由shell衍生出来的。
除了PID外,每个进程还有另外4个识别号:
实际用户识别号(real user ID),
实际组识别号,
有效用户识别号(effect user ID),
有效组识别号。
实际用户识别号和实际组识别号用于识别正在运行此进程的用户和组,也即运行此进程的用户的识别号和组的识别号。有效用户识别号和有效组识别号确定一个进程对其访问的文件的权限和优先权。
进程分类:
交互进程:有一个Shell启动的进程,可在前台运行,也可在后台运行。
批处理进程:不与特定的终端相关联,提交到等待队列中顺序执行的进程。
守护进程:在Linux启动时初始化,需要时运行于后台的进程。
进程启动方式:
1.手工启动:由用户输入命令直接启动一个进程,分为:
前台启动--直接输入命令
后台启动--在命令行后使用&命令
2.调度启动:事先设置,根据用户要求让系统自动启动