个人简介

Echo Blog


江湖无名 安心练剑
  • 操作系统学习-04-02-malloc 是如何分配内存的?
    malloc 是如何分配内存的? 这次我们就以 malloc 动态内存分配为切入点,我在文中也做了小实验: malloc 是如何分配内存的? malloc 分配的是物理内存吗? malloc(1) 会分配多大的内存? free 释放内存,会归还给操作系统吗? free() 函数只传入一个内存地...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-04-01-为什么要有虚拟内存?
    为什么要有虚拟内存? 本篇跟大家说说内存管理,内存管理还是比较重要的一个环节,理解了它,至少对整个操作系统的工作会有一个初步的轮廓,这也难怪面试的时候常问内存管理。 干就完事,本文的提纲: 虚拟内存 如果你是电子相关专业的,肯定在大学里捣鼓过单片机。 单片机是没有操作系统的,所以每次写完代码,都需要借助工具把程序烧录进去,这样程序才能跑起来。 另外,单片机的 CPU 是直接操作内...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-03-01-Linux 内核 vs Windows 内核
    Linux 内核 vs Windows 内核 Windows 和 Linux 可以说是我们比较常见的两款操作系统的。 Windows 基本占领了电脑时代的市场,商业上取得了很大成就,但是它并不开源,所以要想接触源码得加入 Windows 的开发团队中。 对于服务器使用的操作系统基本上都是 Linux,而且内核源码也是开源的,任何人都可以下载,并增加自己的改动或功能,Linux 最大的魅...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-02-07-float 为什么 0.1 + 0.2 不等于 0.3 ?
    我们来思考几个问题: 为什么负数要用补码表示? 十进制小数怎么转成二进制? 计算机是怎么存小数的? 0.1 + 0.2 == 0.3 吗? … 别看这些问题都看似简单,但是其实还是有点东西的这些问题。 为什么负数要用补码表示? 十进制转换二进制的方法相信大家都熟能生巧了,如果你说你还不知道,我觉得你还是太谦虚,可能你只是忘记了,即使你真的忘记了,不怕,贴心的小林在和你一起回忆一下...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-02-06-软中断
    中断是什么? 先来看看什么是中断? 在计算机中,中断是系统用来响应硬件设备请求的一种机制,操作系统收到硬件的中断请求,会打断正在执行的进程,然后调用内核中的中断处理程序来响应请求。 这样的解释可能过于学术了,容易云里雾里,我就举个生活中取外卖的例子。 小林中午搬完砖,肚子饿了,点了份白切鸡外卖,这次我带闪了,没有被某团大数据杀熟。虽然平台上会显示配送进度,但是我也不能一直傻傻地盯...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-02-05-CPU 是如何执行任务的?
    CPU 是如何执行任务的? 你清楚下面这几个问题吗? 有了内存,为什么还需要 CPU Cache? CPU 是怎么读写数据的? 如何让 CPU 能读取数据更快一些? CPU 伪共享是如何发生的?又该如何避免? CPU 是如何调度任务的?如果你的任务对响应要求很高,你希望它总是能被先调度,这该怎...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-02-04-CPU 缓存一致性
    CPU Cache 的数据写入 随着时间的推移,CPU 和内存的访问性能相差越来越大,于是就在 CPU 内部嵌入了 CPU Cache(高速缓存),CPU Cache 离 CPU 核心相当近,因此它的访问速度是很快的,于是它充当了 CPU 与内存之间的缓存角色。 CPU Cache 通常分为三级缓存:L1 Cache、L2 Cache、L3 Cache,级别越低的离 CPU 核心越近...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-02-03-如何写出让 CPU 跑得更快的代码?
    如何写出让 CPU 跑得更快的代码? 代码都是由 CPU 跑起来的,我们代码写的好与坏就决定了 CPU 的执行效率,特别是在编写计算密集型的程序,更要注重 CPU 的执行效率,否则将会大大影响系统性能。 CPU 内部嵌入了 CPU Cache(高速缓存),它的存储容量很小,但是离 CPU 核心很近,所以缓存的读写速度是极快的,那么如果 CPU 运算时,直接从 CPU Cache 读取数据...
    2023-04-03 00:00:00 | Linux