|
我说一下我的理解。% z) T' p, O; K" ]
1 S- Y$ K3 R- l t' ^' Y
以前PALM分为ROM和RAM) U* h( U, i8 X
操作系统存放在ROM中(硬启时加载到RAM),程序和运行时分配的堆内存在放在RAM中。 i" u. @* P; o) M1 h
应用程序访问数据DB(后缀是pdb的文件)的记录,程序中分配的临时内存,都是访问RAM。
. c! @$ ~% L9 \但是这样如果没充电,导致PDA没电了,放在RAM的内容就会丢失,导致用户信息丢失。
, j6 }$ A o. ?
7 a: t; C; E7 y4 e: `在后来的PALM的版本、为了保证数据不丢失,将程序和数据DB存放在可读写的闪存中。5 P1 i/ O) z2 J
但是为了保证程序的兼容,和提高程序的速度,PALM机器还是有一部分RAM,用于将程序和DB文件. S& D. H7 U7 U. L+ _3 W, U
加载到这部分RAM中,程序就能和以前一样在RAM中访问数据,接口不变。也保证效率。7 n5 C) x+ g2 H( z' c/ c3 O
数据修改后,就从RAM中写回闪存。所以程序和数据实际上时存在闪存里的,掉电不会丢失。
& ?8 B3 b6 |! `这部分RAM就是所谓的DBCache
9 D( I' v1 F2 p! _, d( F# h
2 C, X4 m$ y+ _. g: x7 `而程序运行时分配的临时内存(堆内存)是和这部分是分开的。
/ b- D" D1 g: s7 Q* G" _5 c8 h p! y. E7 E% q+ ?( s7 d
重启时,因为可能没数据的变化没写回闪存,会导致部分数据丢失。 |
|