Linux系统
天健园扛把子
兴趣遍地都是,专注和持之以恒才是真正稀缺的。
展开
-
深入理解CPU上下文切换
CPU上下文切换 CPU 寄存器,是 CPU 内置的容量小、但速度极快的内存。而程序计数器,则是用来存储 CPU 正在执行的指令位置、或者即将执行的下一条指令位置。它们都是 CPU 在运行任何任 务前,必须的依赖环境,因此也被叫做 CPU 上下文**。** CPU 上下文切换,就是先把前一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程...原创 2019-05-21 22:08:28 · 597 阅读 · 0 评论 -
malloc实现过程
前言 最近重温深入理解计算机系统,看到了malloc的实现,malloc主要涉及到两个系统调用brk和mmap.废话不多说直接上源码,一切尽在源码之中。 brk系统调用的入口函数为sys_brk() sys_brk系统调用源码 SYSCALL_DEFINE1(brk, unsigned long, brk) { unsigned long retval; unsigned long...原创 2019-07-01 14:39:10 · 625 阅读 · 0 评论 -
锁的实现机制
在多线程编程中,为了保证数据操作的一致性,操作系统引入了锁机制,用于保证临界区代码的安全。通过锁机制,能够保证在多核多线程环境中,在某一个时间点上,只能有一个线程进入临界区代码,从而保证临界区中操作数据的一致性。 所谓的锁,说白了就是内存中的一个整型数,拥有两种状态:空闲状态和上锁状态。加锁时,判断锁是否空闲,如果空闲,修改为上锁状态,返回成功;如果已经上锁,则返回失败。解锁时,则把锁状态修改为空...原创 2019-07-03 17:21:23 · 777 阅读 · 1 评论