殷东亮的博客

操作系统的文件系统

4月 22, 2021
Linux, 操作系统

文件是操作系统进行存储时使用最多的抽象之一,在 Linux 中,一切皆文件。本文以 Linux 为例,介绍下文件系统中的基础概念。 数据结构 # 每个文件实质上是一个有名字的字符序列,序列的内容为文件数据(file data),而序 ...

“结点”还是“节点”?

4月 8, 2021
Algorithms, Life

“结点” 还是 “节点” ? # 刷题时,总会遇到“节点”和“结点”的词汇混用,非常困惑,查了一下,一般认为: 节点是一个实体,它具有处理的能力,比如网络上的一台计算机。 结点是一个交叉点、一个标记,算法中的点一般 ...

实现限流的几种方案

4月 4, 2021
Go, Algorithms, 系统设计

限流是服务在高并发的情况下,通过限制处理请求的速率,以达到保证服务不过载的目的,实现高可用和稳定性的目标。限流的方案一般有计数法、滑动窗口、漏桶、令牌桶几种,其中各有各的特点,通常需要根据场景采用不同 ...

Go 程序是怎样跑起来的? Recommended

3月 31, 2021
Go, Compiler, Recommended

Go 程序是怎么跑起来的?面对问题我第一反应是,Go 是静态编译型语言,和 C 语言一样,就是编译、链接那一套,尤其是最近对着 Go 的一些资料看感觉又学习了一遍编译原理。编译原理的内容本身就很深,本文仅以我暂时理解 ...

Go 语言的垃圾回收机制概览

3月 22, 2021
Go, 内存管理

之前已经看过了 常见的垃圾回收算法,有了一定的基础,现在再来了解下 Go 语言的垃圾回收机制。 三色抽象 # Go 语言如今已经演变成增量式的垃圾回收策略,即不是一口气运行 GC,而是和 Mutator 交替运行的,因此不会长时间妨碍到 ...

Go 语言的内存管理机制概览

3月 9, 2021
Go, 内存管理

程序中的数据和变量在运行时会被分配到程序所在的虚拟内存中,内存空间包含两个重要的区域:堆(heap)和栈(stack),函数调用的参数、返回值以及局部变量大都会被分配到栈上,这部分内存由编译器进行管理 ...

Go 语言中的拷贝和传值

2月 25, 2021
Go

同很多其他语言如 Python、JavaScript 一样,在 Go 中涉及到复制数据的场景也需要注意深拷贝和浅拷贝的问题。 深拷贝和浅拷贝 # Go 的数据类型可以分为值类型和引用类型两种。值类型的变量和变量的数据都是 ...

操作系统的任务调度机制(三)调度器策略

2月 14, 2021
操作系统

操作系统中的调度器有任务调度、I/O 调度(以后再说)、内存调度(之前提到的换页策略)等多种类型,本文主要关注任务调度。在单核多进程并发的环境里,进程之间并不是“并行”执行的,实际上在任何时刻都只有一个 ...


© 2012-2024 YINDONGLIANG.COM