▁of ▁threads , ▁but ▁cannot ▁spawn ▁other ▁programs ▁to ▁run ▁concurrent ly . ▁ ▁There ▁are ▁several ▁banks ▁at ▁the ▁Program ▁level ▁that ▁contain ▁a ▁mixture ▁of ▁Run ▁( job , ▁session ) ▁information ▁and ▁program ▁information . ▁ ▁These ▁are ▁control ▁structures ▁for ▁the ▁operating ▁system . ▁ ▁They ▁have ▁no ▁access ▁or ▁read - only ▁access ▁for ▁the ▁program . ▁ ▁Program s ▁may ▁retrieve ▁information ▁from ▁some ▁of ▁these ▁structures ▁for ▁debugging ▁purposes ▁or ▁to ▁retrieve ▁things ▁like ▁the ▁user - id ▁and ▁terminal - id ▁without ▁the ▁overhead ▁of ▁a ▁system ▁call . ▁ ▁They ▁cannot ▁be ▁written ▁by ▁the ▁program . ▁ ▁They ▁contain ▁things ▁like ▁the ▁thread ▁state ▁save ▁areas , ▁file ▁control ▁blocks , ▁and ▁account ing ▁information . ▁ ▁The ▁rest ▁of ▁the ▁banks ▁are ▁used ▁by ▁the ▁program . ▁ ▁When ▁a ▁program ▁object ▁file ▁is ▁executed , ▁the ▁operating ▁system ▁obtain s ▁the ▁bank ▁information ▁from ▁the ▁file ▁and ▁creates ▁banks ▁as ▁needed ▁and ▁loads ▁the ▁bank ▁initial ▁state ▁from ▁the ▁file . ▁ ▁The ▁simplest ▁program ▁has ▁a ▁single ▁bank ▁containing ▁code ▁and ▁data . ▁ ▁This ▁is ▁considered ▁very ▁bad ▁form , ▁but ▁is ▁permitted ▁for ▁compatibility ▁with ▁old ▁applications . ▁ ▁You ▁can ▁only ▁create ▁such ▁an ▁application ▁with ▁assembly ▁language . ▁▁ ▁The ▁standard ▁comp ilers ▁create ▁one ▁or ▁more ▁code ▁banks ▁and ▁one ▁or ▁more ▁data ▁banks . ▁ ▁Norm ally ▁the ▁code ▁banks ▁are ▁marked ▁as ▁read - only ▁as ▁a ▁debugging ▁and ▁reli ability ▁aid .