Lab15 tugjrel
-
Upload
haliuka-ganbold -
Category
Documents
-
view
470 -
download
4
Transcript of Lab15 tugjrel
![Page 1: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/1.jpg)
Түгжрэл
Хичээл №7
![Page 2: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/2.jpg)
Түгжрэл
Хоорондоо харилцаж буй буюу нөөцийн төлөө хоорондоо өрсөлдөж буй процессууд цаашид ажиллах боломжгүй болох үзэгдлийг түгжрэл гэж нэрлэдэг.
Зайлсхийх, шийдэх төгс арга байдаггүйХоёр буюу түүнээс дээш тооны
процессод тохиолдно.
![Page 3: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/3.jpg)
a) Òүãæðýë үүñýõ ìàãàäëàëòàé
á) Òүãæðýë үүññýí
Çóðàã 6.1 Òүãæðýëèéí æèøýý
![Page 4: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/4.jpg)
Түгжрэлийн жишээ
. . .À Ïðîöåññ
. . .
. . .80Êá ñàíàõ îé õүñýõ
60Êá ñàíàõ îé õүñýõ
Á Ïðîöåññ
. . .70Êá ñàíàõ îé õүñýõ
80Êá ñàíàõ îé õүñýõ
Àëãîðèòì 6.1 Òүãæðýë үүñ÷ áîëîõ ïðîöåññóóä
![Page 5: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/5.jpg)
Түгжрэлийн шалтгаан
Солбицол (mutual exclusion) Нөөцөд зөвхөн нэг зэрэг зөвхөн нэг л
процесс хандаж, ашиглаж байж болно.
Эзэмшээд хүлээх (Hold and Wait) Ямар нэгэн процесс нөөцийг эзэмшээд
бусад процессод нөөц хуваарилахыг хүлээж байж болно.
![Page 6: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/6.jpg)
Түгжрэлийн шалтгаанХүчээр суллахгүй байх (No Preemption)
Процессын эзэмшиж буй нөөцийг нь хүчээр чөлөөлж болохгүй.
Эдгээр 3 нөхцөл нь түгжрэл үүсгэх магадлалтай ч ямагт түгжрэл үүсгэнэ гэж үзэж болохгүй. Харин дөрөв дэх нөхцөл үүссэнээр системд түгжрэл үүсдэг.
Тойрон хүлээх (Circular wait) Бусад процессод шаардлагатай байгаа нөөцийг эзэмшсэн
процессуудын битүү гинжин хэлхээ олдож байгаа үед тойрон хүлээлт үүссэн байна гэж үздэг. Энгийнээр тайлбарлавал А процссод шаардлагатай нөөцийг Б процесс эзэмшсэн, Б процессод шаардлагатай нөөцийг А процесс эзэмшсэн байхад тойрон хүлээлт үүсдэг
![Page 7: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/7.jpg)
Түгжрэлийн шалтгаанТойрон хүлээх (Circular wait)
![Page 8: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/8.jpg)
Түгжрэл үүсэх магадлалтай
Солбицол (mutual exclusion) Эзэмшээд хүлээх (Hold and Wait) Хүчээр суллахгүй байх (No
Preemption)
![Page 9: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/9.jpg)
Түгжрэл үүссэн
Солбицол (mutual exclusion) Эзэмшээд хүлээх (Hold and Wait) Хүчээр суллахгүй байх (No
Preemption) Тойрон хүлээх (Circular wait)
![Page 10: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/10.jpg)
Түгжрэлээс сэргийилэх
Солбицол Солбицлын асуудлыг бүрэн арилгах
боломжгүй. Зарим тохиолдолд солбицлыг арилгаж болдог ч ерөнхий тохиолдолд энэ нь боломжгүй. Иймээс ч солбицлын асуудлыг хэрхэн үүсгэхгүй байхыг бус харин энэ асуудлыг оновчтойгоор шийдэх арга хайх тал дээр судлаачид ажилладаг.
![Page 11: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/11.jpg)
Түгжрэлээс сэргийилэх
Эзэмшээд хүлээх Энэ асуудлыг процесс өөртөө шаардлагатай
бүх нөөцийг нэг дор шаарддаг байхаар зохион байгуулснаар шийдэж болно.
Хүчээр суллахгүй байх Процессын эзэмшиж буй нөөцийг
төлөвлөлтийн ямар нэгэн шалгуур ашиглан үйлдлийн систем суллах боломжтой байснаар энэ нөхцөл байдлыг арилгаж болно
![Page 12: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/12.jpg)
Түгжрэлээс сэргийилэх
Тойрон хүлээх Нөөцийг хүсэх шугаман дараалал
тогтоосноор тойрон хүлээх асуудлыг шийдэж болно.
![Page 13: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/13.jpg)
Түгжрэлээс зайлсхийх
Процессыг үүсгэснээр түгжрэлд орох магадлалтай эсэхийг ҮСистемийн үйл ажиллагааны явцад динамикаар шалгана
Процессын нөөцийн хүсэлтийг урьдчилан мэдэж байх хэрэгтэй
![Page 14: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/14.jpg)
Түгжрэлээс зайлсхийх
Процесс үүссэнээр систем түгжрэлд орох магадлалтай бол процессыг үүсгэх хүсэлтийг няцаах
Нөөц хуваарилах хүсэлтийг биелүүлснээр систем түгжрэлд орох магадлалтай бол нөөцийг хуваарилахгүй байх
![Page 15: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/15.jpg)
Нөөц хуваарилах хүсэлтийг няцаах
Банкирын алгоритм гэж нэрлэдэгСистемийн төлөв – системл тухайн
мөчид нөөц хуваарилсан байдалАюулгүй төлөв - Түгжрэлд оролгүйгээр
бүх процессууд ажиллаж дуусах ядаж нэг боломж байх төлвийг аюулгүй төлөв гэе.
Аюултай төлөв - Аюулгүй биш төлөв
![Page 16: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/16.jpg)
Нөөцийн хуваарилалтын граф
R вектор - Системд нөөцийн төрөл бүр нийт ямар хэмжээтэй байгааг (байсныг) заана
V вектор - Системд нөөцийн төрөл бүр яг одоо ямар хэмжээтэй байгааг заана.
С матриц - Процесс бүр ямар хэмжээний нөөц хүссэнийг илэрхийлнэ.
А матриц - Процесс бүр яг одоо ямар хэмжээний нөөц эзэмшиж байгааг илэрхийлнэ.
![Page 17: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/17.jpg)
Анхны төлөв
Ñ ìàòðèö À ìàòðèö Ñ-À
R âåêòîð V âåêòîð
Çóðàã 6.3à Íөөö õóâààðèëñàí áàéäàë (àíõíû òөëөâ)
![Page 18: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/18.jpg)
Р2 процесс ажиллаж дууссан
Ñ ìàòðèö À ìàòðèö Ñ-À
R âåêòîð V âåêòîð
Ð2 ïðîöåññ àæèëëàæ äóóññàí
Çóðàã 6.3á Ð2 ïðîöåññ àæèëëàæ äóóññàí áàéíà
![Page 19: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/19.jpg)
Р1 процесс ажиллаж дууссан
Ñ ìàòðèö À ìàòðèö Ñ-À
R âåêòîð V âåêòîð
Ð1 ïðîöåññ àæèëëàæ äóóññàí
Çóðàã 6.3â Ð1 ïðîöåññ àæèëëàæ äóóññàí áàéíà
![Page 20: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/20.jpg)
Р3 процесс ажиллаж дууссан
Ñ ìàòðèö À ìàòðèö Ñ-À
R âåêòîð V âåêòîð
Ð3 ïðîöåññ àæèëëàæ äóóññàí
Çóðàã 6.3ã Ð3 ïðîöåññ àæèëëàæ äóóññàí áàéíà
![Page 21: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/21.jpg)
Аюулгүй төлөв
Р2, Р1, Р3 процессууд ажиллаж дууссаны дараа Р4 процесс ажиллаж дуусна.
Зураг 6.3а –д байгаа төлөв аюулгүй төлөв юм.
![Page 22: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/22.jpg)
Анхны төлөв
Ñ ìàòðèö À ìàòðèö Ñ-À
R âåêòîð V âåêòîð
àíõíû òөëөâÇóðàã 6.4à Íөөö õóâààðèëñàí áàéäàë (àíõíû òөëөâ)
![Page 23: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/23.jpg)
Р1 процессод нөөцийг хуваарилсан
Ñ ìàòðèö À ìàòðèö Ñ-À
R âåêòîð V âåêòîð
Ð1 ïðîöåññûí õүñýëòèéã áèåëүүëñýí áàéíàÇóðàã 6.4á Ð1 ïðîöåññûí õүñýëòèéã áèåëүүëñýí áàéíà
![Page 24: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/24.jpg)
Төлвүүдийн хоорондын холбоо, хамаарал
àþóëãүé òөëөâ
àþóëòàé òөëөâ
òүãæðýëèéí
òөëөâ
![Page 25: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/25.jpg)
Түгжрэлээс зайлсхийх
Процесс өөрийн эзэмших шаардлагатай нөөцийг байнга урьдчилан мэдэгдэж чадахгүй. Жишээ : Санах ойг динамикаар хүсэх тохиолдол байнга гардаг.
Хугацааны тодорхой интервалд л ажилладаг буюу өндөр хурд шаарддаг (жишээ : бодит хугацааны үйлдлийн систем) үйлдлийн системд банкирын алгоритмыг ажиллуулах боломжгүй.
![Page 26: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/26.jpg)
Түгжрэлийг илрүүлэх
Q ìàòðèö À ìàòðèö
R âåêòîð
V âåêòîð
Çóðàã 6.6 Òүãæðýëèéã èëðүүëýõ àëãîðèòìàä àøèãëàõ өãөãäëèéí áүòöүүä
![Page 27: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/27.jpg)
Түгжрэлийг илрүүлэх алгоритм
1. А матрицад, харгалзах мөр нь хоосон байх процессуудыг тэмдэглэ.
2. V вектортой анхны утга нь тэнцүү байх түр зуурын W вектор авна.
3. Өмнө нь тэмдэглэгдээгүй i дугаартай процессыг олж Q матрицад түүнд харгалзах i-р мөр нь QikWk (k=1,m) байх i-р мөрийг олно. Хэрэв шаардлага хангах мөр олдохгүй бол алгоритмыг төгсгөнө.
4. Хэрэв шаардлага хангах мөр 3-р алхамд олдсон бол i-р процессыг тэмдэглээд уг процессод оноосон нөөцийг сулласан гэж үз. (Wk=Wk+Aik, i=1,k). 3-р алхам руу шилж.
![Page 28: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/28.jpg)
Түгжрэлийг илрүүлэх алгоритм
Алгоритм ажиллаж дуусахад тэмдэглэгдээгүй процессууд нь түгжрэлд орсон процесс юм.
Алгоритм нь нөөц хуваарилаагүй процесс түгжрэлд ороогүй гэж үзнэ.
Ямар нэг дарааллаар процессуудын нөөц хүсэх хүсэлтийг биелүүлсэн гэж үзээд, эцэст нь түгжрэлд орсон процессуудыг гарган ирдэг.
![Page 29: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/29.jpg)
Алгоритмын жишээ
1. Р4 процессыг тэмдэглэ (Р4 процесс нь ямар ч нөөц эзэмшээгүй байна).
2. W=(0, 0, 0, 0, 1) утгатайгаар авна.3. Р3 процесс нь QW шаардлагыг
хангаж байгаа тул W=W+(0, 0, 0, 1, 0)=(0, 0, 0, 1, 1) болох ба Р3 процессыг тэмдэглэнэ.
4. Алгоритмыг төгсгө.
![Page 30: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/30.jpg)
Түгжрэлээс гарах
Бүх түгжрэлд орсон процессуудыг таслах Процессуудын үйл ажиллагааг хугацааны
тодорхой давтамжтайгаар сануулж явах хэрэгтэй (сануулахад байсан төлвийг буцалтын цэг гэж нэрлэе) ба түгжрэлд орсон процессуудыг буцалтын цэгээс нь эхлэн ажиллуулах
![Page 31: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/31.jpg)
Түгжрэлээс гарах
Түгжрэлд орсон процессуудыг ээлж дараалан, түгжрэлгүй болтол нь таслах. Энэ үед яг аль процессыг таслах нь сонголтын асуудалтай юм. Процессыг таслах болгонд түгжрэлийг илрүүлэх алгоритмыг ажиллуулж байх хэрэгтэй.
Нөөцүүдийг ээлж дараалан, түгжрэлгүй болтол нь суллах.
![Page 32: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/32.jpg)
Түгжрэлээс гарах
3 –р аргад аль процессыг таслахыг шийдэх аргууд Процессорыг хамгийн бага хугацааанд
эзэмшсэн Гаралтын мэдээллийг хамгийн бага гаргасан Ажиллаж дуусахад хамгийн их хугацаа
үлдсэн Хамгийн бага нөөц эзэмшиж байгаа Хамгийн бага зэрэглэлтэй
![Page 33: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/33.jpg)
Үл анхаарах
Орчин үеийн үйлдлийн системд түгжрэл үүсэх магадлал улам бүр багассаар л байна.
Тэмээн хяруулын алгоритм (ostrich algorithm) Түгжрэл үүсэх асуудлыг үл анхаарах Энд тэмээн хяруул нь элсэнд толгойгоо нуудагтай
адилаар түгжрэлийн асуудал үүсээгүй буюу огт ийм асуудал байхгүй мэтээр үйлдлийн системээ зохион бүтээдэг.
![Page 34: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/34.jpg)
Хооллож буй философичдийн бодлого
5 философич хамт амьдардаг. Тэд амьдралынхаа турш бодох, идэх ажлыг л хийдэг ба хоолны ширээ нь тойрог хэлбэртэй. Ширээний голд том саванд гоймон (философичдод хамгийн тохирсон хоол гэж үзсэн) хийсэн ба 5 савхыг (хос савх бус нэг л ширхэг савх) ширээ тойруулан тавьсан
![Page 35: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/35.jpg)
Хооллож буй философичдийн бодлого
Философич өлсвөл ширээ тойруулан тавьсан 5 суудлын нэгэнд суун (мэдээж уг суудал дээр өөр хүн сууж байгаа бол давхарлан сууж болохгүй) өөрийн баруун ба зүүн талд байгаа савхыг эхлээд зүүн талд байгаа савхаа дараа нь баруун талд байгаа савхаа аван (нэг зэрэг хоёр савх авч болохгүй) ширээний голд байгаа гоймонгоос иддэг.
![Page 36: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/36.jpg)
Хооллож буй философичдийн бодлого
Хэрэв өөрийнх нь авах ёстой савхыг өөр хэн нэгэн авсан бол тэр савх сулрахыг хүлээнэ. Аль ч философич хоёр савхтай байж л хоол идэх боломжтой болдог. Бодлогын нөхцөлд өгсөн шаардлагыг хангахуйцаар философичид хоол идэх боломжийг хангах алгоритм зохио
![Page 37: Lab15 tugjrel](https://reader031.fdocuments.net/reader031/viewer/2022013111/55b3ed90bb61eb05068b45b2/html5/thumbnails/37.jpg)
Хооллож буй философичдийн бодлого
Çóðàã 6.7 Õîîëëîæ áóé ôèëîñîôè÷äèéí áîäëîãî