Linux进程管理与计划任务

进程相关概念

内核的功能

进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等。

process

进程,正在运行中的程序的一个副本,是被加载到内存中的指令集和。
- PID:进程ID,标记进程。
- init: linux中有一个总进程init,这个是第一个进程,其他进程都由这个总进程创建。

进程优先级

  • 系统优先级(0–139):数字越小,优先级越高。
  • 实时优先级(99–0):值越大,优先级越高。静态优先级
  • nice(-20–19):对应系统的100–139 。动态优先级
  • Big :时间复杂度,用户和规模的关系。
  • LRU算法:淘汰不用时间最长的数据。

    进程的执行需要环境,我们称之为上下文(context),也就是包含一些进程的属性(进程的执行者,PID,selinux机制,组身份)linux内核的进程工作方式是:抢占式多任务(也就是分时操作系统)。

进程类型

  • 守护进程:daemon,在系统引导过程中启动的进程,和终端无关进程。系统启动后自动加载到内存中在后台运行,也就是后台进程。
  • 前台进程:跟终端相关,通过终端启动的进程。关闭终端就会中断。

进程状态

 运行态 running
 就绪态 ready
 睡眠态:可中断 interruptable
        不可中断 UNinterruptable
 停止态:stopped 暂停于内存,但不会被调度,除非手动启动
 僵死态:zombie  结束进程,父进程结束前,子进程不关闭,这种进程已经处于死状态,没法再次杀死,只能进行重启系统才可以释放内存。

系统管理工具

进程的分类

  • CPU-bound :CPU密集型,主要使用CPU进行计算或逻辑判断的进程
  • I/O-bound :IO密集型,主要使用内存和硬盘进行读写的进程。

Linux系统状态的查看及管理工具

pstree  ps  pidof  pgrep  top  htop  glance pmap  vmstat  dstat  kill  pkill job  bg  fg  nohup 

pstree

将进程以树状结构显示,子进程为叶子节点,其中用{ } 括起来的是线程。线程依附于进程,不能独立存在,进程是独立内存空间的,线程是可以共享内存空间的,线程属于轻量级的。

pstree.png

知识小扩展: 可以将httpd服务的进程改为线程,一般httpd服务是新建一个进程为用户提供服务,我们可以将其使用线程来为用户提供服务,这样就可以节省内存资源。可以修改如下文件:vim /etc/sysconfig/httpd
将配置文件中的#HTTPD=/usr/sbin/httpd.worker 前的#去掉,使该配置生效,重启服务就可以了:service httpd restart

ps

报告当前进程的快照(所谓的快照也就是当前瞬间的状态)
这里写图片描述

Linux中各个进程的相关信息都保存在/proc/目录下,对应各个进程PID的文件夹,里面有进程的所有详细信息。

  • 支持三种选项:
    • UNIX选项 如-A -e 加-的选项风格
    • BSD选项 如a 不加-的选项风格
    • GNU选项 如–help –这种长格式风格
    ps使用不同风格的选项显示结果是不同的,拿ps -a 这个例子来说,
     * ps a  BSD风格,显示比较详细
     * ps -a UNIX风格,显示不详细。这个是一个小小的区别。

选项:默认显示当前终端中的进程

• a 选项包括所有终端中的进程
• x 选项包括不链接终端的进程,也就是包括后台(守护)进程
• u 选项显示进程所有者的信息
• f 选项显示进程的父进程,同时显示父进程的PPID
• k|–sort 属性 对属性排序
• o 属性… 选项显示定制的信息 ,后可接以下的参数,指定显示特定的信息,该选项必须放在所有选项的最后,紧跟参数。
pid、comm、%cpu、%mem、state、VSZ、RSZ、tty、euser、ruser

对于带有suid权限的二进制命令来说,该二进制文件属于A,当另一个B用户执行该二进制文件的时候,这个命令的生效者是A,而命令的发起者是B
  • 参数的解释:
    • VSZ: Virtual memory SiZe,虚拟内存集,线性内存
    • RSS: ReSident Size, 常驻内存集
    • ni: nice值
    • pri: priority 优先级
    • psr: processor CPU编号
    • rtprio: 实时优先级
    • STAT:进程状态
      • R:running
      • S: interruptable sleeping
      • D: uninterruptable sleeping
      • T: stopped
      • Z: zombie
      • +: 前台进程
      • l: 多线程进程
      • L:内存分页并带锁
      • N:低优先级进程
      • <: 高优先级进程
      • s: session leader,会话(子进程)发起者

常用组合

aux
auo
-ef

> ps -C commod    可显示某一命令的进程信息,-C 就是指command
  • 进程优先级
    • 进程优先级调整:
      • 静态优先级:100—139
        进程默认启动时的nice 值是0,优先级为120
        只有root用户才能降低nice值(提高优先级)

        nice 命令

        nice -n -10 命令 :指定命令执行的优先级


renice 命令:
renice 10 pid 调整正在运行的进程的优先级,重新设置进程优先级(-20—-19)
  • 查看进程优先级
    ps axo pid,commod,nice 其中axo中的o必须放后面

pgrep

pgrep 工具:专门支持进程搜索
pgrep [option]

-u uid: effective user,生效者
-U uid: real user,真正发起运行命令者
-t terminal: 与指定终端相关的进程,指定终端。
-l: 显示进程名
-a: 显示完整格式的进程名
-P pid: 显示指定进程的子进程
pgrep命令支持正则表达式:
pgrep -a “^vi.*”

![这里写图片描述](https://img-blog.csdn.net/20170910
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值