| 摘要 | 第1-7页 |
| Abstract | 第7-8页 |
| 目录 | 第8-11页 |
| 第一章 引言 | 第11-15页 |
| ·研究背景 | 第11-12页 |
| ·研究课题 | 第12-13页 |
| ·研究现状 | 第13页 |
| ·论文结构安排 | 第13-15页 |
| 第二章 Android简介 | 第15-21页 |
| ·Android操作系统构架 | 第15页 |
| ·Android应用程序运行环境 | 第15-17页 |
| ·Android操作系统内存管理机制 | 第17-21页 |
| ·“关闭而不退出”的设计概念 | 第17-18页 |
| ·Linux内核层及系统运行库层的内存管理机制 | 第18-20页 |
| ·应用程序框架层的内存管理机制 | 第20-21页 |
| 第三章 形式化分析方案 | 第21-32页 |
| ·基本方法 | 第21-23页 |
| ·形式化规范(Formal specification) | 第21-22页 |
| ·形式化验证(Formal verification) | 第22-23页 |
| ·分析方案 | 第23-28页 |
| ·工作范围 | 第23页 |
| ·规范来源 | 第23-24页 |
| ·源代码来源 | 第24-26页 |
| ·技术路线 | 第26-28页 |
| ·所需知识 | 第28-32页 |
| ·Larch Shared Language | 第28-29页 |
| ·Java Modeling Language | 第29页 |
| ·A Verifier for Concurrent C | 第29页 |
| ·Communicating Sequential Process | 第29-32页 |
| 第四章 LSL形式化规范 | 第32-38页 |
| ·LSL的限制及解决方案 | 第32页 |
| ·关于程序中全局变量的抽象方法 | 第32页 |
| ·关于时序性质的抽象方法 | 第32页 |
| ·关于函数的抽象方法 | 第32页 |
| ·LSL形式化规范 | 第32-38页 |
| ·抽象进程优先级规范 | 第32-33页 |
| ·抽象进程规范 | 第33-34页 |
| ·抽象进程集合规范 | 第34-35页 |
| ·抽象ActvityManagerService规范 | 第35-36页 |
| ·抽象lowmemorykiller规范 | 第36-38页 |
| 第五章 基于JML形式化规范的Java源代码验证 | 第38-53页 |
| ·抽取变量及函数定义 | 第38-39页 |
| ·将LSL规范转换为JML规范 | 第39-44页 |
| ·关于Collection类型的处理 | 第39-41页 |
| ·关于Iterator的处理 | 第41页 |
| ·关于enum类型的处理 | 第41-42页 |
| ·增加的主要JML规范 | 第42-44页 |
| ·验证出的问题 | 第44-53页 |
| ·除零异常 | 第44-45页 |
| ·关于Java synchronized(this)失效的问题 | 第45-48页 |
| ·关于内存回收方案选择的验证 | 第48页 |
| ·关于“按照优先级由低到高结束进程”的验证 | 第48-53页 |
| 第六章 基于VCC形式化规范的C源代码验证 | 第53-61页 |
| ·抽取变量及函数定义 | 第53-54页 |
| ·将LSL规范转换为VCC规范 | 第54-57页 |
| ·关于锁相关函数的处理 | 第54-55页 |
| ·关于for_each_process的处理 | 第55页 |
| ·关于lowmem_print()等函数的处理 | 第55-56页 |
| ·增加的主要VCC规范 | 第56-57页 |
| ·验证出的问题 | 第57-61页 |
| ·数据溢出 | 第57-59页 |
| ·关于low memory killer算法失效的问题 | 第59-61页 |
| 第七章 基于CSP模型的系统性质验证 | 第61-71页 |
| ·形式化建模 | 第61-67页 |
| ·操作系统内存模型 | 第61-62页 |
| ·DVM内存模型 | 第62页 |
| ·进程模型 | 第62-65页 |
| ·操作系统模型 | 第65-66页 |
| ·Low memory killer算法模型 | 第66页 |
| ·Out of memory killer算法模型 | 第66-67页 |
| ·PAT中的性质验证 | 第67-71页 |
| ·系统进程及系统核心服务进程永远不会被释放[假] | 第67-68页 |
| ·系统进程及系统核心服务进程永远不会被强制终止[假] | 第68页 |
| ·系统保留进程常驻内存[真] | 第68-69页 |
| ·low memory killer算法对用户交互进程无影响[假] | 第69页 |
| ·low memory killer算法对未选中的进程无影响[假] | 第69-71页 |
| 第八章 总结与展望 | 第71-73页 |
| ·总结 | 第71-72页 |
| ·展望 | 第72-73页 |
| 附录A lowmemorykiller.c文件 | 第73-76页 |
| 附录B vccInclude.h文件 | 第76-78页 |
| 参考文献 | 第78-81页 |
| 致谢 | 第81-83页 |
| 攻读硕士学位期间发表论文和科研情况 | 第83页 |