一种智能卡写保护机制的实现
加入镜像读写机制后,对存储区的读写流程如下:
本文引用地址:https://www.eepw.com.cn/article/266050.htm 卡片的一般写入流程如图1所示,图2为业务向文件中写重要数据时的写入流程。
业务应用中会有一些文件的写操作,其中有一些数据比较重要,需要确保数据写入的安全可靠。此时应用应该采用以下操作:
(1)设置镜像写保护标志位,此标志为全局变量。
(2)业务数据的写入,这些业务可能分若干次写入不同的文件。
(3)完成镜像保护。该操作由三个过程组成,首先清除写保护标志位,然后设置镜像数据恢复标志,最后提交镜像区数据将数据写入实际物理地址并清除镜像数据恢复标志。
应用在写操作1、写操作2和写操作3过程中随时可以放弃此次写操作,已经完成的写操作不会对系统产生任何影响。这种写操作的处理方法为系统实现事务回滚提供了基础。
卡片在上电后会检查镜像数据恢复标志,决定是否回写镜像区数据。
现分析卡片断电对系统的影响。
假设断电发生在写操作1和写操作2之间,重新上电检查镜像数据恢复标志后,没有数据需要恢复,系统对镜像区初始化后正常工作。虽然数据写入失败但是保证了业务数据的不会混乱。
如果断电发生在数据提交阶段,此时镜像数据恢复标志已经置位,重新上电后系统会重新提交,成功后清除标志并初始化镜像区。这样保证数据在断电情况下写入成功。
以上描述了镜像写及掉电后数据恢复的过程。考虑这种情况,在业务进行中,如果数据写了两次,还没有从镜像区提交到实际地址区,此时如果应用需要读取文件内容,该内容如果恰好在镜像区尚未提交,直接从对应物理地址读数则会产生错误。所以镜像机制还需要提供镜像读功能。
对于镜像读,根据目标数据的地址在数据读取分三种情况处理:
(1)数据全部都在实际地址,直接从目标地址读取数据。
(2)数据全部在镜像区,在镜像区读取数据。
(3)数据部分在镜像区,部分在实际地址。分别在不同位置读取数据。
为了分辨数据所处位置,需要遍历表2中所定义的写保护管理表。
以上讨论了镜像读写的实现机制。下面说明加入该机制对系统性能的影响。
评论