Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解CPU、内存资源等的真正分布,具体的工作机制,这使得他们对很多问题的分析都摸不到方向。比如进程的调度延时是多少?Linux能否硬实时?多核下多线程如何执行?系统的内存究竟耗到哪里去了?我写的应用程序究竟耗了多少内存?什么是内存泄漏,如何判定内存是否真的泄漏?CPU速度、内存大小和系统性能的关联究竟是什么?内存和I/O存在着怎样的千丝万缕的联系?
若不能回答上述问题,势必造成Linux开发过程中的抓瞎,出现关键bug和性能问题后丈二摸不着。从某种意义上来说,进程调度和内存管理之于Linux,类似任督两脉之于人体。任督两脉属于奇经八脉,任脉主血,为阴脉之海;督脉主气,为阳脉之海。任督两脉分别对十二正经脉中的手足六阴经与六阳经脉起着主导作用,任督通则百脉皆通。对进程调度和内存管理的理解,可以极大地打通我们对Linux系统架构,性能瓶颈,进程资源消耗等一系列问题的理解。

Linux进程调度以及配套的进程管理回答如下问题:
1.Linux进程和线程如何创建、退出?进程退出的时候,自己没有释放的资源(如内存没有free)会怎样?
2.什么是写时拷贝?
3.Linux的线程如何实现,与进程的本质区别是什么?
4.Linux能否满足硬实时的需求?
5.进程如何睡眠等资源,此后又如何被唤醒?
6.进程的调度延时是多少?
7.调度器追求的吞吐率和响应延迟之间是什么关系?CPU消耗型和I/O消耗型进程的诉求?
8.Linux怎么区分进程优先级?实时的调度策略和普通调度策略有什么区别?9.nice值的作用是什么?nice值低有什么优势?
10.Linux可以被改造成硬实时吗?有什么方案?
11.多核、多线程的情况下,Linux如何实现进程的负载均衡?
12.这么多线程,究竟哪个线程在哪个CPU核上跑?有没有办法把某个线程固定到某个CPU跑?
13.多核下如何实现中断、软中断的负载均衡?
14.如何利用cgroup对进行进程分组,并调控各个group的CPU资源?
15.CPU利用率和CPU负载之间的关系?CPU负载高一定用户体验差吗?

Linux内存管理回答如下问题:
1.Linux系统的内存用掉了多少,还剩余多少?下面这个free命令每一个数字是什么意思?
2.为什么要有DMA、NORMAL、HIGHMEM zone?每个zone的大小是由谁决定的?
3.系统的内存是如何被内核和应用瓜分掉的?
4.底层的内存管理算法buddy是怎么工作的?它和内核里面的slab分配器是什么关系?
5.频繁的内存申请和释放是否会导致内存的碎片化?它的后果是什么?
6.Linux内存耗尽后,系统会发生怎样的情况?
7.应用程序的内存是什么时候拿到的?malloc()成功后,是否真的拿到了内存?应用程序的malloc()与free()与内核的关系究竟是什么?
8.什么是lazy分配机制?应用的内存为什么会延后以最懒惰的方式拿到?
9.我写的应用究竟耗费了多少内存?进程的vss/rss/pss/uss分别是什么概念?虚拟的,真实的,共享的,独占的,究竟哪个是哪个?
10.内存为什么要做文件系统的缓存?如何做?缓存何时放弃?
11.Free命令里面显示的buffers和cached分别是什么?二者有何区别?
12.交换分区、虚拟内存究竟是什么鬼?它们针对的是什么性质的内存?什么是匿名页?
13.进程耗费的内存、文件系统的缓存何时回收?回收的算法是不是类似LRU?
14.怎样追踪和判决发生了内存泄漏?内存泄漏后如何查找泄漏源?
15.内存大小这样影响系统的性能?CPU、内存、I/O三角如何互动?它们如何综合决定系统的一些关键性能?

linux学习的任督二脉相关推荐

  1. linux 进程调度 内存,linux学习的任督二脉-进程调度和内存管理

    转自 宋宝华老师的博客 原文:https://blog.csdn.net/21cnbao/article/details/77505330 内功心法 学习或遇到问题时,反过来主动思考如果我是设计者,我 ...

  2. 计算机知识对于老师的帮助,感念师恩·每日之星 | 帮助学生打通计算机专业学习的“任督”二脉——记第十六届“我心目中的好老师”、计算机科学与技术学院黄秋波老师...

    [编者按]教师是立校之本,师德是教育之魂,在东华校园里,每年的"我心目中的好老师"评选.青年教师讲课竞赛等活动,都会涌现出一批深受学生爱戴的老师,在2016年教师节来临之际,在这个 ...

  3. 深度讲解Linux内存管理和Linux进程调度-打通任督二脉

    我在多年的工程生涯中发现很多工程师碰到一个共性的问题:Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解CPU.内存资源等的真正分布,具体的工作机制,这使得他 ...

  4. 理解快速排序 | 打通算法学习的任督二脉

    本文作者胡光 前百度高级算法研发工程师,ACM 国际大学生程序设计大赛亚洲区金牌获得者 具体内容来自他在极客时间开设的免费公开课<常用算法 25 讲> 排序算法在工作中最常用,也是学习很多 ...

  5. 打通深度学习的“任督二脉”——入门必备

    深度学习(Deep Learning)作为人工智能领域的前沿话题,正在吸引着越来越多的研究人员和开发者的关注.它是机器学习的一种,通过多层神经网络来学习数据的内在表示和特征,实现对复杂问题的高效处理和 ...

  6. 正则表达式-Linux系统的任督二脉

    1.什么是正则表达式 正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找.删除.替换某特定字符串的处理程序. 正则表达式基本 ...

  7. 同样学习Linux, 为何差别这么大? - 论打通Linux进程和内存管理任督二脉

    穆赫兰道和内陆帝国 我在多年的工程生涯中发现很多工程师碰到一个共性的问题:Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解CPU.内存资源等的真正分布,具体 ...

  8. Linux就这个范儿 第13章 打通任督二脉

    Linux就这个范儿 第13章 打通任督二脉 0111010110--你有没有想过,数据从看得见或看不见的线缆上飞来飞去,是怎么实现的呢?数据传输业务的未来又在哪里?在前面两章中我们学习了Linux网 ...

  9. 搬:Linux的任督二脉:进程调度和内存管理

    https://blog.csdn.net/21cnbao/article/details/77505330 <穆赫兰道>与<内陆帝国> 我在多年的工程生涯中发现很多工程师碰到 ...

最新文章

  1. VOC2007基本信息
  2. mysql 绕过空格_SQL注入篇-绕过方法
  3. java poi excel无法添加水印替代方法
  4. python模块之hashlib加密
  5. 【论文】2019 年,智能问答(Question Answering)的主要研究方向有哪些?
  6. java jquery时间问候语,js实现实时问候,不同时间显示不同问候语
  7. 使用微信机器人实现华为OLT和中兴OLT挂测的简单功能
  8. 如何使用JLINK调试和固件下载
  9. BZOJ2001 HNOI2010 城市建设
  10. 面包屑导航html页面,react怎么实现面包屑导航
  11. Java,设计,功能权限和数据权限,用户、角色、权限和用户组
  12. maven依赖顺序原则
  13. 为什么判断一个数X是不是素数时只需判断其能否在2~根号X被整除即可?
  14. Redis 从入门到弃坑
  15. 编程是一场漫长的修行
  16. tomcat打包war,jar部署
  17. Sql分页查询以及top函数简单实例
  18. aarch64安装numba
  19. 计算机应用基础new题库,2015年12月份电大远程网络教育计算机应用基础统考题库8_new重点.doc...
  20. wordpress 手动更新方法

热门文章

  1. jhipster 使用jh文件生成数据带注释
  2. (一)关于思维导图MindMaster
  3. 2023云南大学应用统计硕士专业考研成功经验分享
  4. 根据经纬度,获取方圆10公里内的数据
  5. 14-排序优化:如何实现一个通用的、高性能排序函数?
  6. 对日外包十日谈 之 我所了解的对日外包企业
  7. android timer 控件,TimerView 一个解耦良好的计时控件,可自由扩展。 @codeKK Android开源站...
  8. springboot启动错误: 找不到或无法加载主类
  9. pdb—Python调试器
  10. 什么是物联网和物联网模块