Linux内核 | 内核同步

1. 定义临界区和竞争条件临界区:访问和操作共享数据的代码段 竞争条件:多个执行线程在一个临界区同时执行死锁:每个线程都在互相等待,但它们永远也不会释放占用的资源。自死锁:一个执行线程试图去获取一个自己已经持有的锁,它不得不等待锁释放,但因为它忙于等待这个锁,所以自己永远也不会有机会释放释放锁。2. 设计规则以下简单规则避免死锁按顺序加锁防止发生饥饿不要重复请求一个锁设计简单-复杂加锁机制,越可能

- 阅读全文 -

嵌入式 | ARM中断异常

<div align=center></div> <div align=center></div> 异常优先级:<div align=center></div> ARM处理器的异常空间:<div align=center></div> 在所有异常的入口,IRQ 中

- 阅读全文 -

嵌入式 | ARM嵌入式微处理器概论

ARM内核是一种32位RISC微处理器,具有功耗低、性价比高、代码密度高等三大特色。ARM处理器具有RISC体系结构的典型特征,同时具有以下特点:在每条数据处理指令当中,都控制算术逻辑单元ALU和移位器,以使ALU和移位器获得最大的利用率。自动递增和自动递减的寻址模式,以优化程序中的循环。同时Load和Store多条指令,以增加数据吞吐量;所有指令都可以条件执行,以增大执行吞吐量。 各版

- 阅读全文 -

爬坑 | centos7生成ssl数字证书

1.查看是否安装httpd和SSL(如果有就可以进行下一步)$ rpm -qa | grep httpd httpd-tools-2.4.6-80.el7.centos.1.x86_64 httpd-2.4.6-80.el7.centos.1.x86_64 $ rpm -qa | grep ssl openssl-1.0.2k-12.el7.x86_64 python-backports-s

- 阅读全文 -

机器学习 | 线性回归模型拟合bodyfat数据代码实现及泛化误差评估

线性回归模型来拟合bodyfat数据,数据集介绍可阅读:https://www.mathworks.com/help/nnet/examples/body-fat-estimation.html在matlab中,在命令行中输入[X,Y] = bodyfat_dataset; 即可获得一个拥有13个属性,252个样本的数据集。使用前200个样本来获得模型,并写出你所获得的模型。使用后52个样本做测试

- 阅读全文 -

机器学习 | 简单数据拟合及实现 实践篇

数据X=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]Y=[2.94,4.53,5.96,7.88,9.02,10.94,12.14,13.96,14.74,16.68,17.79,19.67,21.20,22.07,23.75,25.22,27.17,28.84,29.84,31.78]拟合直线图<div align=center&

- 阅读全文 -

汇编 | 寄存器篇

8086CPU内存中字的存储:CPU中,用16位寄存器来存储一个字,高8位存放高位字节,低8位存放低位字节。在内存中存储时,由于内存单元是字节单元,一个字要用两个地址连续的内存单元来存放。字的低位字节存在低位地址单元中,字的高位字节存在高位地址单元。起始地址(低位)为N,则为N地址字单元。CPU中DS寄存器通常用来存放要访问数据的段地址。 如下几种形式:mov 寄存器,数据 mov 寄存器,寄存器

- 阅读全文 -