Linux系统进程知识

  • 进程管理是程序执行逻辑控制
  • 进程是运行中的程序,在OS系统里面唯一标识是pid,在网络通信里面的标识是port;程序是运行在CPU上的,在单位时间内上CPU里面的数据只能够执行当前任务
  • CPU上程序运行方式:站在时间点上是并行;站在时间段上是并发
  • 新进程创建的步骤:
  • 1.分配唯一的标识符
  • 2.分配内存空间
  • 3.进程环境初始化
  • 4.设置连接-程序调度使用
  • 5.程序正常运行(需要额外的空间,保存运行数据)
  • 进程的组成:程序文件,进程控制块(PCB),运行数据
  • CPU执行过程依赖于操作系统的进程调度机制和内存管理
  • 进程之间有独立的空间结构
  • 进程类型:
  • 按进程运行方式分类:
  • 守护进程:daemon,在系统引导过程中启动的进程,和终端无关进程
  • 前台进程:跟终端相关,通过终端启动的进程
  • 按进程资源分类:
  • cpu-bound:cpu密集型,非交互
  • IO-bound:IO密集型,交互,查看设备IO调度算法
  • 按管理对象分类:
  • 系统进程:完成操作系统的各种功能的进程,处于运行状态的操作
  • 用户进程:用户空间下各个程序的进程,包括自己启动的各种程序进程
  • 开销就是资源消耗
  • 线程是程序执行中一个单一的顺序控制流程,是程序执行的最小单元,是CPU处理器调度和分派的基本单位。
  • 一个进程可以有一个或多个线程
  • 线程由线程ID,当前指令指针(PC),寄存器和堆栈组成
  • 进程有(内存空间,代码,数据,进程空间,打开的文件)和一个或多个线程组成
  • 线程与进程的区别在于线程可以共享进程的资源,轻量,切换成低
  • 线程相关的概念:线程池,上下文切换,死锁,阻塞运行状态
  • 查看进程的相关信息:ls /proc/pid
  • 查看进程中的线程-包括进程本身:grep -i threads /proc/pid/status
  • 查看进程中的二进制文件:ll /proc/pid/exe
  • 查看进程打开的文件:/proc/pid/fd
  • 查看多线程:pstree -p | grep xxx
  • 进程创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程信息,完成资源分配。
  • 就绪状态:进程已准备好,已分配到所需资源,只要分配到CPU就能立即执行。
  • 执行状态:进程处于就绪状态被调度后,进程进入执行状态。
  • 阻塞状态:正在执行的进程由于由于某些事件(IO请求,申请缓存区失败)而暂时无法运行,进程收到阻塞。
  • 僵尸状态:结束进程,父进程结束前,子进程不关闭,杀死父进程可以关闭将死状态。
  • 进程优先级决定了进程在竞争CPU资源时的先后顺序。
  • 高优先级可以插队;通过调整高优先级,可以提高系统的响应速度和性能。
  • 使用nice命令启动一个进程并设置其优先级,或者使用renice命令来调整已运行的进程优先级
  • 使用top或htop等命令来实时查看和修改进程的优先级
  • 常用进程命令:
  • 查看:ps、pstree、top、free、vmstat、lsof
  • 管理:kill、killall、pkill
  • 任务:jobs、bg、fg、kill %id、nohup、Ctrl + Z
posted @ 2026-04-20 11:58  kevin-579  阅读(20)  评论(0)    收藏  举报