- 博客(10)
- 收藏
- 关注
原创 Linux进程、线程与调度(二)
Linux内核的调度算法基于`task_struct`结构体进行调度决策。不同的进程创建方式在资源管理和性能方面有着显著差异。由于`fork()`引入了写时拷贝技术并明确子进程优先执行,`vfork()`的优势仅限于不拷贝父进程的页表项`mm_struct`。`vfork()`系统调用通过向`clone()`传递特殊标志实现。**vfork执行流程**:- 父进程先休眠- 等待子进程执行完成- 唤醒父进程**设计优势**:- 子进程与父进程共享地址空间(只读)
2025-11-25 23:33:14
666
原创 深入理解Linux内核原理
在计算机技术领域,对Linux操作系统内核的深入理解常被视为从业者的"内功",它决定了技术视野的广度与深度。然而,Linux内核的复杂性和陡峭的学习曲线,往往让学习者在探索过程中产生"管中窥豹"之感,难以把握整体脉络。为此,除了基础概念的梳理,本系列还将结合实际案例和实现细节,帮助读者达到"知其所以然"的深度理解。因此,我尝试通过本系列文章,提炼出Linux内核中的"常识性"知识点,旨在为云计算领域的工程师提供一套实用、够用的知识框架,并通过快速实践的方式保持知识的时效性。建立系统性的内核知识框架。
2025-11-25 22:31:11
363
原创 docker容器运行时挂盘
传统的虚拟机领域,空间不够时,再挂载一块磁盘上去是很常见的需求,但是如果想要在容器运行时挂载一块盘,却并非是一件易事,本文将介绍容器挂盘相关知识,以及运行时挂盘的问题所在,并给出解决方案。
2024-08-19 16:51:46
622
原创 Kubernetes client-go源码走读
Reflector的职责很清晰,要做的事情就是保持DeltaFIFO中的items持续更新,具体实现是通过ListerWatcher提供的list-watch能力来列选指定类型的资源,产生一系列Sync事件,通过ResourceVersion来开启监听过程,监听到新的事件后,会和前面提到的Sync事件一样,通过DeltaFIFO提供的方法构造相应的DeltaType到DeltaFIFO中。监听到更新事件时,也不是直接修改DeltaFIFO中已经存在的元素,而是添加一个新的DeltaType到队列。
2024-07-06 12:00:42
1053
6
原创 Golang 切片slice源码走读
本文是对Golang Slice的关键源码进行走读,并记录使用时容易犯的一些错误。示例可能来源于网络,对应的Golang版本是1.21.9,仅供个人学习使用。
2024-07-06 11:53:40
458
原创 Golang 上下文context源码走读
本文是对Goroutine context的关键源码进行走读,并记录使用时容易犯的一些错误。示例可能来源于网络、各类书籍,对应的Golang版本是1.21.9,仅供个人学习使用。
2024-07-06 11:45:39
1836
原创 Golang 通道channel源码走读
本文是对Golang channel的关键源码进行走读,并记录使用时容易犯的一些错误。示例可能来源于网络,对应的Golang版本是1.21.9,仅供个人学习使用。
2024-07-06 11:34:37
2115
原创 一文说清楚分布式限流
本文介绍了分布式限流的需求、常用限流算法(如固定窗口、滑动窗口、漏桶、令牌桶)、业界方案(如基于Redis+Lua、分片式限流等),以及分布式限流方案的实现原理和比较。业务级限流是保护高并发系统稳定性的重要手段。常用限流算法包括固定窗口、滑动窗口、漏桶、令牌桶,它们的适用场景以及不足之处。分布式限流可基于Redis+Lua实现多种限流算法的集中式并发控制,也可采用分片式并发控制的策略。
2024-07-05 10:04:11
2010
原创 读书笔记---《理解Unix进程》
1、 系统调用Unix系统内核位于计算机硬件之上,它是与硬件交互的中介。程序不可以直接访问内核,所有的通信都是通过系统调用来完成的。系统调用为内核和用户空间搭建了桥梁。它规定了程序与计算机硬件之间所允许的一切交互。系统调用允许用户空间程序通过内核间接地与计算机硬件进行交互。节1:一般命令节2:系统调用节3:C库函数节4:特殊文件进程乃Un
2013-12-27 12:16:13
895
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅