【Linux 内核】进程管理 ( 进程特殊形式 | 内核线程 | 用户线程 | C 标准库与 Linux 内核中进程相关概念 | Linux 查看进程命令及输出字段解析 )
文章目录
- 一、进程特殊形式 ( 内核线程 | 用户线程 )
- 二、C 标准库与 Linux 内核中进程相关概念
- 三、Linux 查看进程命令及输出字段解析
一、进程特殊形式 ( 内核线程 | 用户线程 )
普通的进程 , 包含 内核虚拟地址空间 和 用户虚拟地址空间 , 其中 内核虚拟地址空间 所有进程共享 , 用户虚拟地址空间 由进程独立拥有 ;
除了 普通进程 外 , 进程 还有 222 种 特殊形式 :
- 内核级线程 : 只有 内核虚拟地址空间 , 没有 用户虚拟地址空间 的进程 , 称为 内核线程 ;
- 用户级线程 : 共享 用户虚拟地址空间 的进程 , 称为 用户线程 ;
线程 : 用户线程 又称为 线程 ;
线程组 : 共享 相同 用户虚拟地址空间 的线程 , 组成了一个 线程组 ,
二、C 标准库与 Linux 内核中进程相关概念
C 语言中 标准库 提供的 进程 , 与 Linux 内核 中的 进程 这两个概念是不同的 ;
C 标准库 中的 包含多个线程 的进程 , 在 Linux 内核中 称为 " 线程组 " ;
C 标准库 中的 只有一个线程 的进程 , 在 Linux 内核中 称为 " 任务 / 进程 " ;
C 标准库 中的 线程 , 在 Linux 内核中 称为 " 共享 用户虚拟地址空间 的 进程 "
三、Linux 查看进程命令及输出字段解析
在 Ubuntu 中 , 执行
ps aux
命令 , 可以查看当前系统的进程状态 , 确定有哪些进程 正在运行 , 占用的 CPU , 内存资源比例, 进程 ID 是多少 ;
ps 命令显示的当前执行命令时的 瞬间状态 , 不是 实时动态更新的 ;
实时进程使用 top 命令 ;
进程字段说明 :
- USER : 表示 进程是属于哪个账户的 ;
- PID : 进程 ID ;
- %CPU : 使用的 CPU 资源占用的 百分比 ;
- %MEM : 使用的 内存 资源占用的 百分比 ;
- VSZ : 该进程 占用的虚拟内存容量是多少 , 单位是 KB , 225864 表示 225864KB ;
- RSS : 实际占用的内存容量 ;
- TTY : 进程 运行的终端 ;
- STAT : 程序目前的状态 ; S 表示程序在休眠 , 可以发送信号唤醒 ;
执行过程如下 :
root@octopus:~# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.3 0.2 225864 9376 ? Ss 09:26 0:03 /sbin/init splash
root 2 0.0 0.0 0 0 ? S 09:26 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 09:26 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 09:26 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ? I< 09:26 0:00 [kworker/0:0H-kb]
root 9 0.0 0.0 0 0 ? I< 09:26 0:00 [mm_percpu_wq]
root 10 0.0 0.0 0 0 ? S 09:26 0:00 [ksoftirqd/0]
root 11 0.0 0.0 0 0 ? I 09:26 0:00 [rcu_sched]
root 12 0.0 0.0 0 0 ? S 09:26 0:00 [migration/0]
root 13 0.0 0.0 0 0 ? S 09:26 0:00 [idle_inject/0]
root 14 0.0 0.0 0 0 ? S 09:26 0:00 [cpuhp/0]
root 15 0.0 0.0 0 0 ? S 09:26 0:00 [cpuhp/1]
root 16 0.0 0.0 0 0 ? S 09:26 0:00 [idle_inject/1]
root 17 0.0 0.0 0 0 ? S 09:26 0:00 [migration/1]
root 18 0.0 0.0 0 0 ? S 09:26 0:00 [ksoftirqd/1]
root 20 0.0 0.0 0 0 ? I< 09:26 0:00 [kworker/1:0H-kb]
root 21 0.0 0.0 0 0 ? S 09:26 0:00 [cpuhp/2]
root 22 0.0 0.0 0 0 ? S 09:26 0:00 [idle_inject/2]
root 23 0.0 0.0 0 0 ? S 09:26 0:00 [migration/2]
【Linux 内核】进程管理 ( 进程特殊形式 | 内核线程 | 用户线程 | C 标准库与 Linux 内核中进程相关概念 | Linux 查看进程命令及输出字段解析 )相关推荐
- python获取当前线程名称_python使用标准库根据进程名如何获取进程的pid详解
前言 标准库是Python的一个组成部分.这些标准库是Python为你准备好的利器,可以让编程事半功倍.特别是有时候需要获取进程的pid,但又无法使用第三方库的时候.下面话不多说了,来一起看看详细的介 ...
- linux服务器配置考试试卷,Linux服务器配置和管理试题题目及答案,课程2021最新期末考试题库,章节测验答案...
( )是指通过电视.广播收看收听广告的户数与电视机或收音机拥有的户数之间的比例. 有一张3000元的托收承付第四联凭证月末未从银行取回.在编制银行存款余额调节表时应(). A.在"银行对账单 ...
- vs2017 linux so导出函数,将Visual Studio 2017中的Assembly和C ++与命令行和输出相结合
我正在尝试将这些语言结合起来用于测试目的.有没有人知道为什么,在构建项目后,当.asm文件在源文件夹中时,无法找到clear函数.下面显示的以下图像应该解释我的要求,我将进一步编辑. .586 ;Ta ...
- linux计划任务执行日志,linux中centos制定计划任务执行命令并且输出日志
1.写脚本 最简单的 写如下代码 #!/bin/sh A B C 1.每个命令之间用;隔开 说明:各命令的执行给果,不会影响其它命令的执行.换句话说,各个命令都会执行, 但不保证每个命令都执行成功. ...
- 【Linux 内核】进程管理 ( 内核线程概念 | 内核线程、普通进程、用户线程 | 内核线程与普通进程区别 | 内核线程主要用途 | 内核线程创建函数 kernel_thread 源码 )
文章目录 一.内核线程概念 二.内核线程.普通进程.用户线程 三.内核线程.普通进程区别 四.内核线程主要用途 五.内核线程创建函数 kernel_thread 源码 一.内核线程概念 直接 由 Li ...
- Linux内核源码分析《进程管理》
Linux内核源码分析<进程管理> 前言 1. Linux 内核源码分析架构 2. 进程原理分析 2.1 进程基础知识 2.2 Linux进程四要素 2.3 进程描述符 task_stru ...
- 五、Linux进程管理
进程管理 一.进程概述以及属性介绍 1.1 进程概述 进程是一个在系统中运行的程序,每个进程都是一个运行的实体,并占用一定的系统资源 进程是已启动的可执行程序的运行实例,动态,有生命周期及运行状态 程 ...
- Linux进程管理及作业控制(转)
Linux是一个多任务的操作系统,系统上同时运行着多个进程,正在执行的一个或多个相关进程称为一个作业.使用作业控制,用户可以同时运行多个作业,并在需要时在作业之间进行切换.本章详细介绍进程管理及作业控 ...
- Linux内核内存管理:地址转换和MMU
地址转换和MMU 虚拟内存是一个概念,是给进程的一种错觉,因此它认为自己拥有巨大的.几乎无限的内存,有时甚至比系统实际拥有的内存还要多.每次访问内存位置时,由CPU将虚拟地址转换为物理地址.这种机制称 ...
最新文章
- 数据库复习1——数据库体系结构和关系系统
- [转]ExtJS Grid 分页时保持选中的简单实现方法
- 如此智能的Windows Embedded Standard 7
- kafka_consumer_消费原理介绍
- Python--第3次平时作业
- Recovering deleted Records
- spotlight on windows 监控 配置 无法连接的问题
- *** cannot be resolved or is not a field
- 查看系统端口是否被占用
- 最基础的傅里叶变换公式推导
- 使用Syncthing文件同步工具在两台Windows server服务器实现文件同步(实战)
- 算法竞赛入门经典第11章 无根树转有根树
- C/C++基础题045.PUM
- 基于微信小程序奶茶店在线点单管理系统#毕业设计
- SAP S4HANA1610/Fiori安装过程全记录
- 【Java面试】Java 内存溢出 栈溢出的原因与排查方法
- electron exec 神坑
- mysql md5 多少位_mysql的MD5加密后的字符能不能设定长度
- TransMVSNet阅读笔记
- 开发板上新抢先知丨居然可以用来跑游戏?