- 博客(7)
- 收藏
- 关注
原创 buffer和FIFO的区别
1.FIFO可以说一块具体的硬件存储设备,也可以说程序在内存中开辟的一段内存区域。而buffer往往就是一段缓冲的数据区域2.FIFO的数据是先进先出的,而buffer没有这个限制,可以全局访问3.buffer往往就是一段累积的存储空间,而fifo有时候还可以帮助系统解决时钟域不同步或者数据宽度不一样的情况
2015-05-18 15:53:30 9898
原创 美其名曰的IOS自动内存管理
IOS中没有内存管理机制,需要开发者手动管理内存,虽然有ARC(Apple提出的自动释放内存),但并不是真正意义的自动释放,它与java里面的纯自动释放内存还不一样,其本质还是C语言式的手动释放内存,只是稍微增加了点自动的功能,ios还是将内存管理的任务交给了开发者。 OC与C虽然都是手动释放内存,但是还是有所不同,C直接调用free函数来释放内存,而OC并不直接调用dealloc来释放
2015-05-18 13:08:04 511
原创 MRR && ARC
内存管理是任何编程语言中最重要的过程之一。它是一个过程,通过该对象的内存时,需要时分配,当不再需要时释放。管理对象的内存性能是一个问题,如果一个应用程序没有免费的不需要的对象,其内存占用量的增长和性能将受到影响。Objective-C的内存管理技术大致可分为两类。“手动保留释放”或MRR“自动引用计数”或ARC“手动保留释放”或MRR在 MR
2015-05-18 10:03:16 652
原创 OC内存管理总结(一)
iPhone系统中的Objective-C的内存管理机制是比较灵活的,即可以拿来像C/C++一样用,也可以加个AutoreleasePool让它升级为半自动化的内存管理语言。当然,也不能拿JAVA虚拟机中的全自动化GC来比?引用计数是实例对象的内存回收唯一参考引用计数(retainCount)是Objective-C管理对象引用的唯一依据。调用实例的release方法后,此属性减一
2015-05-18 09:53:13 520
转载 栈指针与帧指针详谈
在Linux内核程序boot/head.s执行完基本初始化操作之后,就会跳转去执行init/main.c程序。那么head.s程序是如何把执行控制转交给init/main.c程序的呢?即汇编程序是如何调用执行C语言程序的?这里我们首先描述一下C函数的调用机制、控制权传递方式,然后说明head.s程序跳转到C程序的方法。函数调用操作包括从一块代码到另一块代码之间的双向数据传递和执行控制转移。
2015-05-15 13:54:04 7216
原创 经典的重定位代码
远程线程的代码重定位:就是修正函数、变量的地址使它们能在新的进程(线程)中正常调用.常用方法是使用偏移量,使这些地址用[偏移量+变量名]的形式来表现。用函数时,参数要用到全局变量的时候,要先lea出地址来; 取偏移量方法 ---------------------------------------------------- call @vstart @vstar
2015-05-15 13:41:03 2470
转载 什么是编译器的重定位?
重定位是连接符号引用与符号定义的过程。例如,程序调用函数时,关联的调用指令必须在执行时将控制权转移到正确的目标地址。可重定位文件必须包含说明如何修改其节内容的信息。通过此信息,可执行文件和共享目标文件可包含进程的程序映像的正确信息。重定位项即是这些数据。重定位项可具有以下结构。请参见 sys/elf.h。typedef struct { Elf32_Addr
2015-05-15 13:34:51 2123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人