zoukankan      html  css  js  c++  java
  • Linux:Day12(上) 进程

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

    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源

  • 相关阅读:
    js概念理解
    web性能瓶颈
    http协议
    jquery插件开发
    Razor(cshtml)
    从局域网内的其他Linux主机下载文件
    Java多线程学习笔记
    java中String s="abc"及String s=new String("abc")详解
    Object中toString方法
    DAO层,Service层,Controller层、View层、entity层
  • 原文地址:https://www.cnblogs.com/sq5288/p/10541424.html
Copyright © 2011-2022 走看看