Үйлдлийн систем

**Үйлдлийн систем** (, OS) харилцан уялдаатай системийн програмуудын цогц юм.

Компьютерын ажиллагааг 2 давхаргаас тогтсон сонгинотой зүйрлэж болно. Сонгинын хамгийн дотор талд компьютерын техник хангамж байрлана. Түүний гадуур програм хангамжийн давхарга байрлана. Харин хамгийн гадна талд хэрэглэгч уг сонгиныг “харж” байгаа.

Тэгвэл програм хангамжийн давхарыг дотор нь дахиад хоёр давхаргад хуваан үзэж болно:
* дотор талын давхарга - Үйлдлийн Систем (товчоор: Ү.С.)
* гадна талын давхарга - бусад програм.

]]
Өөрөөр хэлбэл хэрэглэгч програмуудын тусламжтайгаар компьютертэй ажиллана. Харин програмууд нь Ү.С.-ийн тусламжтайгаар компьютерын техниктэй холбогдоно.

Тиймээс Ү.С.-ийг компьютерын техникийн програмын үргэлжлэл гэж болно. Ү.С. нь хэрэглэгчийг, компьютерын төхөөрөмжүүдтэй ажиллах процессын талаарх нэгд нэгэнгүй мэдээллээс халхалж, ингэснээр энэ процессыг гүйцэлдүүлэх нүсэр ажлаас түүнийг чөлөөлж өгдөг.

Ү.С.-ийн гүйцэтгэх үүргийг дурдвал:
* диалог буюу хэрэглэгчтэй харьцах
* оролт-гаралт, өгөгдлийг удирдах
* програм боловсруулах процессын төлөвлөлт, зохион байгуулалт
* санах ой, кэш, процессор, гадаад төхөөрөмжүүд г.м. компьютерын хэсгүүдтэй ажиллах
* сонгосон програмыг ажиллуулах
* боломжит бүх төрлийн үйлчилгээ (сервис)
* дотоод төхөөрөмжүүдийн хооронд мэдээлэл дамжуулах
* дэлгэц, гар, дискүүд, хэвлүүр г.м. залгах төхөөрөмжүүдийн ажиллагааг програмын түвшинд дэмжих зэрэг болно.

Компьютеруудын төрлөөс хамаарч, тэдгээрт ашиглагдах Ү.С.-үүд мөн өөр өөр байна. Гэхдээ нэг төрлийн компьютерт зориулсан өөр өөр Ү.С.-үүд ч бас байдаг. Жишээ нь одоо үед Windows, Unix, Linux г.м. Ү.С.-үүд компьютерт өргөн ашиглагдаж байна.

Компьютерийн Ү.С. нь дараах үндсэн бүрэлдхүүнийг агуулах ёстой. Эдгээр нь:
* командын хэл
* командын процессор
* драйверууд (жолоодогч буюу хөтлөгч)
* файлын систем
зэрэг болно.

## Тойм 
Тооцоолох  электрон машин нэг талаас техник хангамж, нөгөө талаас програм  хангамжийн салшгүй нэгдэл юм. Компьютерийг эхлэн ажиллуулахад түүний шуурхай санах ойд ачаалагдаж, хэрэглэгч ба компьютерийг холбон ажилладаг програмыг үйлдлийн систем гэдэг. Үйлдлийн систем нь UNIX, MS DOS, PC DOS, OS/2, WINDOWS 9X, WINDOWS XP гэх мэтчилэн олон төрөлтэй байдаг ба эдгээрээс ихэд өргөн тархсан системүүдийн нэг нь MS DOS юм. Үйлдлийн системийг хэрэглэгчийн интерфейсээр нь график үйлдлийн систем, график биш үйдлийн систем гэж 2 ангилдаг. График үйдлийн системд нь WINDOWS 9X, WINDOWS XP гэх мэт үйлдлийн системүүд ордог ба график биш үйлдлийн системд MS DOS ордог. Үйлдлийн систем нь програм хангамжийн үндсэн нөхцлийг бүрдүүлэх орчин болдог бөгөөд хэрэглэгчийг компьютертэй холбож түүнд холбогдсон гадаад төхөөрөмжүүдийг гараас оруулах командаар удирдах боломж олгодог. Нөгөө төлөөс хэрэглээний програмууд болон оролт гаралтын өгөгдлүүдийг удирдаж ажиллахад тусална.

UNIX, LINUX нь нээлттэй систем учраас хэрэглэгчид болон програм зохиогчид бусаддаа зориулж өөрийн хийсэн шинэ соргог зүйлийг нэмж, хасч өгч болдгоор бусад системүүдээс давуу талтай. Харин MS-DOS нь хэрэглэгчдэд сурахад хамгийн ойр дөт систем юм.

Үйлдлийн систем нь санах ой руу ачаалагддаг бөгөөд компьютерийн хүчин чадлыг зохицуулж, хуваарилахаас гадна компьютерийн гараас өгөгдсөн командыг дэлгэц рүү илгээх, дискэн дээр файл болон директоруудыг хадгалах мөн дагалдах төхөөрөмжүүд болох принтер, хулгана, уян болон хатуу дискний ажиллагааг хянадаг.

Томоохон систем дээр үйлдлийн систем нь хэрэглэгчдэд нэг нь бусдын хийж буй үйлдэлд нөлөөлөхгүйгээр систем рүү зэрэг хандаж чадахуйц нөхцлийг олгож, ачааллыг нь зохицуулж өгдөг. Мөн үйлдлийн системийн нууцлал нь маш сайн байх шаардлагатай байдаг.

Үйлдлийн системийг доорх төрлүүдээр ангилдаг. Үүнд:

* Multitasking- Олон төрлийн програмуудыг нэгэн зэрэг ажиллуулахад аль програм нь ямар горимоор хэдий хэрийн хугацаанд ажиллахыг зохицуулдаг. 
* Multiuser- Нэгэн зэрэг олон хэрэглэгч хандаж ажиллах боломжтой. Зарим үйлдлийн систем нь мянга мянган хэрэглэгч зэрэг хандаж чадахуйц боломжтой байдаг. 
* Multiprocessing- Нэгээс дээш тооны процессор дээр ажиллаж чадахуйц.
* Multithreading- Нэг програм дээр олон талаас нь зэрэг ажиллах боломжтой.
## Командын хэл 
Хэрэглэгчээс Ү.С.-д өгч болох командууд урьдаас тодорхойлогдсон байдаг. Эдгээр командын цогцыг Ү.С.-ийн командын хэл гэдэг.

Хэрэглэгч командын хэлний тусламжтайгаар:
* каталоги руу (фолдер = хавтас) хандах
* дискүүдийг тэмдэглэх (disk labeling)
* програмуудыг ажиллуулах гэх мэт 
г.м. болон бусад олон үйлдлийг хийх боломжтой байдаг.

## Командын процессор 
Командын процессор бол хэрэглэгчийн өгсөн командыг авч, анализ хийгээд биелүүлдэг системийн програм юм.

## Хэрэглэгчийн интерфейс 
Ү.С.-д хэрэглэгч нь командын хэлийг ашиглан командын процессортой харьцаж буй арга замыг хэрэглэгчийн интерфейс (user interface) гэдэг.

Өнөөдөр Ү.С.-үүд:
* Текст интерфейс (command line interface - CLI)
* График интерфейс (graphical user interface - GUI)
гэсэн хоёр төрлийн хэрэглэгчийн интерфейсийг ашигладаг.

### Текст интерфейс 
CLI нь сонгодог (буюу уламжлалт) интерфейс бөгөөд хэрэглэгч командын хэлний тодорхой командыг бичиж өгөөд Enter дарах замаар командын процессортой “тулж” ажиллах хэлбэр юм. Үүний тулд хэрэглэгч нь командын хэлийг мэддэг байх шаардлагатай.

### График интерфейс 
Харин GUI нь хэрэглэгчид илүү тохиромжтой хэлбэр бөгөөд зөвхөн хулганы тусламжтайгаар, график дүрслэл бүхий хийсвэр (виртуал) орчинд хүссэн үйлдлээ хийж болдог. Өөрөөр хэлбэл хэрэглэгч нь командын хэлийг мэддэг байх шаардлагагүй.

### Shell 
Хэрэглэгчийн интерфейсийг хэрэгжүүлж байдаг системийн програмыг shell (хөтөч програм) гэдэг. Ү.С. болгон өөрийн гэсэн shell-үүдтэй байна.
Ж.нь Windows бүлийн системд:
* Windows Explorer
Command Prompt 
гэсэн стандарт shell-үүд бий. Windows Explorer бол график интерфейсийг хэрэгжүүлэгч shell (graphical shell) юм. Харин Command Prompt бол текст интерфейсийг хэрэгжүүлэгч shell (text shell) юм.
Shells (хөтөч програм) нь программ хангамжийн нэг хэсэг бөгөөд хэрэглэгчийн интерфейсийг хэрэгжүүлдэг ба өөр өөр функц ба өөр өөр ажиллагаатай. Ийм учраас энэ нь үйлдлийн системийн хэрэглэгчийн интерфейстэй ойролцоо утгатай. Энэ нь үйлдлийн системийн дотоод механизм ба хэрэглэгчийн интерфейс хоорондын гадаад давхраанд байдаг тул Shells (гэр) гэж нэрлэдэг .  Ихэнх үйлдлийн системийн Shells нь удирдлагын интерфейсгүй хэдий ч хэрэглэгчийн нэмэлт төхөөрөмжөөс компьютерт шууд мэдээлэл дамжуулдаг. Shells нь үнэндээ тусгай зориулалтын application бөгөөд API цөм нь бусад application програмуудтай адил замаар хэрэглэгддэг.

## Драйверууд 
Драйверууд (drivers=жолоодогч буюу хөтлөгч) нь компьютерын төхөөрөмжүүдийг удирдахад шаардлагатай системийн програмууд юм.

Стандарт дотоод төхөөрөмжүүдийн драйверууд BIOS (Basic Input-Output System) буюу Оролт-Гаралтын Үндсэн Системийг бүрдүүлдэг.

## Файлын систем 
Тогтмол санах байгууламжид байрласан, тодорхой нэр бүхий цогц мэдээллийг файл (file) гэдэг. Файл нь програм, тоон өгөгдөл, текст, кодлогдсон дүрс мэтийг агуулж болно.

Ерөнхий тохиолдолд тогтмол санах байгууламжид асар олон тооны файл агуулагдана. Тэгвэл хэрэглэгч нь энэ олон файл дундаас тухайн нэг файлыг түргэн шуурхай олж, хялбар байдлаар харьцдаг байх ёстой. Үүний тулд файлууд нь дискэн дээр тодорхой нэг аргын дагуу, өөрөөр хэлбэл тодорхой зохион байгуулалттайгаар байрласан байна. Ийм аргыг (зохион байгуулалтыг) нь файлын систем (file system) гэдэг. Файлын систем нь:
* Файлуудыг яаж хадгалах
* Файлуудыг яаж нэрлэх
* Файлуудыг яаж төрөлжүүлж, ангилах
г.м. асуудлуудыг тодорхойлно.

Ү.С. болгон өөрийн гэсэн файлын системтэй. Тухайлбал Windows бүлийн Ү.С.-үүд FAT16, FAT32, NTFS г.м. файлын системүүдийг ашигладаг бол Linux бүлийн Ү.С.-үүд ext2, ext3, XFS г.м. файлын системийг түгээмэл ашигладаг.

Ихэнх файлын систем файлыг диск рүү хадгалахдаа хадгалах “орон зайг” 0.5kb эсвэл 1, 2, 4 кb-ын урттай жижиг блокуудад хуваагаад файлыг эдгээр блокуудаар тарааж байрлуулдаг байна. Ийм блок хэсгийг сектор (sector) гэнэ. Ж.нь Windows XP системд, секторын хэмжээ 4 kb байдаг.

Файлын систем нь файлуудыг төрөл, зориулалтаар нь ангилж, “каталогижуулах” ажлыг гүйцэтгэдэг. Дотроо файлууд агуулсан ийм каталогийг фолдер (folder) буюу хавтас, директори (directory) г.м.-ээр нэрлэдэг.

Файлын систем нь файлыг ч, хавтсыг ч нэрлэдэг. Мөн файлыг ч, хавтсыг ч устгаж, зөөж, хувилж, нэрийг нь өөрчилж болно.

“Каталогижуулах” хэлбэрээр нь файлын системийг:
* Хавтгай буюу шугаман (flat)
* Мод хэлбэрийн (Hierarchical)
г.м.-ээр ангилж болно. Хавтгай файл системд, каталоги доторх каталоги гэж байдаггүй. Бүх каталогиуд нэг төвшинд, “зэрэгцэн” оршино. Мод хэлбэрийн файл системд, каталоги дотор дахиад каталоги байж болдог. Ж.нь Windows-ын файл систем мод хэлбэрийн бүтэцтэй.

Компьютерийн Ү.С. нь хатуу диск дээр хадгалагдах бөгөөд компьютерыг асаахад тэндээс уншигдаж, RAM-д ачаалагддаг. Энэ процессыг Ү.С.-ийг ачаалах (OS loading) гэж нэрийднэ.

Анхны үйлдлийн систем нь компьютерын технологийн хөгжлийн хоёрдугаар үе буюу транзистор ашиглах болсонтой хамт үүссэн. Хоёрдугаар үеийн том компьютерууд нь тухайн уламжлалын дифференциал тэгшитгэлийг бодох гэх мэтийн физик, инженерийн салбарт гарч ирдэг байсан ШУ-ны болон техникийн тооцоог хийхэд голчлон хэрэглэгдэж байжээ. Програмаа үндсэндээ Фортран, ассемблер дээр бичих ба үйлдлийн системүүд нь FMS (Fortran Monitor System), IBSYS (IBM корпорацийн IBM 7094 компьютерт зориулж гаргасан үйлдлийн систем) байсан.