《操作系统进程管理》由会员分享,可在线阅读,更多相关《操作系统进程管理(29页珍藏版)》请在金锄头文库上搜索。
1、操作系统进程管理Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望Windows进程管理进程管理进程管理器Windows常用系统进程列表常用系统进程列表在在Windows2000中中,系统包含以下缺省进程:系统包含以下缺省进程:Csrss.exe 子系统服务器进程 Explorer.exe 资源管理器 Internat.exe 托盘区的拼音图标 Lsass.exe 管理 IP 安全策略Mstask.exe 允许程序在指定时间运行 Smss.exe Session Manager Spo
2、olsv.exe 将文件加载到内存中以便打印windows常用系统进程列表常用系统进程列表Svchost.exe Win 2000/XP 的文件保护系统 Services.exe 包含很多系统服务 Taskmgr.exe Windows任务管理Winlogon.exe 管理用户登录 Winmgmt.exe 提供系统管理信息(系统服务)System Idle Process 用于统计剩余的CPU资源情况,此进程是不可以从任务管理器中关掉的 Windows进程进程我们有时会碰到一些进程,象“winjava.exe”病毒的进程,在任务管理器里是终止不了的,可以借助ntsd在命令行下终止进程。ntsd
3、从2000开始就是系统自带的用户态调试工具。开个cmd.exe窗口,输入命令:c:ntsd -c q -p PIDLinux进程管理进程管理Linux进程管理进程管理Linux进程中最知名的属性就是它的进程号(PID)和它的父进程号(PPID)。一个PID唯一地标识一个进程,一个进程创建新进程称为创建了子进程,创建子进程的进程成为父进程。所有进程追溯其祖先最终都会落到进程号为1的进程身上,这个进程叫做init进程,是内核自举后第一个启动的进程。Linux进程管理进程管理Linux操作系统包括了3种不同类型的进程:交互进程:交互进程:有一个shell启动的进程。可在前台运行,也可以在后台运行;批
4、处理进程:批处理进程:这种进程和终端没有联系,是一个进程序列监控进程:监控进程:Linux系统启动时启动的进程,并在后台运行Linux进程启动进程启动输入需要运行的程序名,执行一个程序,其实就是启动了一个进程。启动一个进程有两种途径:手工启动和调度启动。后者是事先进行设置,根据用户需要自行启动1.手工启动手工启动前台启动:前台启动:# find /-name fox.jpg后台启动:后台启动:#find /-name fox.jpg findresult.txt & 1 9137Linux进程启动进程启动后台进程在命令结尾加上一个“&”号,输入命令后,出现一个数字,即PID,用户可以继续其他操
5、作。这两者启动方式共同点:新进程都是由当前shell进程产生的,shell是父进程,新进程是子进程。一般子进程结束后才能结束父进程,如果是从后台启动,那么就不需要等待子进程结束了。管道进程:# ls al | more此命令同时启动了3个进程,所有放在管道两边的进程将被同时启动,它们都是当前shell的子程序,互相成为兄弟进程Linux进程启动进程启动2.调度进程调度进程At命令:命令:在指定时刻执行指定的命令序列at -v -q 队列队列 -f 文件名文件名 -mldbv 时间时间-v 将标准版本号打印到标准的错误中-q queue 使用指定的队列,队列名由单个字母组成。-m 作业结束后发送
6、邮件给执行at命令的用户-f file 使用命令从指定的file中读取,而不是从标准输入读取-c 将命令行上所列的作业送到标准输出Linux进程启动进程启动例1:在三天后下午4点执行文件work中的作业:# at f work 4pm +3 day例2:找出系统中所有.txt为后缀的文件,并进行打印,打印结束后,给用户ncs发邮件通知取文件,指定时间:12月25日凌晨2点#at 2:00 12/25/2007atfind /-name “*.txt” | lpratecho “ncs:All texts have been printed.You can take them over!” |m
7、ail s “job done” ncsLinux进程启动进程启动如果命令序列较长或经常被执行时,可将该序列写到一个文件中,然后将文件作为at命令的输入来处理:如:将上例命令写入文件:/tmp/printjob# at f /tmp.printjob 2:00 12/25/2007或#at /tmp.printjob 2:00 12/25/2007Linux进程启动进程启动在任何情况下,超级用户都可以使用这个命令,对于其他用户,是否能使用取决于/etc/at.allow和/etc/at.deny两个文件,如果/etc/at.allow存在,则只有在其中列出的用户可以使用at命令,如果该文件不存
8、在,检查/etc/at.deny,如存在,在此文件中列出的用户均不能使用该命令,空的/etc/at.deny意味着所有的用户都可以使用该命令Linux进程启动进程启动batch命令命令 用于低优先级运行作业,功能与at相同,只是batch在系统负载较低,资源较空闲的时候执行,适用于执行占资源比较多的命令cron命令命令 at和batch命令都只能执行一次,cron可重复执行一些命令Linux进程启动进程启动Cron命令cron服务是linux的内置服务。可以用以下命令启动和停止服务:/sbin/service crond start/sbin/service crond stop/sbin/s
9、ervice crond restart/sbin/service crond reloadLinux进程启动进程启动cron把命令行保存在crontab(crontable)文件里,这个文件通常在/etc目录下。每个系统用户都可以有自己的crontab(在/var/spool/cron/下)。要查看当前用户的crontab,输入crontab-l;要编辑crontab,输入crontab-e;要删除crontab,输入crontab-r。如当前是root身份,要查看/编辑/删除/某用户的crontab,只需在相应的命令后加上-uUSERNAME(如crontab-e-uUSERNAME)即可
10、。crontab文件的默认编辑器是vi。cron服务每分钟要读一次/var/spool/cron目录内的所有文件,还需要读一次/etc/crontab文件。配置这个文件也能让cron执行任务。Linux进程启动进程启动cron把命令行保存在crontab(crontable)文件里,这个文件通常在/etc目录下。每个系统用户都可以有自己的crontab(在/var/spool/cron/下)。要查看当前用户的crontab,输入crontab-l;要编辑crontab,输入crontab-e;要删除crontab,输入crontab-r。如当前是root身份,要查看/编辑/删除/某用户的cro
11、ntab,只需在相应的命令后加上-uUSERNAME(如crontab-e-uUSERNAME)即可。crontab文件的默认编辑器是vi。cron服务每分钟要读一次/var/spool/cron目录内的所有文件,还需要读一次/etc/crontab文件。配置这个文件也能让cron执行任务。Linux进程启动进程启动语法说明以下是两个cron语句的例子:30 21 * * * service httpd restart表示每晚的表示每晚的21:30重启重启apache。45 4 1,10,22 * * service httpd restart表示每月表示每月1、10、22日的日的4 : 45
12、重启重启apache。10 1 * * 6,0 service httpd restart上面的例子表示每周六、周日的上面的例子表示每周六、周日的1 : 10重启重启apache。Linux进程启动进程启动cron语句中的字段与字段说明:字段字段说明说明1分钟(分钟(0-59)2小时(小时(2-24)3日期(日期(1-31)4月份(月份(1-12;或英文缩写;或英文缩写Jan、Feb等等5周几(周几(0-6,0为周日;或单词缩写为周日;或单词缩写Sun、Mon等)等)6用户名(执行命令时以此用户的身份用户名(执行命令时以此用户的身份7要执行的命令(路径)要执行的命令(路径)Linux进程查看进
13、程查看who命令命令 用于查看当前在线的用户情况# who uH (以标题方式察看登录的用户)NAME:登录用户帐号 LINE:登录使用的终端TIME:登录时间 IDLE:显示用户空闲时间 (”.” 表示该用户前1秒仍是活动的)COMMENT:用户从什么地方登录的网络地址Linux进程查看进程查看w命令命令 不但可以显示有谁登录到系统,还可以显示这些用户正在进行的工作W命令的显示项目:命令的显示项目:当前时间、系统启动到现在当前时间、系统启动到现在的时间、登录用户的数目、系统最近的时间、登录用户的数目、系统最近1s,5s和和15s的平均负载的平均负载以及每个用户的各项数据:以及每个用户的各项数
14、据:登陆帐号、终端名称、登陆帐号、终端名称、远程主机名、登录时间、空闲时间、远程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行的进程命令行、当前正在运行的进程命令行Linux进程查看进程查看JCPU:与该终端连接的所有进程占用的时:与该终端连接的所有进程占用的时间,其中不包括过去的后台作业时间,但包间,其中不包括过去的后台作业时间,但包括当前正在运行的后台作业所占用的时间括当前正在运行的后台作业所占用的时间PCPU:当前进程(:当前进程(what项中显示的进程)项中显示的进程)所占用的时间所占用的时间Linux进程查看进程查看ps命令命令 最基本,同时也是非常强大的进程查看命令,
15、该命令可确定有哪些进程正在运行以及运行的状态,进程是否结束,进程有没有僵死,哪些进程占用了过多的资源ps命令最常用于监控后台进程的工作情况,后台进程是不和屏幕,键盘这些标准输入/输出设备通信的,需检测其情况时,可使用ps# ps 显示4项:PID(进程ID)、TTY(终端名)、TIME(进程执行时间)、COMMAND(进程命令行输入)Linux进程查看进程查看ps命令只能显示所有控制终端的进程,对于没有控制终端的进程需使用x选项来查看#ps x使用a选项可查看当前所有用户的所有进程,使用aux组合选项,可显示最详细的进程情况#ps auxLinux进程查看进程查看top命令命令 是一个动态显示
16、进程的过程,可通过用户按键不断刷新当前状态监视(默认5s更新一次)显示项目:显示项目: uptime:显示系统启动时间,已经运行的时间和3个平均负载值 processes:自最近一次刷新以来的运行 CPU status:显示用户模式,系统模式,优先级进程和闲置等各种情况所占用CPU时间的百分比 Mem:内存使用情况统计 swap:交换空间统计 PRI:每个进程的优先级Linux进程查看进程查看top命令命令 是一个动态显示进程的过程,可通过用户按键不断刷新当前状态监视(默认5s更新一次)显示项目:显示项目: uptime:显示系统启动时间,已经运行的时间和3个平均负载值 processes:自
17、最近一次刷新以来的运行 CPU status:显示用户模式,系统模式,优先级进程和闲置等各种情况所占用CPU时间的百分比 Mem:内存使用情况统计 swap:交换空间统计 PRI:每个进程的优先级 NI:该进程的优先级值 LIB:使用的库页的大小Linux进程查看进程查看 SIZE:进程的代码大小+数据大小+堆栈空间大小(单位KB) RSS:该进程占用的物理内存总数量(单位KB) SHARE:该进程使用共享内存数量 STAT:该进程的状态:S:休眠状态;D:不可中断的休眠状态;R:运行状态;Z:僵死状态;T:停止或跟踪状态 TIME:该进程自启动以来所占用的总CPU时间 %CPU:该进程最近一次刷新以来所占用的CPU时间相对总时间的百分比 %MEM:该进程占用物理内存相对总内存的百分比 Linux进程结束进程结束kill命令# kill 4840对于僵尸进程,可用# kill -9 强制终止退出killall命令通过程序名,直接杀死所有进程