操作系统学习-02-07-float 为什么 0.1 + 0.2 不等于 0.3 ?
我们来思考几个问题:
为什么负数要用补码表示?
十进制小数怎么转成二进制?
计算机是怎么存小数的?
0.1 + 0.2 == 0.3 吗?
…
别看这些问题都看似简单,但是其实还是有点东西的这些问题。
为什么负数要用补码表示?
十进制转换二进制的方法相信大家都熟能生巧了,如果你说你还不知道,我觉得你还是太谦虚,可能你只是忘记了,即使你真的忘记了,不怕,贴心的小林在和你一起回忆一下...
2023-04-03 00:00:00 |
Linux
操作系统学习-02-06-软中断
中断是什么?
先来看看什么是中断?
在计算机中,中断是系统用来响应硬件设备请求的一种机制,操作系统收到硬件的中断请求,会打断正在执行的进程,然后调用内核中的中断处理程序来响应请求。
这样的解释可能过于学术了,容易云里雾里,我就举个生活中取外卖的例子。
小林中午搬完砖,肚子饿了,点了份白切鸡外卖,这次我带闪了,没有被某团大数据杀熟。虽然平台上会显示配送进度,但是我也不能一直傻傻地盯...
2023-04-03 00:00:00 |
Linux
操作系统学习-02-05-CPU 是如何执行任务的?
CPU 是如何执行任务的?
你清楚下面这几个问题吗?
有了内存,为什么还需要 CPU Cache?
CPU 是怎么读写数据的?
如何让 CPU 能读取数据更快一些?
CPU 伪共享是如何发生的?又该如何避免?
CPU 是如何调度任务的?如果你的任务对响应要求很高,你希望它总是能被先调度,这该怎...
2023-04-03 00:00:00 |
Linux
操作系统学习-02-04-CPU 缓存一致性
CPU Cache 的数据写入
随着时间的推移,CPU 和内存的访问性能相差越来越大,于是就在 CPU 内部嵌入了 CPU Cache(高速缓存),CPU Cache 离 CPU 核心相当近,因此它的访问速度是很快的,于是它充当了 CPU 与内存之间的缓存角色。
CPU Cache 通常分为三级缓存:L1 Cache、L2 Cache、L3 Cache,级别越低的离 CPU 核心越近...
2023-04-03 00:00:00 |
Linux
操作系统学习-02-03-如何写出让 CPU 跑得更快的代码?
如何写出让 CPU 跑得更快的代码?
代码都是由 CPU 跑起来的,我们代码写的好与坏就决定了 CPU 的执行效率,特别是在编写计算密集型的程序,更要注重 CPU 的执行效率,否则将会大大影响系统性能。
CPU 内部嵌入了 CPU Cache(高速缓存),它的存储容量很小,但是离 CPU 核心很近,所以缓存的读写速度是极快的,那么如果 CPU 运算时,直接从 CPU Cache 读取数据...
2023-04-03 00:00:00 |
Linux
操作系统学习-02-02-磁盘比内存慢几万倍?
磁盘比内存慢几万倍?
大家如果想自己组装电脑的话,肯定需要购买一个 CPU,但是存储器方面的设备,分类比较多,那我们肯定不能只买一种存储器,比如你除了要买内存,还要买硬盘,而针对硬盘我们还可以选择是固态硬盘还是机械硬盘。
相信大家都知道内存和硬盘都属于计算机的存储设备,断电后内存的数据是会丢失的,而硬盘则不会,因为硬盘是持久化存储设备,同时也是一个 I/O 设备。
但其实 CPU 内部...
2023-04-03 00:00:00 |
Linux
操作系统学习-02-CPU 是如何执行程序的?
CPU 是如何执行程序的?
代码写了那么多,你知道 a = 1 + 2 这条代码是怎么被 CPU 执行的吗?
软件用了那么多,你知道软件的 32 位和 64 位之间的区别吗?
再来 32 位的操作系统可以运行在 64 位的电脑上吗?64 位的操作系统可以运行在 32 位的电脑上吗?如果不行,原因是什么?
CPU 看了那么多,我们都知道 CPU 通常分为 32 位和 64 位,你知道 ...
2023-04-03 00:00:00 |
Linux
操作系统学习-01-概览
图解系统
图解系统不仅仅涉及了操作系统的内容,还涉及一些计算机组成和 Linux 命令的内容,
当然还是操作系统的内容占比较高,基本把操作系统进程管理、内存管理、文件系统、设备管理、网络系统这五大结构图解了,其中进程管理和网络系统这两个章节篇幅比较多,进程管理不仅包含了进程与线程的基本知识,还包含了进程间通信,多线程同步、死锁、悲观锁和乐观锁。
网络系统包含 I/O 多路复用、零拷贝、...
2023-04-03 00:00:00 |
Linux