自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

转载 内存管理算法:Buddy 算法

buddy system简介:buddy system内存管理,努力让内存分配与相邻内存合并能快速进行(对于普通算法来讲,合并内存相当困难),它利用的是计算机擅长处理2的幂运算。我们创建一系列空闲块列表,每一种都是2的倍数。举个例子,如果最小分配单元是8字节,整个内存空间有1M。我们创建8字节内存块链表,16字节内存块链表,32字节内存块链表,64,128,256,512,1k,2K, 4K...

2019-01-13 21:29:56 463

原创 !和~的区别(逻辑取反和按位取反)

在c语言中! 代表逻辑取反,即把所有非0的数值(相当于1)变为0,0变为1;~ 表示按位取反,即在数值的二进制表示方式上,将0变为1,将1变为0;针对逻辑运算与按位运算区别如下:针对这个问题,有一个经典的题目:int x=3; do { printf(" %d\n",x -=2);}while(!(–x));则上面的程序段,以下哪个选项正确( )A.输出的是1B.输出的是1和-...

2019-01-12 21:36:20 17685 4

转载 信号量、互斥量、读写锁、条件变量的区别

信号量强调的是线程(或进程)间的同步:“信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在sem_wait的时候,就阻塞在那里)。当信号量为单值信号量是,也可以完成一个资源的互斥访问。有名信号量:可以用于不同进程间或多线程间的互斥与同步  创建打开有名信号量  sem_t *sem_open(c...

2019-01-11 11:57:21 412

原创 STM32启动流程

先阐述一个问题,嵌入式应用程序以C语言为主,因此main函数成为了程序运行起点。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?答案是“启动文件”,用英文单词来描述是“Bootloader”。下面进入正题:STM32又是如何启动的呢?STM32芯片自带的启动方式有3种,通过设置BOOT1、BOOT0的引脚的高低电平即可选择。主闪存启动是将程序下...

2019-01-10 17:55:27 2862

原创 PC机启动流程。PC如何从上电进入到操作系统?

固件的初始化,尝试启动CPU电源刚接通后,处理器处于实模式(real mode)并且禁止了内存分页机制,且只有1MB的可用存储地址空间。启动时寄存器的初始化,保存着CPU执行指令地址的地址寄存器(EIP)指向的是0xFFFFFFF0(4GB存储空间的最后16字节),这个地址被称为reset vector,是一条到BIOS程序入口的跳转指令。执行BIOS程序,进行通电自检(Power-...

2019-01-10 17:44:30 3323

原创 Linux进程管理、调度和系统调用

Linux 进程的系统调用:sys-fork:完整派生sys_clone:通过参数复制资源sys_vfork:复制 task_struct ,其他共享,阻塞父进程结构流程图如下:Linux进程管理和调度执行完进程的调用后,下面来看看进程的管理和调度一张图带你看懂 Linux 进程管理和调度的整个过程:(流程线上面的函数名就是内核里面相应执行过程的代码段)Linux 进程销毁...

2019-01-09 15:14:05 922

原创 error: failed to push some refs to 'https://github.com/xxxx.git' 解决办法

三种方法:推荐第二种比较安全1: 进行push前先将远程仓库pull到本地仓库$ git pull origin master $ git push -u origin master2: 强制push本地仓库到远程 (这种情况不会进行merge, 强制push后远程文件可能会丢失 不建议使用此方法)$ git push -u origin master -f3: 避开解决冲突,...

2019-01-04 15:38:15 552

原创 git 重命名文件的提交

git 如果重命名文件算删除一个旧文件添加一个新文件比如我在 git 仓库中, mv readme.txt readme.md在 git add 、commit 、push 时候,都要把 readme.txt 的这个删除动作记录进去了,git rm readme.txtgit commit git push如果只把 readme.md 的改变提交上去,到最后会发现 github 上...

2019-01-04 15:33:50 2741

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除