在ARM体系中,通常有3种方式控制处理器的流程
1:在正常执行过程中,每执行一条ARM指令,程序计数器寄存器PC的值加四个字节,在每执行一条Thumb指令,程序计数器寄存器PC的值加两个字节,整个过程是按照顺序执行的
2:通过跳转指令,程序可以跳转到指定的地址标号进行执行,或者跳转到特定的...
分类:
其他好文 时间:
2014-05-17 05:03:56
阅读次数:
313
内存管理是内核最复杂同时也是最重要的一部。其特点在于非常需要处理器和内核之间的协作。首先内存划分为结点,在内核中表示为pg_data_t,每个结点划分为内存域。 以下的所有数据结构或代码都做了不同程度的精减,一方面是为了保留相关代码,除去细枝末叶,另一方面是为了美观。 结点的数据结构为typedef...
分类:
系统相关 时间:
2014-05-17 04:52:23
阅读次数:
422
ARM指令集可以分为6类,即是跳转指令,数据处理指令,程序状态传输指令,Load、Store指令,协处理器指令和异常中断指令跳转指令:在ARM中有两种方式可以实现程序的跳转,一种是跳转指令,另一种是直接向PC寄存器写入目标地址的值通过直接向PC寄存器写入目标寄存器的数字可以实现在4GB
地址空间的任...
分类:
其他好文 时间:
2014-05-16 03:26:38
阅读次数:
286
简介
Dalvik是Google公司自己设计用于Android平台的Java虚拟机。
Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为 .dex(即Dalvik Executable)格式的Java应用程序的运行
.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
Dalvik虚拟机既不支持...
分类:
其他好文 时间:
2014-05-15 23:09:37
阅读次数:
486
在“实地址模式”中,IRET 指令执行到中断程序或过程的远返回。在执行此操作的过程中,处理器从堆栈将返回指令指针、返回代码段选择器以及 EFLAGS 映像分别弹入 EIP、CS 以及 EFLAGS 寄存器,然后恢复执行中断的程序或过程。
在“保护模式”中,IRET 指令的操作取决于以下因素:EFLAGS 寄存器中 NT(嵌套任务)与 VM 标志的设置,以及当前堆栈中存储的 EFLAGS 映像...
分类:
其他好文 时间:
2014-05-15 15:08:25
阅读次数:
339
异步编程(Asynchronous Programming)
异步编程与我们所看过的其他并行编程形式有一些不同,讨论的其他主题可以有大量的线程并行运行,可以完全利用系统中可用的处理器;而在异步编程中,需要避免阻塞线程,我们在这一章的第一节“线程、内存、锁定和阻塞”中已经对阻塞线程的概念有所了解了。阻塞的线程是不能工作的线程,因为它需要等待其他任务的完成;线程等待的通常任务是操作系统执行的输...
分类:
其他好文 时间:
2014-05-15 12:23:35
阅读次数:
354
一、高级优化
上篇主要从初级优化的方式,本篇主要将从程序运行性能的角度出发,分析各种常用方案的不足,并给出对象池技术、基础数据类型替换法、屏蔽函数计算三种能够节省资源开销和处理器时间的优化策略。
目前普遍采用的优化方案有:
·
优化循环,通过重新组织重复的子表达式来提高循环体的运行性能
·
减少使用对象的数量来提高运行性能
·
缩减网络传输数据来缩短等待时间等
本篇学习另外三种...
分类:
移动开发 时间:
2014-05-15 08:01:28
阅读次数:
322
很多开发者在听到术语'事件处理'时就会想到GUI:点击一下某个按钮,相关联的功能就会被执行。 点击本身就是事件,而功能就是相对应的事件处理器。
这一模式的使用当然不仅限于GUI。 一般情况下,任意对象都可以调用基于特定事件的专门函数。 本章所介绍的 Boost.Signals 库提供了一个简单的方法在 C++ 中应用这一模式。
严格来说,Boost.Function 库也可以用于事件处理。 不过,Boost.Function 和 Boost.Signals 之间的一个主要区别在于,Boost.Signa...
分类:
其他好文 时间:
2014-05-14 15:17:13
阅读次数:
277
1.特权级
1.1特权级
处理器段保护机制可以识别0-3共...
分类:
其他好文 时间:
2014-05-14 14:25:50
阅读次数:
705