原子操作 C语言可以嵌入汇编 中断控制 原子操作只适合于单体变量 自旋锁 控制中断只能控制本地 CPU 的中断,无法控制其它 CPU 核心的中断。 必须保证读取锁变量和判断并加锁的操作是原子执行的,由硬件解决。x86 CPU 给我们提供了一个原子交换指令,xchg,它可以让寄存器里的一个值跟内存空间中的一个值做交换。 在中断处理程序访问某个自旋锁保…
实在是不习惯在vim界面写代码了 打开这个 ip填云端第一个(我的是47开头的) 免密:把公钥id_rsa.pub的内容追加到服务器/home/xxx(用户名)/.ssh/authorized_keys文件里
CPU 大多数时间在执行相同的指令或者与此相邻的指令。这就是大名鼎鼎的程序局部性原理。 内存相比 CPU 的数据吞吐量要慢上几个数量级。再加上多核心 CPU 同时访问内存,会导致总线争用问题,数据吞吐量会进一步下降。 x86 CPU的Cache结构图 CPU 只能够到内存
虚拟地址转换物理地址 把虚拟地址空间和物理地址空间都分成同等大小的块,也称为页,按照虚拟页和物理页进行转换。根据软件配置不同,这个页的大小可以设置为 4KB、2MB、4MB、1GB,这样就进入了现代内存管理模式 ———— 分页模型。 CPU 地址转换图 MMU页表原理图 第一个位段索引顶级页目录中一个项,该项指向一个中级页目录,然后用第二个位段去索…
报错如下 Missing separate debuginfos, use: debuginfo-install glibc-2.17-326.el7_9.x86_64 libgcc-4.8.5-44.el7.x86_64 libstdc++-4.8.5-44.el7.x86_64 阿里云的centos机器和镜像都没有提供debuginfo的源,而…
第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等 移动光标的方法 h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移动一个字符 k 或 向上箭头键(↑) 光标向上移动一个字符 l 或 向右箭头键(→) 光标向右移动一个字符 如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮…
实模式 一个方面是运行真实的指令,对指令的动作不作区分,直接执行指令的真实功能,另一方面是发往内存的地址是真实的,对任何地址不加限制地发往内存。 实模式寄存器 每个寄存器都是 16 位的。 实模式下访问内存 代码段是由 CS 和 IP 确定的,而栈段是由 SS 和 SP 段确定的。 实模式中断 第一种情况是,中断控制器给 CPU 发送了一个电子信号…
/etc/vimrc 最后两行加上 set tabstop=4 set nu
centos7。在分组的地方搜了下资料 新建用户组 groupadd groupname 改变用户的主要组 usermod -g usergroup username 在root下解压文件 tar zxvf /home/wsm/project.tgz 把普通用户目录授权给普通用户 chmon -R wsm:dba /project
OMG! 这次有点颠覆我以前的认知了。我以前有点无脑吹Linux,认为Windows就是比Linux差。 Linux内核 宏内核。这意味着效率高、但是耦合也高 有五大模块:系统、进程、内存、缓存、网络。 Darwin-XNU 内核 苹果公司的产品。 Darwin是两个内核:Mach(微内核)+ BSD(巨内核) Darwin的API => M…