首页 > 系统相关 > Linux 关于进程管理的总结

Linux 关于进程管理的总结

时间:2023-02-09 22:31:33浏览次数:47  
标签:总结 优先级 空间 内存 Linux 进程 CPU 内核

系统

计算机运行起来以后,就是由内核和运行在内核之上的众多进程来实现的(kernel+process)

 

内存分为 :    线性内存:

               物理内存:

 

计算机的所有运行都只在内存和CPU中运行!

 

内核空间:在整个系统中,内核运行的所在位置或空间

用户空间:在整个系统中,用户进程运行所在的位置或空间

 

进程恢复(内核工作时,进程是轮循工作的)

负责追踪每一个进程执行状态信息,而且还必须明确知道当前系统上一共有多少个进程,那他怎么追踪呢?

内核在他自己的空间中(内核空间)维持有一个内核数据结构(task struct)

任务结构(task struct):使用一个横向的表(数据表),包含PID、name、父进程、上一次执行的指令到哪里了.......

恢复现场:用户空间中保存的是用户的进程,而任务结构表保存在内核空间,CPU中有寄存器,CPU运行时,会把任务状态表装载进来。

          当用户空间的进程运行中断时,CPU会保存现场,会将进程进行到第几个指令保存在内核空间的任务状态中。

          当用户空间的进程执行完后,程序就会退出用户空间,内核会销毁内核空间的任务状态表。

程序由指令和数据组成

在真正的物理内存中,由多个进程和一个内核共处在同一个硬件上的,要想形成这种机制,我们的CPU必须将内存化分成除了内核之外的内存,许许多多的位置都给他化分成一个个的页框,每一个都是固定大小的存储单元,当任何一个进程(process)启动起来时,假如说这个进程需要10k空间,由我们的内核接受进程的申请,内核负责在内存中找三个这样的页面给这个进程(很可能这三个页框是不相邻的),但是在每个进程自身看来,这些空间是连续的。内核管理这些空间,所以在内存的内核空间中维护着一张表,这张表在任务结构数据表下的一个子结构,这个子结构中定义了每一个页面数据和他存储的具体页框的对应关系,


堆内存:一个进程要打开一个文件时,文件中有数据,这些数据要载入内存中才能被CPU访问,必须要把这个文件载入内存,要是真正放入物理内存,内核必须申请几个页面,把数据放进内存。数据若扩大,内核还会继续申请页面。根据需要不停的动态申请的内存空间

 

MMU(内存管理单元):它是中央处理器(CPU)中用来管理虚拟存储器、负责虚拟地址映射为物理地址、物理存储器的控制线路,

TLB:传输后备缓冲器是一个内存管理单元用于改进虚拟地址到物理地址转换速度的缓存。

 

进程状态

stopped:停止状态,不会被调动

ready:就绪,排队中

executing:正在运行当中

sleep:睡眠状态,运行中需要别的数据切换给其他数据

             uninterruptible  sleep :不可中断的睡眠,他需要调动的外部资源仍然没有满足,就算把它调动到CPU上也不能继续运行。

             interruptible    sleep :可中断睡眠,任务执行完成,但后面还可能会执行其他任务,呆在这里等待着。

zombie:僵尸进程,正常运行了,也结束了,但是他所占据的内存就不释放。

 

 

D :不可中断睡眠

R :运行或就绪

S :可中断进程

s :会话进程的首进程

T :停止

Z :僵死

< :高优先级进程

N :低优先级进程

L :多线程进程

+ :前台进程组中的进程

进程优先级

进程优先级是从0到139,一共是140个进程,

从100到139是由用户控制的,数字越小优先级越高!

从0到99是由内核调整的。数字越小,优先级越低。

 

每一个进程都有一个nice值,普通用户仅能够跳大自己的进程的nice值。

nice值负20到19

nice值:手动调整静态优先级

查看优先级:ps  -e  -o  class,rtprio,pri,nice,cmd

-e  查看所有和终端相关的进程

-o  自定义显示字段

class 调度类别

rtprio  实时优先级

pri  静态优先级

nice 手动调整静态优先级  -20-19

cmd  命令/内核线程

 

 

 

3、始终都是由高优先级进程运行,那低优先级的进程怎么办?

   进程类别

    交互式进程:IO密集型的,等待IO

    批处理进程:CPU密集型的,守护进程,大量的计算。。。

    实时进程:随时要运行,立即执行/响应。

调度器功能:记录系统中所有进程的执行情况;选择占有处理机的进程;进行进程上下文切换。

            调度是根据优先级完成的

4、linux内部优先级分为三类

     实时优先级:实时进程优先级,1-99,数字越小,优先级越低。跟内核相关的。

     静态优先级:跟用户相关的,100-139,数字越小,优先级越高。

5、调度类型

     实时进程

        SCHED_FIFO :先进先出队列

        SCHED_RR : 轮调,

        SCHED_Other:用来调度100-139之间优先级进程,用户进程

6、动态优先级:内核随时监控着这些优先级,若是某一个进程已经很长时间停留在那里。内核会在内部临时性的调高他的优先级。

               也可以降低进程的优先级。

               始终监视100-139之间的进程,用户进程。

7、调整优先级

  用户模式进程使用nice调整100-139

        nice    优先级值     COMMAND    :以这个优先级启动

        renice  -n  新优先级值    PID号/进程号    :对已经启动起来的进程进行调整

  内核模式进程/实时进程使用chrt调整1-99

       chrt  -f  -p  新优先级   PID号  (已经启动了的进程)

       chrt  -r  -p  新优先级   PID号  (已经启动了的进程)

       chrt  -r/-f   新优先级   COMMAND   (还没有启动的进程)

    -f:调整SCHED_FIFO 先进先出队列 类别的

    -r:调整SCHED_RR 轮调 类别的

    -p:pid号

 

专业书籍、问题答疑、教学视频、在线实验平台等服务请移步:​​www.noylinux.com​​《零基础趣学Linux》

如果此文章有帮助到您,还请麻烦动动您的小手点个赞,谢谢~
Linux运维技术交流q:962822359


 

 

 

 

标签:总结,优先级,空间,内存,Linux,进程,CPU,内核
From: https://blog.51cto.com/u_10784316/6047357

相关文章

  • 进程
    进程程序:指令序列进程是程序的一次执行过程(动态);是进程实体的运行过程进程实体/进程映像:(静态)PCB程序控制块:描述进程的各种信息;进程存在的唯一标志;操作系统所需的数据......
  • 为什么在容器中 1 号进程挂不上 arthas?
    作者:卜比本文是《容器中的Java》系列文章之4/n,欢迎关注后续连载......
  • docker安装(linux)
    1、进入管理模式suroot2、安装必要的系统工具yuminstall-yyum-utilsdevice-mapper-persistent-datalvm23、添加软件源信息yum-config-manager--add-repohttp:/......
  • linux基本功系列之sort命令实战
    前言大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第43篇文章。专栏地址:[linux基本功-基础命令专栏],此专栏是沐风晓月对Linux常用命令的汇总,希......
  • Linux学习-DAY8
    第5章用户身份与文件权限5.1用户身份与能力UID=0:      root用户UID=1~999:  系统用户UID=>1000:   普通用户注意:如果创建用户的时候手动指定了用户U......
  • vivado的时序约束失败问题总结
    在vivado综合布线后,会有时序报告,时序约束问题有两种:1.跨时钟详细见https://blog.csdn.net/wordwarwordwar/article/details/77434520这种情况占大部分时序约束问题,信号......
  • 2023/2/9 考试总结
    时间安排7.30~9.30T1是构造,T2是概率,T3是博弈。先看了T2,很快想出了一个\(O(n^5)\)的dp,可以发现转移和另一端没关系可以优化掉一个n。想了很久也不能再优化。9.30~10.30......
  • Linux挂载新的磁盘
    安装操作系统    部署生产环境的时候,服务器刚装完操作系统后新加磁盘设备后.这些磁盘设备还是以sda,sdb,sdc等形式存在.而且都在/dev目录下.这个时候Linux的文件......
  • Linux进程编程
    UNIX中,进程既是一个独立拥有资源的基本单位,又是一个独立调度的基本单位。一个进程实体由若干个区(段)组成,包括程序区、数据区、栈区、共享存储区等。每个区又分为若干页,每个......
  • 前端实习复盘+总结0209
    今天依旧是改bug的一天,总结一下需要注意的地方1:关系到流程的比如这个操作会影响到数据或者状态的改变通俗来讲就是动一发而牵全身 所以在关系到这类操作时我们要考......