▁of ▁computer ▁software , ▁from ▁large ▁enter prise - wide ▁applications ▁that ▁consume ▁vast ▁amounts ▁of ▁memory ▁( such ▁as ▁databases ), ▁to ▁memory ▁int ensive ▁multimedia ▁author ing ▁and ▁editing ▁software . ▁To ▁tack le ▁the ▁ever ▁increasing ▁memory ▁needs , ▁virtual ▁memory ▁systems ▁were ▁introduced ▁that ▁divide ▁the ▁available ▁memory ▁into ▁equally ▁s ized ▁port ions ▁and ▁loads ▁them ▁from ▁" pages " ▁stored ▁on ▁the ▁hard - disk ▁on ▁an ▁as - and - when ▁required ▁basis . ▁ ▁This ▁approach ▁to ▁support ▁programs ▁with ▁huge - memory - foot print s ▁has ▁been ▁quite ▁successful . ▁Most ▁modern ▁operating ▁systems ▁including ▁Microsoft ▁Windows , ▁Apple ' s ▁mac OS , ▁and ▁all ▁versions ▁of ▁Linux ▁and ▁Unix ▁provide ▁virtual ▁memory ▁systems . ▁ ▁In ▁embedded ▁systems ▁▁ ▁Trad itionally , ▁low - memory - foot print ▁programs ▁were ▁of ▁importance ▁to ▁running ▁applications ▁on ▁embedded ▁platforms ▁where ▁memory ▁would ▁often ▁be ▁a ▁const rained ▁resource ▁– ▁so ▁much ▁so ▁that ▁developers ▁typically ▁sacrific ed ▁efficiency ▁( processing ▁spe eds ) ▁just ▁to ▁make ▁program ▁foot print s ▁small ▁enough ▁to ▁fit ▁into ▁the ▁available ▁RAM . ▁For ▁example , ▁Sun ▁Mic ros ystem s ▁brought ▁out ▁a ▁version ▁of ▁its ▁Java ▁Virtual ▁Machine ▁( J VM ) ▁for ▁such ▁const rained ▁devices ; ▁it ▁goes ▁by ▁the ▁name ▁of ▁K VM . ▁The ▁K VM ▁works ▁on ▁platforms ▁where ▁memory ▁is ▁in ▁kil oby tes ▁as ▁opposed ▁to ▁the ▁meg aby tes ▁( or ▁even ▁gig aby tes )