Lecture82. Процессуудын харилцан ажиллагаа Процессууд харилцан ажиллах тохиолдол: - Нэг процессоос нөгөө рүү мэдээлэл дамжуулах - Процессуудын хяналт (жишээ нь: нэг ресурс рүү уралдах) - Процессуудын харилцан зөвшилцөл (жишээ нь: нэг процесс өгөгдөл өгөхөд, нөгөө нь хэвлэх). Сүүлийн 2 урсгалд ч хамаарна 5. Уралдах төлөв Хэдэн процесс зэрэг өгөгдөл унших болох бичих (санах ойд эсвэл файлд). in – дарагийн чөлөөтэй сегментийг заах хувьсагч out – дараагийн файлын нэрийг заагч хувьсагч 6. Дараалуулан event-үүдийг бичвэл: Процесс А in (7-той тэнцүү) хувьсагчийг уншин өөрийн next_free_slot хувьсагчид хадгална. Таймерын тасалдалт ажиллан процессор процесс В-г хүлээнэ. Процесс В in (7 -той тэнцүү) хувьсагчийг уншин өөрийн next_free_slot хувьсагчид хадгална. Процесс В файлын нэрийг сегмент 7-д хадгална. Процесс В next_free_slot хувьсагчийг нэгээр (next_free_slot+1) ихэсгэн in-г 8 болгоно. Удирдлага процесс А-д очин зогссон газраам эхэлнэ. Процесс А файлын нэрийг сегменте 7-д хадгалж процесса Вдэх файлын нэрийг устгана. Процесс А next_free_slot хувьсагчийг нэгээр ихнсгэн на (next_free_slot+1), in-г 8болгоно. Процесс Вдэх файл хэвлэгдэхгүй. 7. Критик хэсэг Критик хэсэг – distributed өгөгдөлд хандах программын хэсэг. Уралдахыг тойрох ба процессийн идэвхтэй ажиллагаа: - 2 процесс нэг зэрэг критик хэсэгт байх ёсгүй. - Критик хэмгийн гадна байх процесс бусад процессийг блоклож болох. - Процесс үргэлж хүлээн критик хэсэгт орохгүй байх 8. Идэвхтэй хүлээлтийг арилгах Тасалдалтыг хориглох: Процесс критик хэсэгт ороход бүх тасалдалтыг хориглох. Дутагдалтай тал нь процессод сбой гарахад тасалдалтыг хоргилосноо арилгаж чадахгүй Блоклох хувьсагч: Блоклох хувьсагч гэдэг ойлголт оруулах 1 – өөр процессресурс ашиглаж байгаа ба 2-р процесс хүлээх горимд шилжиж байгаа (блоклогдсон) хувьсагчийн утга 0 болтол байх. 9. Хатуу дараалах Дутагдалтай тал: Блоклогдсон процесс хувьсагч өөрчлөгдсөн эсэхийг шалгах циклд үргэлж байх. Критик мужийн гадна байгаа процесс өөр процессийг блоклож чадахгүй. Идэвхтэй хүлээлттэй өөр алгоримт байж болно (алгоритм Петерсон, команд TSL) 10. Процессийн харилцан хамаарал 2 харилцан хамаарал: sleep – системийн request ба үр дүнд нь нэг процесс өөр процесс түүнийг зөвшөөрөх хүртэл блоклогдоно. wakeup - системийн request үр дүнд нь блоклогдсон процесс зөвшөөрөгдөнө Идэвхтэй хүлээлт байхгүй 12. Идэвхжүүлэх дохио алга болоход 2 процесс 2-уулаа хүлээлгийн горимд орж болно. Ийм тохиолдлын алгоритм: Процесс В, count=0 уншина (блоклогдож амжаагүй) Төлөвлөгч процесс А-д удирдлага өгнө Процесс Аwakeup хүртэлх гүйцэтгэгдэн процесс В блокийг арилгахыг оролдоно (гэхдээ блок арилахгүй wakeup хоосон ажиллана) Төлөвлөгч процесс Б-д удирдлага өгнө Блоклогдсон тул блок арилгах лохио дахин хүлээн авахгүй Процесс А буфер дүүргэн блок арилгах ч блок арилгах дохио хүлээн авахгүй 13. Семафор Семафоры – ирээдүйд хэрэглэхээр set дохио тоолох хувьсагч. downба up (sleep ба wakeup-ийн аналог). Процесс блоклохын өмнө down семафорыг шалган 0-тэй тэнцүү бол процессийг блоклоно. Хэрэв үгүй бол процесс идэвхтэй байж семафорыг 1-ээр багасгана. upсемафорын утгыг 1-ээр нэмж эсвэл хүлээгэнд байгаа процессийг блоклоно.. down семафорын утгыг 1-ээр багасгаж эсвэл семафор =0 бол процессийг блоклоно, down ба up-г гүйцэтгэж байхад процесс блоклогдохгүй тул OS бүр тасалдалтыг хориглож болно 14. Семафор ашиглан дүүргэгдсэн буферийг шийдэх 3 семафор авна: full – дүүргэгдсэн сегментийн тоо (эхэндээ= 0) empty – хоосон сегментийн тоо (эхэндээ= сегментийн тоо) mutex – нэг зэрэг буферт 2 процесс хандахыг үгйүсгэх (эхэндээ= 1) Мьютекссемафорын хялбарчлан ресурсэд хандах хандалтыг удирдана. Ресурс блоклогдсоэ эхэсхийг заана. 15. Орол/гаралтын төхөөрөмжид семафор ашиглах: Оролт/гаралтын төхөөрөмжид семафорыг 0-ээр тавина. Удирдах процессачаалагдсаны дараа down хийгдэн процессийг блоклоно. Удирдах процессийг идэвхжүүлэх хэрэгтэй болоход up гүйцэтгэнэ. 16. Процессууд бие биенээ блоклох Процессууд харилцан блоклох– нэгресурсэд олон процесс хандах. Ресурсачаалах, ачаалахахгүй , аппаратын программын. ачаалах ресурс – процессоос авч болох ресурс (жишээ нь: санах ой). ачаалахахгүй ресурс - процессоос өгөгдлийн алдагдалгүй авч болохгүй ресурс (жишээ нь : принтер). харилцан блоклох проблем : ачаалахахгүй ресурсэд гарна Процессууд харилцан блоклохнөхцөл: Харилцан үгүйсгэх- аль нэг моментод ресурсйг нэг л процесс ашигалана эсвэл сул байна. Саатуулах болон хүлээх нөхцөл- ресурм саатуулж байгаа процесс шинэ ресурс шаардах Хүчээр ресурс чөлөөлөх нөхцөл байхгүй. Циклэн хүлээлтийн нөхцөл – процессууд тойроод дараалан гүйцэтгэгдэх 17. Графаар шалгах харилцан блоклолт үүсэх эсэхийг шалгахад хялбар. Цикл байгаа бол - харилцан блоклолт Жишээ: 3 процесс A, B, C 3 ресурс R, S, T