摘要: 进程都希望自己能够占用 CPU 进行工作,那么这涉及到前面说过的进程上下文切换。 一旦操作系统把进程切换到运行状态,也就意味着该进程占用着 CPU 在执行,但是当操作系统把进程切换到其他状态时,那就不能在 CPU 中执行了,于是操作系统会选择下一个要运行的进程。 选择一个进程运行这一功能是在操作系统 阅读全文
posted @ 2022-08-21 21:47 小申同学 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 内核的缘由 计算机是由各种外部硬件设备组成的,比如内存、cpu、硬盘等,如果每个应用都要和这些硬件设备对接通信协议,那这样太累了,所以这个中间人就由内核来负责,让内核作为应用连接硬件设备的桥梁,应用程序只需关心与内核交互,不用关心硬件的细节。 现代操作系统,内核一般会提供 4 个基本能力: 管理进程 阅读全文
posted @ 2022-08-21 19:12 小申同学 阅读(55) 评论(0) 推荐(0) 编辑
摘要: CPU 的高速缓存,通常可以分为 L1、L2、L3 这样的三层高速缓存,也称为一级缓存、二级缓存、三级缓存。 在 Linux 系统,我们可以通过这条命令,查看 CPU 里的 L1 Cache 「数据」缓存的容量大小: $ cat /sys/devices/system/cpu/cpu0/cache/ 阅读全文
posted @ 2022-08-21 16:20 小申同学 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 数据和指令是分开区域存放的,存放指令区域的地方称为「正文段」 编译器会把 a = 1 + 2 翻译成 4 条指令,存放到正文段中。如图,这 4 条指令被存放到了 0x200 ~ 0x20c 的区域中: 0x200 的内容是 load 指令将 0x100 地址中的数据 1 装入到寄存器 R0; 0x2 阅读全文
posted @ 2022-08-21 10:39 小申同学 阅读(49) 评论(0) 推荐(0) 编辑