转自 宋宝华老师的博客

原文:https://blog.csdn.net/21cnbao/article/details/77505330

内功心法

学习或遇到问题时,反过来主动思考如果我是设计者,我会怎么对这个问题或场景进行处理?

打通任督二脉前的基本功夫,是真的搞懂基本概念,然后可以顺畅的回答如何问题

带着问题上路

一切的学习都是为了解决问题,而不是为了学习而学习。为了学习而学习,这种行为实在是太傻了,因为最终也学不好。所以我们要弄清楚进程调度和内存管理究竟能解决什么样的问题。

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/3的问题,那么,Linux对您仍然是一片空白,出现问题,您只会陷入瞎猫子乱抓,而捞不到耗子的困境,或者胡乱地意测问题,陷入不断的低水平重试。

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

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

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

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

任督二脉之Shell中的正则表达式

VBird说学习Linux,掌握了Shell和正则就相当于打通了任督二脉,此后能力的成长才会突飞猛进. Shell的基础学习之前已经总结了一篇博客:http://www.cnblogs.com/jyz ...

天河微信小程序入门《三》:打通任督二脉,前后台互通

原文链接:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=505&extra=page%3D1 天河君在申请到https ...

English learning method ---学英语重中之重打通“任督二脉”

漫漫十年艰辛路,英语学习之旅 曾经秉承“路漫漫其修远兮,吾将上下而求索”的信念,初一那年了解到原来(a b c d e f g) 不仅仅读作(啊,波,词,的,额,佛,哥),在英语的世界中它有另外的读法 ...

Appium+python自动化(十)- 元素定位秘籍助你打通任督二脉 - 上卷(超详解)

简介 你有道灵光从天灵盖喷出来你知道吗,年纪轻轻就有一身横练的筋骨,简直百年一见的练武奇才啊,如果有一天让你打通任督二脉,那还不飞龙上天啊.正所谓我不入地狱谁入地狱,警恶惩奸维护世界和平这个任务就交个 ...

Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码

在上一篇随笔里面详细讲解了Linux系统的启动过程 (Linux学习之CentOS(二十一)--Linux系统启动详解),我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab ...

deepin linux 学习笔记(二)——文本编辑器

目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...

Linux学习之CentOS(二)--初识linux的一些常用命令

Linux学习之CentOS(二)--初识linux的一些常用命令 在VM上安装完了CentOS6.4以后,看着linux系统成功跑起来,心里小激动了一把......但是前方学习的道路还很遥远... ...

随机推荐

iOS Xcodebuild

简介 xcodebuild 是苹果发布自动构建的工具.它在一个Xcode项目下能构建一个或者多个targets ,也能在一个workspace或者Xcode项目上构建scheme,总的来说,用它没错就 ...

What is a Statistic?

from: https://controls.engin.umich.edu/wiki/index.php/Basic_statistics:_mean,_median,_average,_stand ...

Java发送post请求

package com.baoxiu.test; import java.io.BufferedReader;import java.io.InputStreamReader;import java. ...

关于《一步步学习ASP.NET MVC3》系列发布时间的说明

在写这个系列的时候,老魏也是下了很大的决心,因为平时基本上没有时间写文章,这回我要挑战我自己的意志力,决定要把这个系列写完整. 再次呢,老魏不能向大家保证什么时间结束,但基本上要保持一天一篇的进度,如 ...

Thread中yield方法

先上一段代码 public class YieldExcemple { public static void main(String[] args) { Thread threada = new Th ...

Android编码学习之Fragment

1. 什么是Fragment Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似.Fragment是用来描述一些行为或一部 ...

网络的FIN_WAIT_2状态解释和分析

关于网络设备的FIN_WAIT_2状态解释出处:http://hi.baidu.com/netdemon1981/blog/item/584bfbb2aeb1d4acd9335ad9.html 在HT ...

python全栈开发笔记---------变量小结

变量是什么? 变:变化,重在变字,量:计量,衡量,表示一种状态. 变量字面理解就是一个可能改变的量,也就是这个值是不固定的. 变量名: a.数字 b.字母 c.下划线 变量的定义 level = 1 ...

CSS3实现10种Loading效果(转)

linux 进程调度 内存,linux学习的任督二脉-进程调度和内存管理相关推荐

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

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

  2. 早鸟倒计时:Linux的任督二脉之《内存管理》在线视频

    内存管理是Linux里面最难最晦涩的部分,但是内存管理不清楚,Linux的很多现象又无法解释,很多环节都无法理清.这是继<Linux的任督二脉:进程调度和内存管理>第一脉<进程.线程 ...

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

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

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

    <穆赫兰道>与<内陆帝国> 我在多年的工程生涯中发现很多工程师碰到一个共性的问题:Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解C ...

  5. linux学习的任督二脉

    Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解CPU.内存资源等的真正分布,具体的工作机制,这使得他们对很多问题的分析都摸不到方向.比如进程的调度延时是多 ...

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

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

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

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

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

    <穆赫兰道>与<内陆帝国> 我在多年的工程生涯中发现很多工程师碰到一个共性的问题:Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解C ...

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

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

最新文章

  1. 常用的 css hack实例
  2. ALBERT第一作者亲自讲解:词向量、BERT、ALBERT、XLNet全面解析
  3. mpvue还在维护吗_mpvue 微信小程序开发之生命周期
  4. 情人节,我表白了CSDN小姐姐后,竟然...【为表白写了一个绘图工具,让我不再手残】
  5. 功能Java示例 第8部分–更多纯函数
  6. Referenced file contains errors (http://www.springframework.org/schema/context/spring-context-3.1.xs
  7. 使用泛型, 写一个为任意类型的动态数组添加元素的方法
  8. 程序员教你十分钟做出炫酷桌面
  9. DSOFramer使用
  10. Eureka源码深度刨析-(5)EurekaServer处理服务发现
  11. Android WebView 的回退方法(goback) 遭遇重定向
  12. 李天平:技术以外的功夫
  13. XILINX XC7A200T-2FBG676C PLC可编程逻辑控制器
  14. FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. ORC split
  15. EPSON1100清零软件 在哪有?
  16. 微项目:名片管理系统
  17. 模糊数学Python(二)模糊聚类分析
  18. 机器学习超全数据集汇总
  19. 越老越吃香的计算机专业,大四学长:最有前途的4个理工专业,毕业工作不愁,还越老越吃香...
  20. DIY相册的思路和welcome界面

热门文章

  1. 走进“开源SDR实验室” 一起玩转GNU Radio:gr-qtgui
  2. 安装Maven和配置阿里云镜像
  3. Linux终极shell-Z Shell
  4. 时间窗口算法用matlab,一种基于动态规划算法的时间窗口相关的参与者选择方法与流程...
  5. C语言数据类型和表达式
  6. 网络类型(hcip)
  7. Qt 之 QVideoFrame转换为QImage
  8. 阿里巴巴/招行信用卡中心21届实习面试知识点汇总
  9. 简单谱子C语言程序,写了一段超级简单的 G调的简谱转换为C调的程序
  10. 英飞凌单片机--GTM(Generic Timer Module)