把数据传送到或传送自终端的整个过程是由I/0管理器处理的,操作系统核心中的两个与硬件无关的程序例 程称为Kemel_IO_SendByte和Kernel_IO_ReceiveByte形成了传输和接收信息的基础。对于Small-OS来说,所 有I/0程序代码的其他部分都是与目标硬件相独立的。不论是成功和非成功的命令处理,在两种情况下,ATR 和T=1传输协议都完全在I/0管理器中执行。为此开发了一个专用的状态机,以处理T=1协议的比较复杂的过 程。ISO/IEC 7816-3 Amd1标准中用许多例子说明了I/0管理器在成功和失败的两种情况下的反应。对于人工 优化的汇编代码,一个良好的1/0管理器至少需要1KB的存储量,它们通常位于ROM中。
真正的I/0管理器都宁可只选择RAM作为I/0缓冲器,因为对RAM的写访问可以使用CPU的全速进行。然而,现在有许多智能卡操作系统的传输与接收缓存器比可用的RAM量还要大。在这种情况下,当数据量超过某个阈值之后,EEPROM的相当部分被用作数据传输缓存器的扩充。这样就避免了对I/0缓存器大小的限制。但其代价则是由于需要时间对EEPROM写人而显著降低了数据传输率。此外,这类对I/0缓存器的扩充,由于经常对EEPROM的写人还存在着缓存器在比较短的期限内达到其使用寿命终点的风险。撇开这些限制,它是使数据传输缓存器比可用的BAM量大的惟一技术上可行的方法。