守护进程(内核线程和普通进程)
ps命令看到的内核线程(thread)属于守护进程(daemon)<注1>, 在操作系统中占据相当大的比例,当Linux操作系统启动以后,尤其是Xwindow也启动以后,你可以用”ps”命令查看系统中的进程,这时会发现很多以”[xxxxd]”结尾的进程名,这些进程就是内核线程。
内核线程也可以叫内核任务,它们周期性地执行,例如,磁盘高速缓存的刷新,网络连接的维护,页面的换入换出等等。在Linux中,内核线程与普通进程有一些本质的区别,从以下几个方面可以看出二者之间的差异:
· 内核线程执行的是内核中的函数,而普通进程只有通过系统调用才能执行内核中的函数。
· 内核线程只运行在内核态,而普通进程既可以运行在用户态,也可以运行在内核态。
· 因为内核线程指只运行在内核态,因此,它只能使用大于PAGE_OFFSET(3G)的地址空间。另一方面,不管在用户态还是内核态,普通进程可以使用4GB的地址空间。
内核线程是由kernel_thread( )函数在内核态下创建的,这个函数所包含的代码大部分是内联式汇编语言,但在某种程度上等价于下面的代码:
int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) { pid_t p; p = clone( 0, flags | CLONE_VM ); if ( p ) /* parent */ return p; else { /* child */ fn(arg); exit( ); } } |
系统中大部分的内核线程是在系统的启动过程中建立的。
注1:
(1)Linux 守护进程概述
(2)工作原理(以网络服务为例,除此之外还有系统服务(eg:atd crond))
(3)工作模式
(4)Linux 守护进程管理
守护进程(内核线程和普通进程)相关推荐
- 【Linux 内核】进程管理 ( 内核线程概念 | 内核线程、普通进程、用户线程 | 内核线程与普通进程区别 | 内核线程主要用途 | 内核线程创建函数 kernel_thread 源码 )
文章目录 一.内核线程概念 二.内核线程.普通进程.用户线程 三.内核线程.普通进程区别 四.内核线程主要用途 五.内核线程创建函数 kernel_thread 源码 一.内核线程概念 直接 由 Li ...
- linux 内核线程与普通进程的区别
linux 内核通过内核线程这种方式来实现在后台运行一些操作. 内核线程是在内核空间中单独存在的标准进程.内核线程与普通进程最大的不同在于: 内核线程没有地址空间.内核线程只能工作于内核空间,不能上下 ...
- linux线程能删除自身吗,Linux内核本身和进程的区别 内核线程、用户进程、用户...
这个概念是很多人都混淆的了,我也是,刚开始无法理解OS时,把Linux内核也当做一个进程. 其实内核本身不是以进程形式存在的,最多在初始化的过程中表现得就像一个进程,但是内核绝对没有进程的数据结构ta ...
- 进程和线程的区别 进程间的通信方式
进程和线程都是操作系统实现并发执行的基本单元,但有以下区别: 1.资源拥有:进程有独立的地址空间,拥有系统资源的拷贝,线程共享进程的资源.进程间通信较麻烦,线程间通信简单. 2.执行单元:进程是程序的 ...
- 用户进程与内核进程是一一对应的吗_用户线程、内核线程和轻量级进程
这一篇再继续就线程进行一些更深层次的研究 线程所需的资源 进程中各个线程共享代码.数据和文件等资源,记录线程运行状态的空间(TCB)每个线程单独有一个 每个进程都需要它自己私有的线程控制块(TCB) ...
- Linux 操作系统原理 — 用户进程、用户线程、内核线程、轻量级进程、协程的区别与联系
目录 文章目录 目录 面向线程设计的 Linux 操作系统 用户进程(User Process) 用户进程的创建与销毁 进程的生命周期状态机 用户进程的调度 用户进程间通信 用户进程的子进程 用户线程 ...
- linux c进程和线程脑图,进程和线程
关于进程和线程,你需要理解下面这张脑图中的重点 进程 操作系统中最核心的概念就是 进程,进程是对正在运行中的程序的一个抽象.操作系统的其他所有内容都是围绕着进程展开的. 在多道程序处理的系统中,CPU ...
- python的进程和线程定位_Python | 进程 线程的理解拾遗
进程和线程的理解 线程是操作系统能够进行预算调度的最小单位,它包含在进程中是进程中的实际运作单位. Linux 进程有父进程和子进程,window 系统的进程是平等关系 一个标准的线程有线程 ID , ...
- python 协程、进程、线程_Python的进程、线程和协程 · Donzy’s Blogs
0.前言 在计算机技术领域,吞吐量(throughput)是计算机在指定的一段时间内完成编程技术如何影响.本文主要讨论Python的多进程.多线程及协程等编程技术在不同场景下对系统吞吐量的影响. 1. ...
最新文章
- 在工作中有被动转主动的体会_积极主动应对眼前的一切,就是对自己最好的犒赏...
- 对一个伪装成微信的加固病毒的分析
- IBM服务器四大系列解析
- 消息称微软计划收购GitHub,估值超50亿美元
- 笔记本电脑键盘切换_全球首款折叠屏笔记本电脑ThinkPad X1 Fold:5G高速互联拥抱PC场景融合时代...
- ddr5内存上市时间_辣评烩:SK海力士首发DDR5内存:频率冲上5600MHz
- 4g 中bis代表什么_BIS的完整形式是什么?
- java as操作_java 对类型的基本操作小结
- 哈工大大数据实验_大数据创新实验室丨警大智慧警务学院人才培养打造新引擎...
- 很多人认为,因为我们是平民,做生意试不了错,输不起,试错成本太高
- Canvas绘图基本用法
- Android Studio 查询RecyclerView最新依赖方法
- 三人表决器实验报告总结_三人表决器实验报告.doc
- 电子信息工程专业概论_本科专业介绍 | 电子信息工程
- 林子雨大数据java练习
- 虚拟机怎么启动共享文件服务器,VMware虚拟机中ubuntu启用本地文件共享的设置方法...
- c++ map是有序还是无序的_实现有序map之go
- 名人博客阅读摘要三:外部排序
- Ubuntu18.04 Ceres Solver
- PEGA(Low-Code App Builder)Describing a data object
热门文章
- YouTube 赚钱套路:搬运抖音视频能月入上万美金?
- 美国移民局的I797表原件和I129表是什么呢
- solr的schema.xml配置属性解释
- ASP.NET用户个性化设置Profile——配置2 (转)
- 设计模式:javascript原型式继承
- 了解Web项目前后端分离开发流程,这一篇就够了
- Java读取Excel表格中的数据
- IDEA引入本地jar包的几种方法
- iOS设置状态栏颜色
- ubuntu20.0.4切换清华源_5G(NR)网络中“软切换”双活协议栈(DAPS)介绍