在操作系统中可以有不同的方法实现状态机。然而,与操作系统或其制作者无关的一些基本原则却必须得 到遵守。
状态机,不管它是微或宏状态机,在前述的操作系统层次模型中必须接在命令解释器之后而在命令实际执 行之前。状态机的任务是断定所接受的命令是否可以目前的状态执行,它在一个表的基础上来做此事,这里 的一个基本原则就像它通常对于智能卡那样,是使用尽可能少的存储量去提供状态信息。此外,这些信息必 须构造成使状态机本身也能用尽量少的存储量来构成。
状态机需要一定数量的信息来分析存储在I/0缓存器中的命令。图1所示为一智能卡状态表的可能的设计。
图1 状态机所需数据元的数据结构之例
第1个数据元(初始状态)含有要去处理的状态的其余部分的数据结构,一个编号可位于此处以直接定义其中可应用的所有其他信息。接着来到一个子表,它鉴别在初始状态下允许的所有命令,它必须能在每一个这样的子表中去识别单条命令,一组命令,所有命令或无命令。
相关于一命令的允许参数在表的结构中接在命令定义之后,它必须能够规定这些数据元中的参数的单项值或范围。例如,如果READ BINARY命令的编码是在命令字段中,Pl和P2参数字段则含有对透明数据读出时的和区距值,而参数字段可含有长度的短和长限度二者。由于对于任一状态在子表中可以有多个条目,这样就有可能接在READ BINARY命令之后定义其他的命令和它们的参数。
表的登录结束于新状态,它假定为命令成功执行的结果,这就是说命令的执行被毫无问题地完成了。示例表中的数据结构也允许规定一种状态,即假定为出现了差错的情况。为了在状态机中保持高度的灵活性,必须有可能规定后继的状态或者是的或者是肯定的或否定的相对状态。在这里的情况下,“相对”的意义是新状态的设置是在初始状态值加上或减去某值,而“”贝刂意味着新状态之值是直接设置的,不需要使用初始状态之值。
原理上,对状态机如何构造是没有限制的。此处描述的数据结构非常适用于一个比较复杂的操作系统。用所述的数据结构和一台适当的状态机,完全可以再现智能卡中每一个可能的状态图。当然,个别文件也具有它们本身的作为命令访问条件形式的补充保护,以防止未授权的读出或写入。无论如何,对命令的进程控制能提供一个另外的高水平机制补充了这一面向对象的保护,从而增加了系统的安全性。这确实是在智能卡中使用状态机的主要好处。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。