什么是进程?

进程表示程序的一次执行过程,它是应用程序的运行实例,是一个动态的过程。或者可以更简单地描述为:进程是操作系统当前运行的程序。当一个进程开始运行时,就要启动了这个过程。进程包括动态的执行的程序和数据两部分。现代操作系统支持多进程处理,这些进程可以接受操作系统的调度,所以说每一个进程都是操作系统进程资源调度和分配的一个独立的单位。

所有进程都可能存在三种状态:运行态,就绪态,阻塞态。

运行态表示程序当前实际占用着的CPU资源;

就绪态是指程序除CPU之外的一切运行资源都已经就绪,等待操作系统分配CPU资源,只要分配了CPU资源名,即可立即运行;

阻塞态是指程序在运行的过程中由于需要请求外部资源(例如I/O资源、打印机等低速的或同一时刻只能独享的资源)而当前无法继续执行,从而主动放弃当前CPU资源转而等待所请求的资源。

进程之间又存在互斥和同步的关系。互斥也就是说进程间不能同时运行,必须等待一个进程运行完毕,另一个进程才能运行,比如说不可能有两个进程同时使用同一步打印机打印文件。而进程同步指的是进程间通过某种通信机制实现信息交互。现代计算机使用的信号量机制来实现进程间的互斥和同步,它的基本原理是:两个或者多个进程可以通过简单的信号进行合作,一个进程可以被迫在某一位置停止,直到它接受到一个特定的信号。任何复杂的合作需求都可以通过适当的信号结构得到满足。

进程和程序的区别?

程序是一系列动作执行过程的描述,是指令的有序结合,是一个静态的概念;

进程是动态的,进程是程序以及数据在计算机上的一次执行,没有静态的程序也就没有动态的执行。

程序是可以以某种形式保存在存储介质上的,而进程只能在运行时存在于计算机的内存中。

以现实生活为例,如果说做一件事情需要经过很多既定的步骤,这些步骤可以被写成清单静态地列在纸上,那么它们就是广义上的”程序“,而只有真正开始将计划的步骤付诸实施的过程才是”进程“。

ps是一款非常强大的进程查看工具。

该命令语法如下:

ps 参数

-A 列出所有的进程和-e是一样的效果

-a 列出不和本终端有关的所有进程

-w显示加宽可以显示较多的信息

-u 显示有效使用者相关的进程

-aux显示所有包含其他使用者的进程

使用aux参数的输出:

#USER:进程拥有者

#PID:pid

#%CPU:占用的CPU使用率

#%MEM:占用的内存使用率

#VSZ:占用的虚拟内存大小

#RSS:占用的内存大小

#TTY:运行的终端的号码

#STAT:进程状态:

#D:不可中断

 #R:运行中

 #S:休眠

#T:暂停

#Z:僵尸进程

#W:没有足够的内存可分配

#<:高优先级的行程

#N:低优先级的行程

#START:进程开始时间

#TIME:累计使用CPU的时间

#COMMAND:执行的命令

top - 19:10:55 up 2 days, 11:00,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  30 total,   1 running,  29 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    524288k total,   114120k used,   410168k free,        0k buffers
Swap:    65536k total,    65536k used,        0k free,    61584k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                               
22172 root      20   0  136m  364  236 S  0.3  0.1   2:22.08 redis-server                                                                           
    1 root      20   0 19208  376  264 S  0.0  0.1   0:01.61 init                                                                                   
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd/213                                                                           
    3 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper/213                                                                            
  113 root      16  -4 10644    4    0 S  0.0  0.0   0:00.00 udevd                                                                                  
  458 root      20   0  180m  676  432 S  0.0  0.1   0:13.05 rsyslogd                                                                               
  490 root      20   0 22080    4    0 S  0.0  0.0   0:00.00 xinetd                                                                                 
  497 root      20   0 64232    4    0 S  0.0  0.0   0:00.00 saslauthd                                                                              
  498 root      20   0 64232    4    0 S  0.0  0.0   0:00.00 saslauthd                                                                              
  530 root      20   0 80300  444  280 S  0.0  0.1   0:03.73 sendmail                                                                               
  553 smmsp     20   0 76028  392  260 S  0.0  0.1   0:00.03 sendmail                                                                               
  569 root      20   0  114m  324  244 S  0.0  0.1   0:00.51 crond                                                                                  
  576 root      20   0  4052    4    0 S  0.0  0.0   0:00.00 mingetty                                                                               
  577 root      20   0  4052    4    0 S  0.0  0.0   0:00.00 mingetty                                                                               
 4501 root      20   0 42420   12    0 S  0.0  0.0   0:00.00 nginx                                                                                  
 4502 nobody    20   0 42852  156   88 S  0.0  0.0   0:09.16 nginx

第一行是服务器的基本信息,包括命令刷新时间

第二行是当前系统进程概括

第三行是CPU信息

第四行物理内存的使用状态

第五行是虚拟机内存的使用状态

再往下的所有信息就是动态进程的信息。

PID:进程的ID  

USER:进程的所有者

PR:进程优先级

NI:nice值,负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存总量,单位为Kb,VIRT=SWAP+RES

RES:进程使用的未被换出的物理内存大小,单位为Kb,RES=CODE+DATA

SHR:共享内存大小,单位为Kb

%CPU:上次更新到现在的CPU时间占用百分比

%MEM:进程使用的物理内存百分比

TIME+:进程使用得到CPU时间总计,单位为1/100秒

COMMAND:进程的名称

杀死进程可以使用命令:kill 进程id 或 kill -9 进程id

(之所以-9是因为有些进程单单kill是杀不死的,使用-9表示强制)

查看指定进程可使用该命令: ps -ef|grep 进程名

例如:ps -ef | grep tomcat

killall 进程名 使用该命令可以防止看错或者输错PID而导致的麻烦

Linux系统学习之进程管理的更多相关文章

  1. linux 系统监控和进程管理

    1.命令top,查看cpu和内存使用,主要进程列表和占用资源. 2.内存使用命令foree -g 3.查询所有java进程:pgrep -l java     ------ps aux|grep .j ...

  2. linux内核学习之进程管理------task_struct结构体

    struct task_struct { volatile long state;    /* -1 unrunnable, 0 runnable, >0 stopped */ struct t ...

  3. Linux学习之进程管理(十九)

    Linux学习之进程管理 进程查看 查看系统中所有进程,使用BSD操作系统的格式 语法:ps aux 选项: a:显示所有前台进程 x:显示所有后台进程 u:显示这个进程是由哪个用户产生的 语法:ps ...

  4. Linux系统学习笔记:文件I/O

    Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...

  5. Linux 源码阅读 进程管理

    Linux 源码阅读 进程管理 版本:2.6.24 1.准备知识 1.1 Linux系统中,进程是最小的调度单位: 1.2 PCB数据结构:task_struct (Location:linux-2. ...

  6. linux 的服务与进程管理(二)

    2.linux 的服务与进程管理 [2.1]系统启动流程 简单的介绍下linux的系统启动流程,方便我们深入了解linux操作系统,对排除linux系统故障进行帮助.启动流程虽然简单但背后还有着更加复 ...

  7. Linux零起点之进程管理----c语言编程

    进程 (Process)是指操作系统中被加载到内存中的.正在运行的应用程序实例.进程是系统资源分配的基本单元,在其生命周期内会使用系统中的各种资源.进程主要由程序.数据以及进程控制快(PCB)3个部分 ...

  8. Linux 系统中僵尸进程

    Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.配图源 ...

  9. Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免?

    如题 Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免? 一个进程在调用exit命令结束自己的生命的时候,其实他并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结 ...

随机推荐

  1. [PHP] 算法-原址排序数组使奇数位于偶数前面的PHP实现

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 1.遍历数组,判断元素奇数偶数 ...

  2. 【mysql】service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误

    service MySQL start出错,mysql启动不了,解决mysql: unrecognized service错误的方法如下: [root@ctohome.com ~]# service ...

  3. minitab的鱼骨图的制作

    Minitab的操作路径为:主菜单Stat > Quality Tools > Cause-and-Effect 先分别选择列"Man.Machine.Material.Meth ...

  4. blfs(systemv版本)学习笔记-配置远程连接显示中文

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 远程连接的lfs系统需要具备以下环境便可在xshell或其他远程终端上面显示中文: 1.lfs主机设置中文编码(需要配置) 2. ...

  5. python之字典(dict)

    字典:一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 字典由键和对应值成对组成 {key:value,key1,value1}, 例如: dic = {'中国': '汉语 ...

  6. vue.js及项目实战[笔记]— 04 axios

    一. axios 1. 基本使用 axios.method('url',[,...data],options) .then(function(res){ }) .catch(function(err) ...

  7. Vagrant安装配置

    转载自:https://my.oschina.net/u/3424381/blog/888205 Vagrant安装配置 实际上Vagrant只是一个让你可以方便设置你想要的虚拟机的便携式工具,它底层 ...

  8. 华为交换机MSTP+VRRP配置实例说明文档

    华为交换机MSTP+VRRP配置实例说明文档 拓扑图 IP地址规划表 设备名称 设备接口 对端设备 对端接口 VLAN VLAN /接口地址 备注 SW0 GE0/0/23 SW2 GE0/0/23 ...

  9. Linux 操作系统主机名变成bogon怎么解决?

    主机名变成bogon怎么解决? by:授客 QQ:1033553122   一:使用hostname命令 [laiyu@localhost ~]$ hostname localhost.localdo ...

  10. 安卓开发之ScrollView

    当界面不足以将所有的内容显示出来的时候便导致下面的部分内容无法显示出来 所有加上ScrollView 来讲要显示的内容放入之中便可以实现上下滚动界面内容 但是当要显示多个控件的时候会出错  原因是Sc ...