程序与资源管理.pptx
《程序与资源管理.pptx》由会员分享,可在线阅读,更多相关《程序与资源管理.pptx(50页珍藏版)》请在冰豆网上搜索。
什什么么是是进进程程?
作作业业管管理理:
&、Ctrl-z、jobs、fg、bg、kill进进程程管管理理进进程程的的执执行行顺顺序序特特殊殊文文件件与与进进程程程序与资源管理1本章教学目标:
本章教学目标:
掌握进程管理的命令使用熟悉进程的启动方式了解进程定义、分类2难点:
Linux进程管理重点:
掌握如何使用进程管理命令及任务自动化操作。
关键词:
进程31什么是进程?
1.1.1、进程的定义l在linux系统中:
“触发任何一个事件,系统都会将它定义为一个进程,并且给这个进程一个ID,称为PID,同时根据启动这个进程的用户与相关属性关系,给这个PID一组有效的权限设置”,从此以后,这个PID能在系统上进行的动作就和PID的权限有关了。
l即每个程序模块和它执行时所处理的数据组成了进程。
41.1.2、进程和程序的区别进程是动态的,而程序是静态的进程是有生命的,而程序是永久的一个程序可以包含若干个进程一个进程可以包含若干个程序(例:
调用别的程序)51.1.3、进程的基本状态及其转换
(1)进程的基本状态运行态(running):
在CPU上运行就绪态(ready):
获得了CPU外的一切资源,可以随时被CPU调用阻塞态(blocked):
也叫等待态,正在等待某一事件的发生6
(2)进程间的转换71.1.4、进程的类型交互进程:
由shell启动,可以工作在前/后台批处理进程:
不需要与终端相关,提交在等待队列的作业守护进程:
shell/linux系统自动启动,工作在后台,用于监视特定服务81.1.5、进程启动方法、进程启动方法进程的启动是由于执行一个程序而启动的,在Linux系统中启动进程的方式有两种:
()手工启动前台:
直接输入linux命令并按Enter(ls)后台:
输入linux命令后加&(如:
ls&)()调度启动系统在指定时间运行指定的程序91-2linux的多用户、多任务环境的多用户、多任务环境linux系统中执行命令时,系统会给该操作一个ID(PID)。
根据启用这个命令的用户与相关的命令功能,给这个特定PID一组权限,该命令可以进行的行为与这个PID的权限有关。
根据这一点,我们可以简单了解,为什么linux这么多的用户,但每个人都可以拥有自己的环境。
101.2.1多人环境linux允许不同的人使用,而且每个人都有特殊的权限,只有一个人具有至高无上的权力,即系统管理员,除他之外,其他人都必须受一些限制。
每个人进入linux的环境设置,都可以随个人的喜好来设置。
因为每个人登录后获取的shell的PID不同。
111.2.2多任务行为linux允许在不同画面,不同的人同时使用“同一个文件”,不论是打开还是修改,只要您有权限,就可以使用该文件。
121.2.3多登录环境的7个基本终端窗口linux默认提供了6个命令行界面登录窗口。
以及一个图形界面,可以使用Alt+F1F7键来切换不同的终端界面,而且每个终端界面的登录者还可以是不同的人。
在某个程序死掉的时候,这个非常有用。
131.2.4特殊的程序管理行为linux可以在任何时候,删掉经被困住的程序,然后重新执行该程序而不用重新开机。
141.2.5bash环境下的作业管理(jobcontrol)linux系统登录bash之后,就获得一个名为bash的PID,在这个环境下执行的其他命令,就是子程序。
在单一的bash接口下,可以执行多个工作。
152作业管理当我们登录系统获取bashshell之后,在单一终端界面下,同时管理多个作业。
162.1直接将命令放到后台“执行”的&2.2将“当前”作业放到后台“暂停”:
Ctrl-z2.3观察当前后台作业状态:
jobs2.4将后台作业拿到前台处理:
fg2.5让作业在后台运行:
bg2.6管理后台作业:
kill173进程管理进程的触发、子进程与父进程的关联性以及“进程的依赖性”与“僵尸进程”等管理183.1进程的观察3.1.1、ps功能:
静态显示系统进程信息格式:
ps参数参数:
-A/所有进程均显示出来;与-e具有同样的作用-a/与终端无关的所有进程-u/显示用户名和启动时间,有效用户的相关进程。
-x/显示没有终端的进程,通常与a参数一起使用。
-e/显示所有进程(不显示进程状态)19实例:
#ps/显示当前用户进程#psaux/显示所有进程信息20#psauxUSERPID%cpu%memvszrssttystatstarttimecommandroot10.0.31096476?
s18:
200:
04init.说明:
以上输出的信息包括USER进程的启动用户PID进程号(进程的唯一标识)CPU占CPU的百分比MEM占用内存百分比VSZ占用的虚拟内存大小RSS占用的物理内存大小TTY进程的工作终端(?
表示没有终端)STAT进程的状态:
R:
正在执行中S:
静止状态T:
暂停执行Time占用的cpu的时间Command运行的程序213.1.2、top功能:
动态显示系统进程信息格式:
top实例:
#top(默认每秒钟刷新一次)top的操作命令:
help/获取top的帮助kPID/终止指定的进程q/退出topd/后面可以接秒数,就是整个进程画面更新的秒数。
默认是5秒。
p/指定某些个PID来进行观察检测。
223.1.3、pstree功能:
以树状图显示进程间的关系格式:
pstree参数:
-A/各进程树之间以ASCII字符来连接。
-p/同时列出每个进程的PID-u/同时列出每个进程所属账号名称。
233.2进程的删除3.2.1Kill功能:
终止进程格式:
kill-9PID实例:
#kill-93#kill-9358/一次杀死3,5,8多个进程243.2.2Killall功能:
终止指定程序名的所有进程格式:
killall-9程序名实例:
#killall-9vsftpd/杀死所有对应vsftpd程序的进程253.3系统资源的观察3.3.1free参数:
-b:
直接输入free时,显示的单位是KB,我们可以使用b(bytes),m(Mbytes),k(Kbytes)及g(Gbytes)来显示单位。
-t:
在输出的最终结果中显示物理内存与swap的总量263.3.2uname参数:
-a:
所有系统相关的信息-s:
系统核心名称-r:
核心的版本-m:
本系统的硬件名称-p:
CPU的类型-i:
硬件的平台273.3.3uptime这个命令很单纯。
就是显示当前系统以开机时间,以及1、5、15、分钟的平均负载。
这个uptime可以显示出top画面的最上面一行。
283.3.4netstat常用在网络的监控方面。
参数:
-a:
将当前系统上所有的联机、监听、套接字数据都列出来-t:
列出tcp网络包的数据-u:
列出udp网络包的数据-n:
不以进程的服务名称,以端口号(portnumber)来显示。
-l:
列出当前正在网络监听(listen)的服务-p:
列出该网络服务的进程PID293.3.5dmesg在开机的时候,会发现有好多核心在进行硬件的测试与驱动的信息。
要看清楚这些信息,您可以使用dmesg命令。
303.3.6sar可检测主机的资源状态,然后绘制为图标。
参数:
-r:
进行主存储器当前状态的分析-u:
进行CPU资源统计315、作业的前后台操作()jobs功能:
查看后台作业格式:
jobs实例:
#jobs324进程的执行顺序Linux系统可以“同时执行多个作业”。
每个作业都会进入到CPU的任务分配中,等待CPU来执行,而CPU会根据每个作业的优先级(priority)来判断谁比较重要,所以有的作业就会优先进行。
我们可以使用ps来观察优先级。
3334PRI就是Priority的简写,NI是nice的简写,所以,他们凑在一起,才能产生当前的PRI值。
PRI越小,表示该进程“优先级越高”,PRI是由系统动态产生的,不是一直固定的值。
NI则是我们额外提供的一个数值,它可以影响PRI的值。
它的关联性是这样的:
354.1PRI(new)=PRI(old)+nice一般用户的nice值为019;管理员可用的nice值为-2019;一般用户仅可将nice值越调越高,如果本来nice为5,则只能调整到大于5的nice。
一般用户仅能调整自己的进程nice364.2nice开始执行进程就立即提供一个特定的nice值:
用nice命令参数-n:
后面接一个数值,数值的范围是-2019。
374.3renice调整某个已经存在的PID的nice值:
用renice参数:
PID:
某个进程的ID。
renicenumberPID385特殊文件与进程关于SUID执行SetUID的权限设置值,仅对二进制文件有效进程操作者执行该具有SUID的二进制文件,该二进制文件所触发的进程中,进程的有效用户(effectiveuser)为该二进制文件的拥有者。
用find查询SUID/SGID的文件395.1/proc/*的意义1.有些进程在内存中,而内存中的数据又都写入到/proc/*目录,所以,我们可以直接观察/proc目录中的文件。
2.用cat命令观察405.2查询已打开的文件或已执行进程打开的文件进程相关的命令1.Fuser如果要卸载某台设备时,它总是告诉我们“deviceisbusy”,到底哪个进程在使用这台设备呢?
此时我们可以使用fuser来帮忙。
eilieeneilieen-VirtualBox:
/桌面$fuser-ki-signalfile/dir-k:
找出使用该文件/目录的ID,并试图将SIGKILL信号给PID。
-i:
必须与-k配合,在删除PID前会要求用户确认。
-signal:
如-l-15等若不添加,默认是SIGKILL(-9)。
412.lsof如何查出某个进程打开或使用的文件与设备?
使用fuser来帮忙。
eilieeneilieen-VirtualBox:
/桌面$lsof-Uu+d-a:
需要多项数据“同时成立”才显示出结果的情况-U:
仅列出类unix系统的套接字文件类型-u:
后面接用户名,列出该用户相关进程所打开的文件+d:
后面接目录,即找出某个目录下已经打开的文件423.pidofeilieeneilieen-VirtualBox:
/桌面$pidof-sxprogam_name参数:
-s:
仅列出一个PID而不列出所有的PID-x:
同时列出該程序名(programname)可能的PPID进程PID-43
(1)建立crontab文件#vi/root/root.cron格式:
分时日月星期要运行的程序实例:
01211*/sbin/shutdownrnow说明:
数字表示具体时间;*表示任何时间;0-23/2表示每隔2小时,即:
0:
25,2:
25,4:
25;1,3,5:
表示多种用“,”隔开。
44
(2)运行crontab命令功能:
生成用户的cron文件格式:
crontab参数文件名参数:
-u用户名/指定具体用户的cron文件-r/删除用户的crontab文件-l/显示用户的cron文件-e/编辑用户的crontab文件45实例:
#crontab/root/root.cron/建立当前标准格式用户crontab文件#crontabr/删除当前用户的cron文件46配置案例:
要求:
root用户在每周2,4,6早上3点启重系统配置过程:
#vi/root.cron(以root用户登录)03*2,4,6/sbin/shutdown-rnow#crontab/root.cron47crontab命令提交的调度任务存放在/var/spool/cron目录中,并且以提交的用户名称命名,等待crond进程来调度执行。
48注意:
(1)/etc/at.deny和/etc/at.allow文件用