1. An apparatus comprising: a) a processor; b) a memory coupled to the processor; c) a flash memory management system residing in the memory and being executed by the processor, the flash memory management system including: a free block mechanism for locating free blocks of flash memory for writing, the free block mechanism searching a portion of flash memory blocks in a free block list defined by a free block list window; a disk maintenance mechanism for locating blocks of flash memory for cleaning, the disk maintenance mechanism evaluating a portion of flash memory blocks in the block list defined by a block list window; a bad block detection mechanism for locating blocks of flash memory likely to become bad, the bad block detection mechanism monitoring the flash memory blocks for error activity and designating a block as bad when the error activity rises above a predefined threshold.