Linux进程和计划任务

进程

内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等特权操作
模式切换(理想状态):70%CPU时间用户模式+30%CPU时间内核模式
进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的存在生命周期的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体,运行中的程序的一个副本;被载入到内存的一个指令集合
进程ID:PID号码被用来标记各个进程
UID、GID、和SELinux语境决定对文件系统的存取和访问权限,通常从执行进程的用户来继承
Linux内核存储进程信息的固定数据结构格式:task struct
多个任务的task struck组件的链表:task list

进程优先级:

系统优先级: 数字越小,优先级越高
0-139( CentOS4,5)
各有140个运行队列和过期队列
0-98, 99( CentOS6)
实时优先级: 99-0:值最大优先级最高
静态优先级:100-139
nice值: -20到19,对应系统优先级100-139或99


Big O:时间复杂度,用时和规模的关系
O(1):规模变化但是,耗费时间恒定
O(logn):
O(n)线性:
O(n^2)抛物线:
O(2^n):耗费时间随着规模变大急剧变大

 

 

程序是一个静态的概念,最为软件资源长期存在于硬盘中。
进程是一个动态的概念,是程序的执行过程。
程序与进程没有一一对应的关系。
进程与程序也没有一一对应关系。

 

 

父子进程关系:
系统使用fork创建进程,子进程由父进程产生。
父进程终止,子进程自然终止。
如果父进程终止,子进程归属于root(1)进程所有。

 

 

前台进程:
命令与shell异步运行,即前台运行,用户在其完成前不能执行另一命令。
~~~~~~~~~~~~~~~~~~~~~
后台进程:
命令与shell同步运行,后台进程必须是非交互式的。

 

 

进程的三种状态:就绪状态,运行状态,阻塞状态。
 
 
进程状态的细化分类:
用户态运行:在CPU上执行用户代码。
核心态运行:在CPU上执行核心代码。
在内存就绪:具备运行条件,等待调度程序为它分配CPU。
在内存睡眠:因等待某事件发生,而在内存中排队等待。
在外存就绪:就绪进程被交换到外存上继续处于就绪态。
在外存睡眠:就绪进程被交换到外存上继续等待。
在内存暂停:因调用stop程序而进入跟踪暂停状态,等待其父进程发送命令。
在外存暂停:处于跟踪暂停态的进程被交换到外存上。
创建态:新进程正在被创建,但尚未完成的中间态。
终止态:进程终止自己。

 

 

w
查看当前登陆的用户状态。
显示项JCPU
显示该终端所有相关进程执行消耗的CPU时间。
PCPU
CPU执行程序消耗的时间。
WHAT
用户正在执行的操作。
load average
显示当前系统平均负载程度。显示过去1、5、15分钟的平均值
FROM
显示用户从何处登陆。:0表示从Xwindow登陆。
IDLE
用户闲置时间。
 
 
 
ps
进程管理命令
-a
显示所有用户进程
-u
显示用户名和启动时间
-x
显示没有控制终端的进程
-l
长格式显示,即显示详细信息
-w
宽行显示,可以使用多个w进行加宽显示
-e
显示所有进程,包括没有控制终端的进程
pstree
查看系统中进程信息,以树状显示。

 

 

 
显示选项的含义
 
PID
进程号
PPID
父进程进程号
TTY
进程启动的终端
STAT
进程当前状态
             S
休眠状态
             D   
不可中断的休眠状态
             R
运行状态
             Z
僵死状态
             T
停止状态
NI
进程优先级
TIME
进程自启动以来占用CPU的总时间
COMMAND/CMD
进程的命令名
USER
用户名
%CPU
占用CPU时间和总时间的百分比
%MEM
占用内存与系统内存总量的百分比。
 
 
 
ps -le or -aux 查看所有用户执行的进程的详细信息 
ps -aux --sort pid 可以按进程执行的时间、PID、UID等对进程进行排序。 
ps -uU 用户名 查看系统中指定用户执行的进程
ps -le|grep init 查看指定进程的信息。
 
 
 
kill
杀死进程。
kill PID
关闭进程,关闭父进程可以直接导致其子进程关闭
kill -9 PID
强制关闭
kill -1 PID
重启进程
xkill
关闭图形进程
killall
关闭进程同名的进程
pgrep 服务名
查找服务进程号
pkill 进程名
关闭进程

 

 

 
nice
指定程序的运行优先级
nice -n 程序名(PID)
renice 
改变一个正在运行的程序的优先级
renice -n 程序名(PID)
 
优先级的范围为(-20,19)
优先级的缺省为0

no hup program &
当用户退出时继续执行
 
CTRL+Z
进程挂起
CTRL+C
终止进程
fg
恢复到前台继续执行
bg
恢复到后台继续执行
jobs
查看被挂起的进程
 
top
相当于进程管理器,会动态刷新
 
下面指令是在top运行后键入的
d
指定刷新间隔,默认是3秒钟更新
c
显示整个命令行而不是仅仅显示命令名
u
查看指定用户的进程
k
终止执行中的进程
h or ?
获得帮助
r
重新设置进程优先级
s
改变刷新时间间隔
W
将当前设置写入~/.toprc文件中
 
 
计划任务命令
at
安排作业在某一时刻执行一次
batch
安排作业在系统负载不重时执行一次
cron
安排周期性运行的作业
 
  
 
at [-f 文件名] 时间
 
at -d or atrm
删除队列中的任务
at -l or atq
查看队列中的任务

at的时间表示法
绝对计时方法:
midnight noon teatime
hh:mm[today]
hh:mm tomorrow
hh:mm week
hh:mm MM/DD/YY
相对计时方法:
now +n minutes
now +n hours
now +n days
 
 
crontab
命令格式
crontab{-l|-r|-e}
 
-l
显示当前的crontab
-r
删除当前的crontab
-e
使用编辑器编辑当前的crontab文件
 
 
crontab -e
分钟     小时     天      月      星期     命令/脚本
Minute  一天中的哪一分钟【0~59】
hour      一天中的哪个小时【0~23】
day-of-month  一月中的哪一天【1~31】
month-of-year   一年中的哪个月【1~12】
day-of-week      一周中的哪一天【0~6】
以每天凌晨4点的计划任务举例
0     4    *   *    *      命令,不知道不清楚用*表示
逗号用来分隔不连续的值,-用来连接连续的值
*/2每隔两分钟,命令建议使用绝对路径
使用which 命令名查看命令的绝对路径
 
 

计划任务的时间值无法设置精确到秒。

posted @ 2017-09-14 10:03  绮梦小煊  阅读(212)  评论(0编辑  收藏  举报