A Tracing Toolset for Embedded Linux Flash File Systems

NAND flash memory integration in the traditional I/O software stack of Unix-like operating systems (OS) was achieved without modifying most of the OS layers. In fact, one can dissociate two categories of flash memory devices: (1) those which intricacies are abstracted to the OS (e.g. SSDs, USB stick...

Full description

Bibliographic Details
Main Authors: Pierre Olivier, Jalil Boukhobza, Eric Senn, Mathieu Soula, Michelle Le Grand, Ismat Chaib Draa
Format: Article
Language:English
Published: European Alliance for Innovation (EAI) 2015-12-01
Series:EAI Endorsed Transactions on Internet of Things
Subjects:
Online Access:https://eudl.eu/pdf/10.4108/icst.valuetools.2014.258179
Description
Summary:NAND flash memory integration in the traditional I/O software stack of Unix-like operating systems (OS) was achieved without modifying most of the OS layers. In fact, one can dissociate two categories of flash memory devices: (1) those which intricacies are abstracted to the OS (e.g. SSDs, USB sticks), and (2) raw flash memory chips driven by a specific Flash File System (FFS) such as JFFS2 and UBIFS. In the latter case, the operating system I/O software stack low level layers (i.e. file system and driver) were upgraded while the higher levels (virtual file system and related buffers) were not. In order to optimize the system behavior in such a case, one must understand the interactions between the different I/O software management layers, and the performance impact of each layer for a given I/O workload. For this sake, we developed a tracing toolset allowing to understand the impact of each layer on the I/O request flow, for instance: caching, overheads, and fragmentation. The developed framework proved to be precious to apprehend the interactions between OS flash specific layers and traditional layers for a better system performance understanding.
ISSN:2414-1399