Хэрэглэгчийн горим

Аль ч төрлийн үйлдлийн систем дээр ажиллаж байгаа компьютерын процессор нь хоёр өөр горимд ажиллах чадвартай. Хэрэглэгчийн горим болон цөмийн горим.(Англи: User mode, Kernel mode)

User mode- хэрэглэгчийн горим[засварлах | кодоор засварлах]

Windows-р боловсруулалт хийхэд ихэвчлэн хэрэглэгчийн горимд ажилладаг. Хэрэглэгчийн горимын гүйцэтгэх код нь шууд тоног төхөөрөмж, санах ойг тодорхойлох чадвартай байдаг. Хэрэглэгчийн горимд ажиллаж байгаа хууль тоног төхөөрөмж эсвэл санах ой хандахын тулд системийн API-г нь шилжүүлж байх ёстой. Таны компьютер дээр ажиллаж байгаа код ихэнх нь хэрэглэгчийн горимд боловсруулагддаг. Хувийн байхаас гадна, хэрэглэгчийн горим хэрэглэх виртуал хаягийн орон зай хязгаарлагдмал байна. Хэрэглэгчийн горимд ажиллаж байгаа процессорт үйлдлийн системд зориулагдсан байдаг виртуал хаягууд нэвтэрч чаддаггүй. Хязгаарлагдмал хэрэглэгчийн горимд үйлдлийн системийн өгөгдлийг гэмтээх, виртуаль хаягийн талбарыг өөрчлөхөөс сэргийлдэг.

Зураг 1[засварлах | кодоор засварлах]

Энэ диаграмм хэрэглэгчийн горим болон цөмийн горим бүрэлдэхүүн хэсгүүдийн хоорондын харилцаа холбоог харуулж байна.


Kernel mode-Цөмийн горим[засварлах | кодоор засварлах]

Цөмийн горимд гүйцэтгэх код үндсэн тоног төхөөрөмж нь бүрэн гүйцэд, саадгүй нэвтэрдэг. Энэ нь CPU-дотор байгаа санах ойн хаягуудаас алийг нь ч авч ажиллуулж чаддаг.Цөмийн горим нь ерөнхийдөө хамгийн доод түвшинд хамаарагддаг ихэнх үйлдлийн системийн үйл ажиллагааг итгэмжилдэг. Хэрвээ kernel mode-д эвдрэл гарвал маш том асуудал үүснэ. Бүх PC зогсох болно. Цөмийн горимд ажилладаг бүх код нь нэг виртуал хаягийн зайг хуваалцаж байдаг. Цөмийн горимын осол гэмтэл нь бүхэл бүтэн үйлдлийн систем сүйрэхэд хүргэдэг.

Зураг 2[засварлах | кодоор засварлах]

x86 CPU дээрх Kernel mode(цөмийн горим)хамгаалах 4 цагираг

Хэрэглээ[засварлах | кодоор засварлах]

Програмыг хэрэглэгчийн горимд ажиллуулж, үндсэн үйлдлийн системийн бүрэлдэхүүн хэсэг нь цөмийн горимд ажилладаг. Ихэнх драйвер цөмийн горимд ажиллаж байхад зарим драйвер хэрэглэгчийн горимд ажилладаг байж болно. Програмуудад хэрэглэгчийн горимд тасалдлууд болон шилжилтийг хийж болдоггүй. Яагаад гэвэл програмын виртуал хаягийн талбар нь хувийн учраас, нэг програм нь өөр програмыг хамаарах мэдээллийг өөрчилж чадахгүй. Виртуаль машины програм хангамж нь кернель горимд ажиллаж чаддаг, үйлдлийн системээс хойш. Виртуаль машин дангаар зөвхөн хэрэглэгчийн горимд л үйлдэл гүйцэтгэх чадвартай. Физик машин нь 2 горимтой байдаг гэж үзвэл түүний нэг нь виртуаль машин байх ёстой. Ийм учраас бид виртуаль хэрэглэгчийн горим болон виртуаль кернель горимтой байх ёстой, мөн хоёуланг нь физик хэрэглэгчийн горимд ачааллах ёстой. Эдгээр үйл явцын шалтгаан нь хэрэглэгчийн горимоос кернель горим руу шилжүүлэхдээ /жишээ нь систем дуудах эсвэл давуу эрхтэй даалгавар гүйцэтгэхийг оролдох/ бодит машин нь виртуаль машинд виртуаль хэрэглэгчийн горимоос виртуаль кернель горим руу шилжүүлэх үйлдлийг хийх ёстой юм.