浅谈用户态和内核态以及系统调用 前言  为了保证操作系统的强隔离性,设计者实现了“supervisor mode” 和 “虚拟内存”,来保证进程之间互相隔离。   我们可以认为user/kernel mode是分隔用户空间和内核空间的边界,用户空间运行的程序运行在user mode,内核空间的程序运行在kernel mode。操作系统位于内 2021-10-03 Operate System MIT6.S081
进程和线程的区别 前言 一般来说,很多人都是认为进程跟线程的区别是这样的。进程是资源分配的基本单位,线程是CPU调度的基本单位。 虽然,这个说法没什么错。可是实际上,在Linux / Unix这样的操作系统中,进程和线程之间的区别并没有想像中那么大。他们都是用同一种结构体进行描述的,并且创建进程和线程所使用的函数或者说创建进程线程的过程非常类似。 所以说,我们其实可以认为,进程 2021-10-03 Operate System
why B+ tree? 数据库的索引,我想都并不陌生,简单来说,索引的出现就是为了帮助更快的进行查询。索引就像书的目录一样,帮助你快速定位想要的章节所在的地方。 索引能用的数据结构有很多,hash,有序数组,二叉树平衡树,红黑树,B树,B+树……但是为什么innodb引擎,最后选择B+树作为索引?下面我们来聊聊索引的各种优缺点 Hash索引 索引 - 记录所在的位置,实质上很像很像一种 K-V 2021-10-02 数据库 MySQL
浅谈数据库的锁(一) 全局锁和表锁 — server层全局锁 顾名思义,全局锁就是给整个数据库实例进行加锁。命令是Flush tables with read lock。 当需要整个数据库进入只读状态时,就用这个命令。一般来说,只有全局备份才会使用这个命令,但即使是做全局备份,我也不推荐使用这个锁。 因为对全局加锁,带来的坏处很多很多。 对全局进行加锁,那么基本上所有操作都会被阻塞,通常情 2021-10-02 数据库 MySQL