Adaptive mutex
Jump to navigation
Jump to search
Adaptive mutex – Хуулбар процессуудын дунд нөөцийг зохицуулахад хэрэглэгддэг обьект.
Adaptive mutex нь эгзэгтэй өгөгдөл бүтээгдхүүн бүрт хандахаас хамгаалдаг. Мултипроцессор системд adaptive mutex нь spinlock-оос хэрэгжсэн стандарт семафороор ажиллаж эхэлдэг. Хэрэв өгөгдлүүд түгжигдсэн ба аль хэдийн ашиглагдсан бол adaptive mutex нь хоёр зүйлийн нэгийг нь л хийдэг. Хэрэв хуулбар процесс нь түгжсэн бол энэ нь өөр нэг CPU-дээр ажиллаж байдаг. Хуулбар процесс нь түгжээ чөлөөтэй болох зуур эргэлдэж байдаг. Учир нь удахгүй дуусах болзошгүй түгжээг хуулбар процесс нь өөртөө эзэмшихийг оролддог.
Хэрэв хуулбар процесс нь ажиллах төлөвт байгаа түгжээг эзэмших гэж оролдвол блоклогдох ба түгжээ чөлөөлөгдтөл юу ч хийдэггүй. Дан процессорын системд хуулбар процесс нь хэрэв түгжээ нь өөр нэг хуулбар процессоор шалгагдаж байвал ажиллагаагүй түгжээг эзэмшдэггүй. Учир нь нэг цаг хугацаанд нэг л процесс ажиллаж чаддаг. Түүнчлэн энэ төрлийн системд хуулбар процесс нь эргэлдэхээсээ илүүтэйгээр юу ч хийдэггүй унтдаг. Зурагт үзүүлснээр:
Хэрэв хуулбар процесс нь ажиллах төлөвт байгаа түгжээг эзэмших гэж оролдвол блоклогдох ба түгжээ чөлөөлөгдтөл юу ч хийдэггүй. Дан процессорын системд хуулбар процесс нь хэрэв түгжээ нь өөр нэг хуулбар процессоор шалгагдаж байвал ажиллагаагүй түгжээг эзэмшдэггүй. Учир нь нэг цаг хугацаанд нэг л процесс ажиллаж чаддаг. Түүнчлэн энэ төрлийн системд хуулбар процесс нь эргэлдэхээсээ илүүтэйгээр юу ч хийдэггүй унтдаг. Зурагт үзүүлснээр:
1. Thread А буюу хуулбар процесс А нь хуваагдсан нөөцийг ашиглаж, mutex-г түгжсэн байна.
2. Thread B нь mutex-г түгжих болон блоклохыг оролдоно.
3. Хуулбар процесс А нь mutex-н түгжээг чөлөөтэй болгоно.
4. Thread А буюу хуулбар процесс А нь хуваагдсан нөөцийг ашиглаж mutex-г түгжсэн байна.