一、引入进程

1、内存划分为:用户空间和内核空间

  1、在用户空间里运行的进程,就是用户进程,所属的状态为用户态

  2、在内核空间里运行的进程,就是系统进程,所属的状态为内核态

    例:执行内核里的代码的时候,就是属于内核态。

Linux的kernel其实就是一个软件,比较核心而已。

内核作用:

  1.对cpu进行调度管理

  2.对内存进行管理

  3.对进程进行管理

  4.对文件系统进行管理

  5.对其他的硬件管理

2、内核空间的进程可以访问用户空间,但是用户空间的进程不能访问内核空间。

二、进程

  process是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源(内存、CPU)分配和调度的一个独立单位。

1、进程控制块(PCB)

  是系统感知进程存在的唯一凭证,是数据结构,占用内存空间。

2、进程上下文

  1、上文:已执行过的进程指令和数据在相关寄存器和堆栈中的内容称为上文。

  2、正文:正在执行的指令和数据在相关寄存器和堆栈中的内容。

  3、下文:待执行的指令和数据在相关寄存器和堆栈中的内容。

进程上下文切换:

  指多任务系统中,CPU的控制权由运行任务,转移到另外一个就绪任务时所发生的事件;当前运行任务转为就绪(或者挂起、删除)状态,另一个被选定的就绪任务成为当前任务。

3、线程

  thread只能归属于一个进程并且它只能访问该进程所拥有的资源。当操作系统创建一个进程后,该进程会自动申请一个名为主线程或首要线程的线程。

简而言之:

  1、一个程序至少有一个进程,一个进程至少有一个线程;

  2、线程的划分尺度小于进程,使得多线程程序的并发性高;

  3、进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

shell> echo $PPID    //查看父进程ID

shell> echo $$    //查看当前进程ID

三、ps命令

  用于查看os进程信息。

1、ps命令查看这些数据

  1、描述信息:pid 进程名 父子shell的家族关系等

  2、控制信息:进程当前状态、进程优先级等

  3、资源管理信息:占多少内存,打开了多少个文件等

  4、cpu现场保护结构

注意:ps命令查看静态的进程统计信息。

2、常见ps命令

shell> ps aux 或 ps -elf

a:显示当前终端启动的进程

u:显示用户为主的进程信息

x:显示所有进程信息

-e:显示系统内的所有进程信息

-l:使用长格式显示进程信息

-f:使用完整的格式显示进程信息

[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

解析:

  PID   进程的ID;

  %CPU  进程占用的CPU百分比;

  %MEM  占用内存的百分比;

  COMMAND 命令的名称和参数

[root@localhost ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD

解析:

  R 正在运行,在可中断队列中(就绪状态);

  S 处于休眠状态,静止状态;

  Z 僵尸进程不存在但暂时无法消除;

四、top命令

  查看动态的进程排名信息。

1、命令行直接top命令

[root@localhost ~]# top

等待输入……

  h获得帮助

  1:显示各CPU情况

  P:按%CPU排序

  M:按%MEM排序

  空格:马上刷新(默认3秒)

  q:退出(默认的top会一直占用当前端口)

解析:load average: 0.06, 0.60, 0.48

  表示系统负载,即任务队列的平均长度。

  三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。(w和uptime也可以查看top的顶头信息)

2、top命令常接选项

[root@localhost ~]# top -d 1 -n 5 -p 1

-d 1    指定刷新间隔时间为1秒

-n 5    刷新次数

-p 1    显示指定PID为1的进程信息,如果要指定多个PID,用逗号分开

五、其他查看进程的命令

1、pstree命令:以树型结构显示各进程间的关系

shell> pstree

init─┬─abrtd
├─acpid
├─atd
├─auditd───{auditd}
├─automount───*[{automount}]
├─certmonger
├─console-kit-dae───*[{console-kit-da}]
├─crond
├─cupsd
├─dbus-daemon
├─hald─┬─hald-runner─┬─hald-addon-acpi
│ │ └─hald-addon-inpu
│ └─{hald}
├─irqbalance
├─login───bash
├─mcelog
├─*[mingetty]
├─mysqld_safe───mysqld───*[{mysqld}]
├─rpc.statd
├─rpcbind
├─rsyslogd───*[{rsyslogd}]
├─*[sendmail]
├─sshd─┬─sshd───bash───pstree
│ └─sshd───bash───mysql
├─udevd───*[udevd]
├─vsftpd
├─xinetd
└─zabbix_agentd───*[zabbix_agentd]

常接命令选项-p:列出进程的PID号

注意:使用{}的是进程的线程。

2、pgrep命令:根据特定条件查询进程PID信息

[root@localhost ~]# pgrep init

[root@localhost ~]# pgrep -l init
init
[root@localhost ~]# pgrep -l -u root -t pts/
bash

-l:列出进程的名称

-u:根据进程所属的用户名进行查找

-t:根据进程所在的终端进行查找

……比较少用,特殊情况下会用用。

六、进程的优先级

  Linux内核的基本任务是调度进程,每个进程受两个参数影响其调度。

1、优先级(priority):内核控制动态变化

  值越小越早被cpu执行,用户无法直接调整数值大小。

2、niceness:进程可被执行的优先级的修正数值(可以人工修改)

、用nice命令开新的nice(新开启的进程),以新的nice来启动命令
nice - vi &  //设置nice值为10
nice -- vi &  //设置nice值为-10 、用renice命令设置新nice(已经存在的进程)
renice   //设置nice值为10
renice -   //设置nice值为-10 、用top命令修改进程的优先级
  先输入r,然后输入pid,最后输入优先级

七、作业控制机制

  前台启动:用户输入命令,直接执行程序

  后台启动:在命令行尾加入“&”符号,让进程切入后台执行

  bg命令:将后台停止的进程,在后台重新运行

[root@localhost lianxi]# jobs  //查看后台作业信息
[]+ Stopped vim num.txt
[]- Killed cp -i -r /mnt/* /tmp + :最新放到后台的进程
- :仅次于最新放到后台的进程

[root@localhost lianxi]# fg  //将后台的进程调到前台
  fg将处于后台的进程恢复到前台运行,需指定作业号,不指定作业号,将恢复有“+”标记的进程。

八、kill命令

  kill命令的实现是基于OS的“信号机制”。信号机制除了基本通知功能外,还可以传递附加信息。详解参考:http://www.cnblogs.com/geaozhang/p/6874310.html

shell> kill –l  #列出linux系统支持的信号种类

格式:

  kill –信号代码 PID

原理:kill命令用来发送信号(软中断信号),进程收到信号后采取的行动:终止、忽略、挂起

1、kill和killall的区别:

  kill    后面写进程ID,不能写进程名

  killall 后面写进程名,不能写进程ID,会将相同名字的进程一起杀死

2、pkill命令:根据“特定条件”终止相应的进程

  -u:根据进程所属的用户名终止相应进程

  -t:根据进程所在的终端终止相应进程

shell> pkill mysqld  #强行终止mysqld服务进程

Linux进程作业的查看和杀死的更多相关文章

  1. 详解Linux进程(作业)的查看和杀死

    目录: 引入进程 进程 线程 PS命令 TOP命令 其他查看进程命令 进程的优先级 作业控制机制 kill命令 一.引入进程 1.内存划分为:用户空间和内核空间 1.在用户空间里运行的进程,就是用户进 ...

  2. Linux进程(作业)的查看和杀死 牛

    http://www.cnblogs.com/geaozhang/p/6910151.html

  3. Linux下tomcat管理查看控制台|杀死tomcat进程

    查看控制台 # tail -f catalina.out 脚本执行权限chmod u+x *.sh #看是否已经有tomcat在运行了 ps -ef |grep tomcat #如果有,用kill; ...

  4. linux进程,作业,守护进程,进程间同步

    ps axj命令查看系统中的进程.参数a表示不仅列当前用户的进程,也列出所有其他用户的进程,参数x表示不仅列有控制终端的进程,也列出所有无控制终端的进程,参数j表示列出与作业控制相关的信息: 凡是TP ...

  5. Linux进程作业常用命令

    从鸟哥的私房菜书里摘抄的部分,方便查阅 一.作业管理     1.直接将命令放到后台执行的&         如想将/etc 备份为/tmp/ect.tar.gz时不想等待,可以这样做:    ...

  6. linux进程与端口查看命令

    查看程序对应进程号:ps –ef|grep 进程名 查看进程号所占用的端口号:netstat –nltp|grep 进程号 使用lsof命令: lsof –i:端口号

  7. Linux - 进程与内存查看

    top NI表示进程的优先级. -20的优先级,非常的高. top -p xxx 可以查看具体的进程情况. renice -n -6 进程ID 可以改变一个正在运行的pid的优先级. [root@lo ...

  8. Linux - 进程查看与管理

    标签(空格分隔): Linux 进程的静态查看 查看系统所有进程 ps -ef -- 输出来好乱,看不懂..: ps aux -- a表示所有与终端相关的进程,u表示所有以用户组织的进程状态的信息,x ...

  9. linux -- 进程的查看、进程id的获取、进程的杀死

    进程查看 ps ax : 显示当前系统进程的列表 ps aux : 显示当前系统进程详细列表以及进程用户 ps ax|less : 如果输出过长,可能添加管道命令 less查看具体进程, 如:ps a ...

随机推荐

  1. Oracle 语句中“||”代表什么啊?

    Oracle 语句中“||”代表什么啊? Oracle 语句中“||”代表什么啊?跟ServerSQL中的字符串的连接符“+”是一个概念么? 1. 恩是的 是一个含义...select '1'||'2 ...

  2. AngularJS Notes

    ng-app The ng-app directive tells AngularJS that the <div> element is the "owner" of ...

  3. node学习笔记3——文件操作fs

    文件操作关键字: http('fs') ——  请求 node 里面的 http 模块 readFile ——  读文件,参数包括 文件名,回调函数 writeFile ——  写文件,参数包括 文件 ...

  4. 【协议学习】SIP基本场景分析

    1.SIP业务基本知识 1.1 业务介绍 会话初始协议(Session Initiation Protocol)是一种信令协议,用于初始.管理和终止网络中的语音和视频会话,具体地说就是用来生成.修改和 ...

  5. Axiom3D:数据绑定基本流程

    在前面我们学习OpenGL时,不管绘制如球,立方体,平面,地面,动画模型中最常用的几个操作有创建缓冲区,写入缓冲区.在Axiom中,相关的操作被整合与组织到VertexData,IndexData中, ...

  6. 第三百四十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy模拟登陆和知乎倒立文字验证码识别

    第三百四十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy模拟登陆和知乎倒立文字验证码识别 第一步.首先下载,大神者也的倒立文字验证码识别程序 下载地址:https://gith ...

  7. e587. Filling Basic Shapes

    There are two ways to fill basic shapes like lines and rectangles. The first is to use specific draw ...

  8. swing包含了各种组件的类

    javax.swing 最常用的pachage,包含了各种swing组件的类 javax.swing.border 包含与swing组件外框有关的类 javax..swing.colorchooser ...

  9. POI设置Word页边距

    参考资料:http://stackoverflow.com/questions/17787176/spacing-and-margin-settings-in-word-document-using- ...

  10. PyQt的图片资源的路径问题。

    百度到的PyQt的添加资源大部分都是通过Qt Creater添加资源的,适用于拖拽形成的界面. 问题一:纯粹手写的界面,添加资源呢? 文件夹路径: |----img |--aa.jpg |----vi ...