您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > linux/Unix相关 > linux进程讲解
LINUX进程讲解--小唐Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。进程及作业Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源。我们所关心的是如何去控制这些进程,让它们能够很好地为用户服务。进程的一个比较正式的定义是∶在自身的虚拟地址空间运行的一个单独的程序。进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。进程和作业的概念也有区别。一个正在执行的进程称为一个作业,而且作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令。作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程,等一会儿再继续执行该进程。shell将记录所有启动的进程情况,在每个进程过程中,用户可以任意地挂起进程或重新启动进程。作业控制是许多shell(包括bash和tcsh)的一个特性,使用户能在多个独立作业间进行切换。例如,当用户编辑一个文本文件,并需要中止编辑做其他事情时,利用作业控制,用户可以让编辑器暂时挂起,返回shell提示符开始做其他的事情。其他事情做完以后,用户可以重新启动挂起的编辑器,返回到刚才中止的地方,就象用户从来没有离开编辑器一样。这只是一个例子,作业控制还有许多其他实际的用途。Linux的进程和程序区别进程是程序的执行过程程序是一个静态的指令集,进程是动态的进程之间是并发执行的,而程序本身没有并发行进程是分配资源的单位,在运行过程中使用系统资源ps命令功能:查看当前系统中运行的进程的信息基本格式:ps[选项]单独使用表示查看当前用户进程,常用参数:-A显示所有进程,包括系统进程和后台进程,?表示该进程不占用终端资源-a其他用户执行的进程一起列出-r只显示正在运行的进程-u按面向用户的格式显示-x显示所有终端上的进程信息-l长格式输出-w宽行显示ps常见状态说明:UID:进程所有者PID:进程IDPPID:父进程ID%CPU:进程使用CPU的时间比%MEM:使用内存的百分比SIZE:使用虚拟内存大小NI:优先级VSZ:虚拟内存大小RSS:常驻内存大小(Kbyte)TTY:与进程有关的终端STAT:状态其中,ps–u观测到STAT具体含义如下:R:运行态S:休眠态I:空闲态Z:僵死态D:磁盘等待P:页等待W:交换导出N:nice决定的优先级T:终止:执行由root决定的优先级例如:ps-uUSER、PID、%CPU、%MEM、VSZ、RSS、TTY、STAT、START、TIME、COMMANDguest16540.10.858081540pts/0S23:160:00-bashps-wauxRunning进程处于运行(它是系统的当前进程)或者准备运行状态(它在等待系统将CPU分配给它)。Waiting进程在等待一个事件或者资源。Linux将等待进程分成两类;可中断与不可中断。可中断等待进程可以被信号中断;不可中断等待进程直接在硬件条件等待,并且任何情况下都不可中断。Stopped进程被停止,通常是通过接收一个信号。正在被调试的进程可能处于停止状态。Zombie这是由于某些原因被终止的进程,但是在task数据中仍然保留task_struct结构。它象一个已经死亡的进程。SchedulingInformation调度器需要这些信息以便判定系统中哪个进程最迫切需要运行。进程的终止1、程序正常结束就退出2、结束前台运行程序:方法一:ctrl+c方法二:kill命令3、后台运行程序使用kill命令4、发送信号给该程序的所有进程killallkill命令格式kill[-s信号量|]PID说明:kill送出一特定的信号(signal)给行程ID为PID的行程根据该信号而做特定的动作,若没有指定,预设是送出终止(TERM)的信号。常用的信号有:HUP(1),KILL(9),TERM(15)分别代表着挂起,杀死,结束详细的信号可以用kill-l列出例如:将pid为2323的进程kill掉:kill-92323将pid为2456的进程重跑(restart):killall命令命令格式和kill类似不过killall可以直接加上进程名称例如:[guest@obglinuxguest]$cat&[1]2772[guest@obglinuxguest]$killall–9cat[1]+已杀死cat[guest@obglinuxguest]$进程的挂起和恢复进程的中止(挂起)和终止挂起(Ctrl+Z)终止(Ctrl+C)进程的恢复进程优先级:Linux是采用优先数调度算法来分配CPU1、普通用户只能降低进程优先级2、root允许提高优先级ps–l显示出NI和PRI字段PRI:是进程实际运行优先级(系统计算)NI:是进程请求执行优先级nicen程序修改某程序的优先级n为正:减少优先集n为负:增加优先级优先级范围为-20~19例如:在pts/1:[guest@obglinuxguest]$nicecat在pts/2:[guest@obglinuxguest]$ps-laNIADDRSZWCHANTTYTIMECMD10-1154schedupts/100:00:00cat0-823-pts/200:00:00ps计划执行命令at相关命令:atq(at-l)atrm(at-d)batch(at-b)-q:使用指定的队列(queue)来储存,queue的编号为a,b,c...z以及A,B,...Z共52个,字母越后优先级越低-m:即使程式/指令执行完成后没有输出结果,也要寄封信给使用者-ffile:先将所有的指定先写入档案后再一次读入-l:列出所有的没有执行的工作-b:较低优先级运行程序(默认为E)-d:删除没有执行的工作指定在TIME这个特定时刻执行某个程式或指令,TIME的格式是HH:MM其中的HH为小时,MM为分钟,甚至你也可以指定am,pm,midnight,noon。如果想要指定超过一天内的时间,则可以用MMDDYY或者MM/DD/YY的格式,其中MM是分钟,DD是第几日,YY是指年份。使用者也可以使用像是now+时间间隔来弹性指定时间,其中的时间间隔可以是minutes,hours,days,weeks另外使用者也可指定today或tomorrow来表示今天或明天。当指定了时间并按下enter之后,at会进入交谈模式并要求输入指令或程式,当你输入完后按下ctrl+D即可完成所有动作,至于执行的结果将会寄回你的帐号中。完整过程例1:三天后的下午5点执行/bin/ls:$at5pm+3days[guest@obglinuxguest]$at-l12004-12-0717:00aguest[guest@obglinuxguest]$at-d1例2:三个星期后的下午5点执行/bin/ls:at5pm+2weeks/bin/ls明天的17:20执行/bin/date:at17:20tomorrow/bin/date2004年的最后一天的最后一分钟显示happeynewyear!at23:5912/31/2004echohappeynewyear!atlsctrl+d表示结束接受。任务结束后会默认发到你的邮箱中.
本文标题:linux进程讲解
链接地址:https://www.777doc.com/doc-7027525 .html