▁in ▁use . ▁ ▁Ring = 0 ▁is ▁used ▁by ▁the ▁OS ▁and ▁allows ▁it ▁to ▁access ▁its ▁own ▁data ▁while ▁still ▁being ▁able ▁to ▁access ▁parameters ▁passed ▁from ▁either ▁user ▁programs ▁or ▁protected ▁sub system s . ▁ ▁G ates ▁are ▁another ▁part ▁of ▁the ▁protection ▁mechanism . ▁ ▁A ▁gate ▁is ▁a ▁data ▁structure ▁that ▁controls ▁trans itions ▁between ▁domains . ▁ ▁A ▁gate ▁lives ▁in ▁a ▁gate ▁bank ▁and ▁the ▁hardware ▁enfor ces ▁that ▁all ▁references ▁to ▁gates ▁must ▁be ▁to ▁addresses ▁at ▁a ▁proper ▁offset ▁( multiple ▁of ▁a ▁gate ▁size ) ▁within ▁a ▁gate ▁bank . ▁ ▁A ▁gate ▁contains ▁the ▁target ▁address , ▁new ▁values ▁for ▁P P , ▁Ring , ▁and ▁Domain , ▁and ▁may ▁contain ▁a ▁hidden ▁parameter ▁to ▁be ▁passed ▁to ▁the ▁target . ▁ ▁Prote cted ▁sub system s ▁are ▁not ▁directly ▁accessible ▁to ▁other ▁sub system s . ▁ ▁Instead ▁a ▁sub system ▁must ▁request ▁that ▁a ▁gate ▁be ▁built ▁in ▁its ▁gate ▁bank ▁for ▁access ▁to ▁that ▁sub system . ▁ ▁This ▁perm its ▁the ▁operating ▁system ▁to ▁perform ▁any ▁access ▁control ▁checks . ▁ ▁The ▁linking ▁system ▁will ▁then ▁find ▁the ▁gate ▁address ▁associated ▁with ▁an ▁entry ▁point . ▁ ▁In ▁fact , ▁the ▁whole ▁mechanism ▁is ▁usually ▁trans par ently ▁handled ▁within ▁the ▁linking ▁system . ▁ ▁The ▁hidden ▁parameter ▁perm its , ▁for ▁example , ▁a ▁file ▁I / O ▁gate ▁to ▁contain ▁the ▁address ▁or ▁handle ▁of ▁the ▁file ▁control ▁block . ▁ ▁Since ▁this ▁is ▁guaranteed