内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能

Process:运行中的程序的一个副本。

  存在生命周期

Linux内核存储进程信息的固定格式 :task struct

  多个任务的task struct组件的链表:task list

进程创建:

  init

    父子关系

    进程:都由其父进程创建

      fork(),clone()

  进程优先级:

    0-139:

      1-99:实时优先级;

        数字越大,优先级越高;

      100-139:静态优先级;

        数字越小,优先级越高;

      Nice值:

        -20,19

    Big O

      O(1),O(logn),O(n),O(n^2),O(2^n)

  进程内存:

    Page Frame:页框,用存储页面数据

      存储Page

      MMU:memory Management Unit

  IPC:Inter Process Communication

    同一主机上:

      signal

      shm:shared memory

      semerphor

    不同主机上:

      rpc:remote procesure call    远程过程调用

      socket:

Linux内核:抢占式多任务

  进程类型:

    守护进程:daemon,在系统引导过程中启动的进程,跟终端无关的进程;

    前台进程:跟终端相关,通过终端启动的进程

      注意:也可以把在前台启动的进程送往后台,以守护模式运行;

  进程状态:

    运行态:running

    就绪态:ready

    睡眠态:

      可中断:interruptable

      不可中断:uninterruptable

    停止态:暂时于内存中,但不会被调度,除非手动启动之:stopped

    僵死态:zombie

  进程的分类:

    CPU-Bound

    IO-Bound

  《Linux内核设计与实现》,《深入理解Linux内核》,

Linux进程查看及管理的工具:pstree,ps,pidof,pgrep,top,htop,glance,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup

  pstree命令:

    pstree - display a tree of processes

  ps:process state

    ps - report a snapshot of the current processes

    Linux系统各进程的相关信息均保存在/pro/PID目录下的各文件中;

    ps [OPTION]...

      选项:支持两种风格

      常用组合:aux

        u:以用户为中心组织进程状态信息显示

        a:与终端相关的进程;

        x:与终端无关的进程;

        ~]# ps aux

        USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

        进程属主   进程ID  占据CPU时间百分比   占据内存空间百分比  虚拟内存大小

        VSZ:Virtual memory SiZe

        RSS:ReSident Size,常驻内存集

        TTY:从哪个终端启动的,?代表与终端无关

        STAT:进程状态

          R:running

          S:interruptable sleeping

          D:uninterruptable sleeping

          T:stopped

          Z:zombie

          +:前台进程

          l:多线程进程

          N:低优先级进程

          <:高优先级进程

          s:session leader

          TIME:运行占据CPU的累计时长

          COMMAND:由什么命令启动的相关进程

      常用组合:-ef

        -e:显示所有进程

        -f:显示完整格式程序信息

      常用组合:-eFH

        -F:显示完整格式的进程信息

        -H:以进程层级格式显示进程相关信息

      常用组合:-eo,axo

        -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm

        axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

          ni:nice值

          pri:priority,优先级

          psr:processor,CPU

          rtprio:实时优先级

  pgrep,pkill

    pgrep [OPTION] pattern

    pkill [OPTION] pattern

      -u uid:effective user

      -U uid:real user

      -t terminal:与指定终端相关的进程

      -l:显示进程名

      -a:显示完整格式的进程名

      -P pid:显示其父进程为此处指定的进程的进程列表

  pidof:根据进程名获取其PID;

  top:

    有许多内置命令:

      排序:

        P:以占据的CPU百分比;

        M:占据内存百分比;

        T:累积占据CPU时长;

      首部信息显示:

        uptime信息:l 命令

        tasks及cpu信息:t命令

          cpu分别显示:1(数字)

        memory信息:m命令

        Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

           用户空间  内核空间  nice值  空间时间  等待时间  硬中断时间  软中断时间  被偷走的时间       【各自时间所占据的比例】

      退出命令:q

      修改刷新时间间隔:s

      终止指定进程:k

    选项:

      -d #:指定刷新时间间隔,默认为3秒

      -b:以批次方式

      -n #:显示多少批次;

  htop命令:

    选项:

      -d #:指定延迟时间;

      -u UserName:仅显示指定用户的进程;

      -s COLOMN:以指定字段进行排序;

    命令:

      s:跟踪选定进程的系统调用;

      l:显示选定进程打开的文件列表;

      a:将选定的进程绑定至某指定CPU核心;

      t:显示进程树

    注意:Fedora-EPEL源

Linux:Day12(上) 进程的更多相关文章

  1. 深入Linux内核架构——进程管理和调度(上)

    如果系统只有一个处理器,那么给定时刻只有一个程序可以运行.在多处理器系统中,真正并行运行的进程数目取决于物理CPU的数目.内核和处理器建立了多任务的错觉,是通过以很短的间隔在系统运行的应用程序之间不停 ...

  2. NoSql1 在Linux(CentOS)上安装memcached及使用

    前言:       今天是初五,生活基本要从过年的节奏中回归到正常的生活了,所以想想也该想想与工作有关的事情了.我之前在工作中会经常使用memcached和redis,但是自己一直没有时间系统的好好看 ...

  3. Linux服务器上监控网络带宽的18个常用命令

    [51CTO精选译文]本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以 ...

  4. Linux如何查看进程、杀死进程、启动进程等常用命令

    Linux如何查看进程.杀死进程.启动进程等常用命令 关键字: linux 查进程.杀进程.起进程1.查进程    ps命令查找与进程相关的PID号:    ps a 显示现行终端机下的所有程序,包括 ...

  5. Linux 服务器的网络配置 - 2. 查看 Linux 服务器的进程

    2. 查看 Linux 服务器的进程 1)ps [主要选项] -a  显示系统中所有进程的信息 -e  显示所有进程的信息 -f  显示进行的所有信息 -l   以长格式显示进程信息 -r  只显示正 ...

  6. Linux 线程与进程,以及通信

    http://blog.chinaunix.net/uid-25324849-id-3110075.html 部分转自:http://blog.chinaunix.net/uid-20620288-i ...

  7. Linux系统编程@进程通信(一)

    进程间通信概述 需要进程通信的原因: 数据传输 资源共享 通知事件 进程控制 Linux进程间通信(IPC)发展由来 Unix进程间通信 基于System V进程间通信(System V:UNIX系统 ...

  8. Linux服务器上监控网络带宽的18个常用命令(转)

    本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以显示单个进程所使用的带 ...

  9. [转]Linux Ubuntu上架设FTP

    Linux Ubuntu上架设FTP http://www.blogjava.net/stonestyle/articles/369104.html 操作系统:ubuntu (GNU/Linux) 为 ...

随机推荐

  1. 带着萌新看springboot源码8(spring ioc源码下)

    继续接着上一节,到了第六步(温馨提醒,内容有点小多,不过看完ioc原理就差不多了) 6.注册Bean后置处理器(registerBeanPostProcessors(beanFactory)) 最后一 ...

  2. Python的协程

    什么是协程 协程又叫做微线程,它是在单一线程内通过不断切换执行的.协程的切换不是上下文的切换也就是说不是CPU的执行任务的切换,比如CPU执行一会线程1,然后再执行一会线程2,在多核CPU上,Pyth ...

  3. ThreadPoolExecutor系列二——ThreadPoolExecutor 代码流程图

    ThreadPoolExecutor 代码流程图 本文系作者原创,转载请注明出处:http://www.cnblogs.com/further-further-further/p/7681648.ht ...

  4. Jenkins结合.net平台综合之权限修正和文件排除

    笔者在发布项目的时候遇到这样一个问题,第一次发布的时候成功发布,然后再次发布失败.但是这个问题很快就排除了,这里提出来是为了帮助遇到这个问题的小伙伴,以顺利避开坑.之所以会这样是因为我们在设置权限的时 ...

  5. Linux下Oracle client客户端安装

    0.zip格式 (0)下载地址: a.Oracle官网 (1)安装过程: a.将zip文件分别解压到/software/下,放在同一个目录instandclient_11_2/下 b.在/softwa ...

  6. 【.NET Core项目实战-统一认证平台】第十章 授权篇-客户端授权

    [.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了如何使用Dapper持久化IdentityServer4(以下简称ids4)的信息,并实现了sqlserver和mysql两种 ...

  7. 第5章 支持和咨询选项 - Identity Server 4 中文文档(v1.0.0)

    我们为IdentityServer提供了多种免费和商业支持和咨询选项. 5.1 免费支持 免费支持是基于社区的,并使用公共论坛 5.1.1 StackOverflow StackOverflow 社区 ...

  8. [转]layui点击左侧导航栏,实现不刷新整个页面,只刷新局部

    本文转自:https://blog.csdn.net/s31415926_004/article/details/84256587 其实这篇文章是给自己看的,以后忘记怎么做回来还能看一下哈哈哈哈哈哈哈 ...

  9. 4 Redis 配置文件介绍

    2016-12-22 14:28:39 该系列文章链接NoSQL 数据库简介Redis的安装及及一些杂项基础知识Redis 的常用五大数据类型(key,string,hash,list,set,zse ...

  10. webstorm里用 DB browser 连接 mysql SQlite Oracle数据库

    (1)插件名:DB browser preferences -> plugin -> 搜索 DB browser (2)在view里勾上 Tool Buttons,左侧会显示插件快捷入口 ...