殷东亮的博客

操作系统的任务调度机制(一)演进历史

2月 5, 2021
操作系统

之前说到了 Goroutine 的运行时调度机制,引发了我对操作系统调度的进一步回忆,发现已经非常模糊,只能从头再来。在很多大型系统中,包括编程语言,都有调度器的概念,其核心的作用都是对有限的处理器资源进行最大化利用。具 ...

使用 DOSBox 和 Debug 命令调试汇编程序

1月 24, 2021
Tools, Compiler, 操作系统

正在看王爽的《汇编语言》,因为我在 Mac M1 环境,按书上做汇编实验的话,搜索了一圈发现 DOSBox 应该可以满足我的需要,它是一个跨平台的可以运行 MS-DOS 的模拟器。 DOSBox # 下载地址 https://www.dosbox.com/ 这个模拟器应该是被一些老玩家拿来玩上世纪 80 年代 ...

汇编语言不会编?

1月 21, 2021
Compiler, 操作系统

上篇已经介绍了 CPU 的寄存器种类,知道了程序是由指令和数据组成的,以及 CPU 是如何通过寄存器运行程序的,那么现在可以真正了解下汇编指令集了。 前提须知 # 因为不同 CPU 架构的指令集都不尽相同,汇编语言通常不具有可移植 ...

CPU 与寄存器

1月 2, 2021
操作系统, Compiler

看 Go 语言的调度器相关内容的时候里面很多内存堆栈、寄存器的概念,一开始没怎么看懂,需要先回来复习下相关的基础知识,早知道大学就好好学了。 前提须知 # 下面的内容都以 16 位的 8086CPU 的情况为准。 通常写一条汇编指令或一 ...

Go 语言的 MPG 并发调度模型

12月 21, 2020
Go, 源码分析, 数据结构, 系统设计

Golang 的高并发能力是通过协程 goroutine 实现的,在 Go 语言的开发中,每涉及到 goroutine 的相关功能实现时,都会意识到自己需要对 MPG 的模型有一个大概的了解,在此基础上才能做好开发上的决策,本篇也即为 MPG 并发调度模型的学习笔记了。 进程 ...

Go 语言的 Context 源码分析

11月 24, 2020
Go, 源码分析, 数据结构

研究 Context 的源码,有助于对结合运用 interface 和 struct 的理解,以及对其他三方框架对 Context 接口的重新实现也能有一定认识,在实际开发中更是非常有帮助。Context 的源码非常短小,加上大概一半的注释整个文件也才 500 行,500 行就 ...

Go 语言中 Channel 的实现

11月 6, 2020
Go, 源码分析, 数据结构

关于 Go 并发设计的哲学中,最常见的一句话就是:不要通过共享内存的方式进行通信,而是应该通过通信的方式共享内存1。Go 语言采用 CSP(Communicating sequential processes)并发模型,底层运用 Channel 实 ...

权限系统通用的设计模型

10月 29, 2020
系统设计

权限系统是一个比较通用的系统,几乎所有的后台业务都会涉及到,关于权限系统的设计经过一些最佳实践也已经被总结成各种模型,比如 ACL、RBAC、ABAC、PBAC等,下面开始详细介绍。 基本概念 # 在很多权限 ...


© 2012-2024 YINDONGLIANG.COM