Linux进程类别

对于linux内核来说,进程和线程都是一个任务(task_struct),可以被调度的任务。

一个进程由于其运行空间的不同, 从而有内核线程用户进程的区分。

内核线程运行在内核空间, 之所以称之为线程是因为它没有虚拟地址空间, 只能访问内核的代码和数据。

用户进程运行在用户空间上。

用户线程其实上是与其他进程共享某些资源的进程。

因此, Linux上进程分3种,内核线程(或者叫核心进程)、用户进程用户线程, 当然如果更严谨的,你也可以认为用户进程和用户线程都是用户进程。

  • 内核线程拥有 进程描述符、PID、进程正文段、核心堆栈
  • 用户进程拥有 进程描述符、PID、进程正文段、核心堆栈 、用户空间的数据段和堆栈
  • 用户线程拥有 进程描述符、PID、进程正文段、核心堆栈,同父进程共享用户空间的数据段和堆栈

内核线程

内核线程就是内核的分身,一个分身可以处理一件特定事情。这在处理异步事件如异步IO时特别有用。内核线程的使用是廉价的,唯一使用的资源就是内核栈和上下文切换时保存寄存器的空间。支持多线程的内核叫做多线程内核(Multi-Threads kernel )。

  • 内核线程只运行在内核态,不受用户态上下文的拖累。
  • 处理器竞争:可以在全系统范围内竞争处理器资源;
  • 使用资源:唯一使用的资源是内核栈和上下文切换时保持寄存器的空间
  • 调度:调度的开销可能和进程自身差不多昂贵
  • 同步效率:资源的同步和数据共享比整个进程的数据同步和共享要低一些。

linux进程和线程理解相关推荐

  1. (大集合)Linux进程和线程的基本编程、通讯和例程【杂记】

    Linux 进程 和 线程 的基本 编程.通讯 和 例程 注:[杂记]系列为日常网搜资料的堆砌而积累成之.如有错误恭谢指出.标识为"原创"其实不完全是,只是多引用再整理和加上自己的 ...

  2. 【Linux进程、线程、任务调度】三 CPU/IO消耗型进程 吞吐率/响应 SCHED_FIFO算法与SCHED_RR算法 SCHED_NORMAL算法和CFS算法 nice与renic chrt

    学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2(已满): 780902027 学习 ...

  3. 一文搞定Linux进程和线程(详细图解)

    Linux 进程和线程 本篇文章我们就深入理解一下 Linux 内核来理解 Linux 的基本概念之进程和线程.系统调用是操作系统本身的接口,它对于创建进程和线程,内存分配,共享文件和 I/O 来说都 ...

  4. 吉林大学操作系统上机(实验一:Linux进程与线程通讯)

    前言 我希望找到这里的学弟学妹能基于我的内容完成的更好,这里的代码和思路应该是你们的下限!! 我分享这些笔记的初衷是因为我觉得csdn上与之相关的不少博客都收费,但是我当时做的时候,我觉得就那么一点东 ...

  5. 【Linux进程、线程、任务调度】二 fork/vfork与写时拷贝 线程的本质 托孤 进程睡眠和等待队列

    学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2(已满): 780902027 学习 ...

  6. Linux进程与线程的区别 详细总结(面试经验总结)

    首先,简要了解一下进程和线程.对于操作系统而言,进程是核心之核心,整个现代操作系统的根本,就是以进程为单位在执行任务.系统的管理架构也是基于进程层面的.在按下电源键之后,计算机就开始了复杂的启动过程, ...

  7. Linux进程与线程的区别

    2019独角兽企业重金招聘Python工程师标准>>> Linux进程与线程的区别 cnyinlinux 本文较长,耐心阅读,必有收获! 进程与线程的区别,早已经成为了经典问题.自线 ...

  8. linux 进程和线程或线程和线程之间通过管道通信(pipe)

    linux 进程和线程或线程和线程之间通过管道通信(pipe) 转自:http://blog.csdn.net/robertkun/article/details/8095331 线程间通信: [cp ...

  9. 大名鼎鼎的 Linux —— 进程,线程,协程

    前言 Linux 作为当今服务端最流行的操作系统,是每个后端工程师应当熟练使用和理解的.本篇文章会详细讲述 Linux 系统中的一些基础概念:进程.线程,以及后面由各编程语言所实现的协程. 进程是什么 ...

最新文章

  1. js html css淘宝足迹日历效果,js实现简单的日历显示效果函数示例
  2. python update_python 字典中的Update()函数
  3. Android中设置RecyclerView的每一个item的单项点击事件
  4. 2 django系列之django分页与templatetags
  5. 今天的不是陶渊明的 飞鸽传书
  6. UVA 839 Not so Mobile 数据结构
  7. 【图像检索】基于matlab GUI KNN图像检索【含Matlab源码 267期】
  8. android 悬浮按钮出现隐藏,Android悬浮窗按钮实现点击并显示/隐藏多功能列表
  9. 【Unity3D日常BUG】Unity3D中使用高亮插件Highlighting出现的错误:Parameter name:shader
  10. web测试中如何简单定位bug
  11. MyBatis:CRUD操作及配置解析
  12. 苏宁“北京攻略”:老阵地,新战场 | 一点财经
  13. xp仿ios主题_三合一xp仿苹果电脑桌面主题
  14. 域名泛解析,二级域名转向问题- -完美解决
  15. Untiy Shader - Metallic vs Specular Workflow 金属 vs 高光的工作流
  16. 一条命令修复机械硬盘,提示需要格式化
  17. PyQt5蟒蛇计算器V2
  18. leetcode常用思路总结与文章索引
  19. 解决安装调试gym出现UserWarning: WARN: The environment Humanoid-v2 is out of date.
  20. Python修改私有变量、统计访问次数、华摄氏度转换

热门文章

  1. 计算机界面横向拉宽了怎样还原,电脑屏幕变大变小了如何还原
  2. arcgis加载dwg显示一个点_DWG/DGN格式导入Arcgis;转化为shp格式;更改地理坐标;导入Google Earth...
  3. Java NIO网络编程之Selector
  4. oracle数据库中基础知识,oracle数据库基础知识
  5. 路飞学城django
  6. python内置类型和类_python – 内置类型和用户定义之间的不一致
  7. php渲染nodejs api,nodejs通过响应回写渲染页面步骤详解
  8. nor flash和nand flash
  9. 法国计算机科学专业大学排名,法国计算机视觉专业大学排名(2020年USNEWS)_快飞留学...
  10. sql基于聚合结果集取最大值_SQL超入门第三篇:写给产品、运营、分析师的SQL教程...