SlideShare a Scribd company logo
CS207
Үйлдлийн систем
Лекц 10
Түгжрэл (үргэлжлэл)
Хуулбар процессын төлөвлөлт
А.Хүдэр, Э.Мөнхсүх
elearn.sict.edu.mn
Lec 10.210/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Харах: Deadlock
• Гачигдал ба Түгжрэл
– Гачигдал : Хуулбар тодорхойгүй хугацаагаар хүлээнэ.
– Түгжрэл : нөөцийг тойргоор хүлээх.
– Түгжрэл Гачигдал, процесс руу хандах ямарч зам
байхгүй.
Lec 10.310/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Эргэн санах: Deadlock
Түгжрэлд оруулж болзошгүй дөрвөн нөхцөл байдаг.
• Солбилцол
– Нөөцийг нэг хугацаанд нэг л хуулбар ашиглаж чадна.
• Эзэмшээд хүлээх
– Хуулбар нь хамгийн багадаа нэг нөөцийг эзэмшиж байгаа
бөгөөд өөр хуулбарын эзэмшсэн бас нэг нөөцийг хүлээнэ
• Хүчээр суллахгүй байх
– Нөөцийг эзэмшиж байгаа хуулбар нь хэрэглэж дуусаад сайн
дураараа чөлөөлөх үед л нөөц суларна
• Тойрон хүлээх
– Тойрон хүлээж байгаа хуулбаруудын {T1, …, Tn} гэсэн
олонлог байна
» T1 is waiting for a resource that is held by T2
» T2 is waiting for a resource that is held by T3
» …
» Tn is waiting for a resource that is held by T1
Lec 10.410/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Эргэн санах:Нөөцийн хуваарилалтын графын жишээ
•T1 •T2 •T3
•R1 •R2
•R3
•R4
•Simple Resource
•Allocation Graph
•T1 •T2 •T3
•R1 •R2
•R3
•R4
•Allocation Graph
With Deadlock
•T1
•T2
•T3
•R2
•R1
•T4
•Allocation Graph
With Cycle, but
•No Deadlock
• Эргэн санах:
– Хүсэлтийн ирмэг – чиглэлт ирмэг T1  Rj
– Олголтын ирмэг – чиглэлт ирмэг Rj  Ti
Lec 10.510/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Эргэн санах : Түгжрэлийг боловсруулах аргууд
• Систем түгжрэлд орж болно дараа нь сэргээнэ
– Түгжрэлийг илрүүлэх алгоритм шаардлагатай
– Нөөцийг хүчээр суллах болон програмыг хүчээр дуусгах
техник
• Систем хэзээ ч түгжрэлд орохгүй байхыг
баталгаажуулах
– Бүх цоожны эзэмшилтийг хянах шаардлагатай
– Түгжрэлд хүргэж болох цоожнуудаас татгалзах
• Системд хэзээ ч түгжрэл гардаггүй гэж үзээд асуудлыг
мартах
– Үүнийг ихэнх үйлдлийн системд ашигладаг. Ж нь: UNIX
Lec 10.610/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Агуулга
• Түгжрэлээс урьдчилан сэргийлэх.
• Төлөвлөлтийн бодлогын зорилт.
• Бодлогын сонголтууд.
• Хэрэгжүүлэхэд анхаарах зүйлс.
Lec 10.710/04/10 Kubiatowicz CS162 ©UCB Fall 2010
T1
T2
T3
R2
R1
T4
Түгжрэлийг илрүүлэх алгоритм
• Зөвхөн нэг төрлийн нөөц  Цикл хайх
• Түгжрэлийг илрүүлэх ерөнхий алгоритм
– [X] нь m төрлийн сөрөг биш тоон вектор (нөөцийн төрөл
бүрийн тоо хэмжээ):
[FreeResources]: Нөөцийн төрөл бүрийн чөлөөтэй байгаа
хэмжээ
[RequestX]: X хуулбарын хүссэн хэмжээ
[AllocX]: X хуулбарыг эзэмшсэн хэмжээ
– Програмууд өөрсдөө дуусах эсэхийг шалгах
[Avail] = [FreeResources]
Add all nodes to UNFINISHED
do {
done = true
Foreach node in UNFINISHED {
if ([Requestnode] <= [Avail]) {
remove node from UNFINISHED
[Avail] = [Avail] + [Allocnode]
done = false
}
}
} until(done)
– UNFINISHED дотор зангилаа үүсвэл  Түгжирсэн
Lec 10.810/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Түгжрэлийг илрүүлэхийн тулд юу хийх вэ?
• Хуулбарыг таслах, нөөцийг суллах
– Гүүрний жишээ, Годзила машиныг замаас гаргаж гол руу
хаяна. Түгжрэлийг шийдэж чадсан!
– Хооллож буй нэг хуульчийг буудах
– Гэвч энэ нь үргэлж боломжтой биш – Солбилцолыг эзэмшиж
байгаа хуулбарыг устгах нь дэлхийг тогтворгүй болгоно
• Хуулбарыг устгалгүйгээр нөөцийг хүчээр суллах
– Хуулбараас нөөцийг түр зуур салгах
– Тооцооллын утгатай таарахгүй байж магадгүй
• Түгжигдсэн хуулбарыг ухраах үйлдэл
– Удирдлаганыхаа буцаах товчийг дарах
– Гүүрний жишээ, нэг машин ухраах (бусад машинуудыг ч
ухрааж болно)
– Өгөгдлийн сангийн нийтлэг технологи
– Дахиад өмнөхтэй ижил байдлаар ажилуулбал дахин түгжрэлд
орж магадгүй
• Маш олон ҮС-үүд өөр боломжийг сонгодог
Lec 10.910/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Түгжрэлээс урьдчилан сэргийлэх арга
• Хязгааргүй нөөц
– Хүн болгонд хүрэлцээтэй байхаар хангалттай нөөц оруулах. Гэхдээ
хязгааргүй биш, зүгээр их гэж үз.
– Хязгааргүй нөөц байгаа мэт сэтгэгдэл төрүүлэх.( ж.нь Виртуаль
санах ой ашиглана.)
– жишээ:
» Bay гүүр 12,000 эгнээтэй. Хэзээ ч хүлээдэггүй!
» Хязгааргүй багтаамжтай диск (энэ хараахан бодитой зүйл биш?)
• Нөөцийг хуваалцахгүй (бүрэн бие даасан хуулбар)
– Бодит биш
• Хүлээхийг зөвшөөрдөггүй.
– Утасны компани түгжрэлээс яаж зайлсхийдэг вэ?
» Таны ээж Сэлэнгэ аймгаас залгахад ажлын утас завгүй байсан тул
завгүй байна гэсэн дохио өгсөн.
– Олон процессортой сүлжээний Ethernet-д ашигладаг арга техник.
» Хүн бүр зэрэг ярьдаг. Мөргөлдөөн үүсвэл зогсоогоод дахиж оролдоно.
– Үр дүнгүй: Яагаад гэвэл дахин оролддог.
• Дараах жишээг авч үзье: Их дэлгүүр лүү явж байтал зам түгжрэлтэй
байсан тул гэрлүүгээ хариад дахиж явах болно.
Lec 10.1010/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Түгжрэлээс урьдчилан сэргийлэх техник
• Бүх хуулбаруудын шаардлагатай бүх зүйлийг эхэндээ тодорхойлдог
болгох.
– Асуудал: Ирээдүйд хэр их нөөц хэрэгтэйг зөгнөн хэлэхэд хэцүү.
Учир нөөцийг ихээр үнэлж магадгүй.
– Жишээ нь:
» хоёр савх шаардлагатай үед хоёуланг нь зэрэг хүсэх.
» Очих газар хүртлэх бүх уулзвар чөлөөтэй байна. Гэвч гэртээ очиж
чадахгүй байж болно. Учир нь гэрлүү явахад таарах гүүрээр нэг
агшинд зөвхөн нэг машин л гардаг.
• Бүх хуулбарын нөөцийн хүсэлтийг хүчээр тодорхой дараалалд
оруулж нөөцийг тойрон хүлээлтээр урьдчилан сэргийлэх.
– Ийм аргаар бид түгжрэлээс урьдчилан сэргийлэнэ.
– Жишээ нь (x.P, y.P, z.P,…)
» Програмуудын хүсэлтийг диск, санах ойд, … гэх мэт дарааралтай
болгох.
» Хотоос гадуурах хурдны зам дээр баруун тийш эргүүлэх.
Lec 10.1110/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Эргэн санах : Галт тэрэгний жишээ (Нүхтэй сүлжээ)
• Тойрог хамаарал (Түгжрэл!)
– Галт тэрэг (г.т) бүр баруун тийшээ эргэхийг хүснэ
– Өөр г.т ээр блоклогдсон байна
– Олон процессортой сүлжээнд үүнтэй яг адил асуудал
үүсдэг
• Шийдэл? Тор нь 4 зүгт чиглэсэн байна гэж төсөөл
– Сувгуудыг хүчээр эрэмбэлье (зам)
» Дүрэм: Эхлээд зүүн баруун, дараа нь хойшоо урагшаа
– “Хэмжээсийг эрэмбэлэх” буюу (X ба Y) гэж нэрлэнэ
Lec 10.1210/04/10 Kubiatowicz CS162 ©UCB Fall 2010
• Зөв санаа:
– Хэрэгтэй нөөцийн хамгийн их хэмжээг урьдчилан зарлах.
– Дараах нөхцөл биелэж байвал тодорхой хуулбарыг зөвшөөрөх:
(Байгаа нөөц- хүсэж байгаа нөөц)  үлдсэн
хуулбаруудад хэрэгтэй нөөцийн МАХ хэмжээ.
• Банкны алгоритм :
– Динамикаар нөөцийг хуваарилах.
» Нөөцйн хүсэлтийг биелүүлсэний дараа хуулбарууд түгжрэлд
оролгүйгээр ажиллаж дуусах эсэхийг баталгаажуулах.
» Арга: хүсэлт бүрд нөөц өгсөн мэт дүр эсгээд, дараа нь түгжрэл
илрүүлэх алгоритмыг ажиллуулана.
([Maxnode]-[Allocnode] ≤ [Avail]) for ([Requestnode] ≤ [Avail])
Үр дүн нь түгжрэлгүй бол хүсэлтйг биелүүлэнэ.
» Системийг “АЮУЛГҮЙ” төлөвт байлгах. Ө.х {T1, T2, … Tn}
буюу T1 ийн хүссэн бүх нөөцөө олж аваад дуусаад, дараа нь T2
хүссэн бүх нөөцөө ... гэх мэт дараалалд оршин байна.
– Алгоритм нь одоо байгаа хуулбаруудын хамгийн хэрэгцээт
нөөцийн нийлбэрээс нийт байгаа нөөц их байх боломжийг
олгоно.
Түгжрэлээс сэргийлэх банкирын алгоритм
Lec 10.1310/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Банкны алгоритмын жишээ
• Банкны алгоритмыг хуулчид хэрэглэвэл
– түгжрэлд орохгүй болно.Савхаа авах үед дараах нөхцөл
биелж байвал “Аюулгүй” :
» Сүүлийн савх биш байх ёстой.
» Сүүлийн савх мөн гэхдээ авсны дараа хэн нэгэн 2
савхтай болно.
– Хэрвээ хуульч k гартай бол? Доорх нөхцөл биелж
байвал зөвшөөрөхгүй:
» Сүүлийн савх, хэн ч k савхтай болоогүй байгаа.
» Сүүлээсээ хоёр дахь савх k-1савхтай болоогүй байгаа.
» Сүүлээсээ гурав дахь савх k-2савхтай болоогүй байгаа.
Lec 10.1410/04/10 Kubiatowicz CS162 ©UCB Fall 2010
CPU төлөвлөлт
• Өмнө нь бид хуулбарын амьдралын циклийн талаар ярилцсан.
– Идэвхитэй хуулбар нь ажиллахад бэлэн дарааллал->Ажиллах
төлөв-> Хүлээж байгаа дараалал гэсэн циклээр амьдрана.
• Асуулт: Үйлдлийн систем нь дараалалд байгаа програмын алийг нь
сонгон авч биелүүлэхээ хэрхэн шийддэг вэ?
– Энэ асуудал үүсгэдэг дараалал нь бэлэн дараалал юм.
– Гэхдээ бусад дарааллыг бас төлөвлөнө.
• Төлөвлөлт: Аль хуулбар ямар агшинд ямар нөөцийг
эзэмшихийг шийдвэрлэнэ.
Lec 10.1510/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Төлөвлөлтийн хялбаршуулалт
• 70-аад оны үед CPU төлөвлөх судалгаа том салбар байсан.
• CPU төлөвлөлтийн олон хялбаршуулалт байдаг:
– Хэрэглэгч бүрт нэг програм
– Програм бүрт нэг хуулбар
– Биеэ даасан програмууд
• Энэ нь бодитой биш гэхдээ асуудлыг хялбарчилж
шийдвэрлэх боломжтой болгож байгаа юм.
– Жишээ нь: Програм болон хэрэглэчийн хувьд “Шударга”
байж чадах уу?
» Би нэг програм ажиллуудаг. Харин та 5 програм ажиллуулж
байгаа бол ихэнх үйлдлийн системд тав дахин их хугацаанд
CPU ашиглах хэрэгтэй.
• Дээд түвшний зорилго: Системийн зарим үзүүлэлтийг оновчтой
болгохын тулд CPU-ний хугацааг хуваах.
USER1 USER2 USER3 USER1 USER2
Time
Lec 10.1610/04/10 Kubiatowicz CS162 ©UCB Fall 2010
хялбаршуулалт : CPU зарцуулалт
• Гүйцэтгэлийн загвар: Програмд оролт гаралт болон СPU
зарцуулалт ээлжлэн байдаг.
– Програмын ихэвчлэн CPU хэсэг хугацаанд ашиглаад дараа
нь оролт гаралт дараа нь CPU гэх мэтээр ажилладаг.
– Төлөлвлөлтийн шийдвэр нь аль програмд CPU-г өгч CPU-
ний зарцуулалтыг ашиглуулах тухай байна.
– Хугацааны хуваалттай үед хуулбар нь одоогийн CPU-ний
зарцуулалт дуусахаас өмнө CPU-г орхидог.
Weighted toward small bursts
Lec 10.1710/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Төлөвлөлтийн бодлогын зорилт/шалгуур
• Хариу өгөх хугацааг бага байлгах.
– Үйлдэл (эсвэл ажил) хийхэд шаардагдах хугацааг аль болох бага
байлгах.
– Хариу өгөх хугацааг хэрэглэгч харна:
» Бичигч дээр товч дарахад тэмдэгт гарах хугацаа
» Програмын хөрвүүлэлт хийх хугацаа
» Бодит хугацааны програм: Бодит ертөнцийн хугацаанд барих
ёстой.
• Нэвтрүүлэх чадвар хамгийн их байх.
– Секундэнд хийх ажил эсвэл үйлдэл хамгийн их байлгах.
– Нэвтрүүлэх чадвар хариу өгөх хугацаатай тэгэхдээ ялгаатай:
» Хариу өгөх хугацаа багасгаснаар бодлого солилтийг нэвтрүүлэх
чадварыг ихэсгэх үеийнхээс илүү олон удаа хийнэ.
– Нэвтрүүлэлтийг нэмэгдүүлэх нь 2 хэсгээс бүрдэнэ.
» Нэмэлт зардал хамгийн бага байх (жишээ нь: бодлого солих)
» Нөөцийг үр ашигтай, хэмнэлттэй ашиглах(CPU, disk, memory, etc)
• Шударга байх
– Хэрэглэгчид CPU-г тэгш хуваалцах.
– Шударга байснаар хариу өгөх дундаж хугацаа багасахгүй:
» Системд шударга явдал бага байх тусам хариу өгөх хугацаа
Lec 10.1810/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Эхэнд ирсэн нь Эхэлж үйлчлүүлдэг төлөвлөлт
• Эхэнд ирсэн нь Эхэлж үйлчлүүлэх(FCFS)
– Мөн “Түрүүлж ирээд, Түрүүлж гарна” (FIFO) эсвэл “Ажил дуустал
ажиллуулана”
» Эртний системүүдэд FCFS гэдэг нь нэг програмыг
дуустал нь ажиллуулана гэж үздэг байсан.
» Одоо, CPU хуулбарыг блоклолтонд ортол нь ажиллуулана..
• Жишээ: Процесс заруулах хугацаа
P1 24
P2 3
P3 3
– Процессуудын ирсэн дараалал: P1 , P2 , P3
Төлөвлөлтийн Гант диаграм:
– Хүлээх хугацаа P1 = 0; P2 = 24; P3 = 27
– Дундаж хүлээх хугацаа: (0 + 24 + 27)/3 = 17
– Биелэлтийн дундаж хугацаа: (24 + 27 + 30)/3 = 27
• Цуваан нөлөө: урт процессын цаана богино процесс удаан хүлээж
байна.
P1 P2 P3
24 27 300
Lec 10.1910/04/10 Kubiatowicz CS162 ©UCB Fall 2010
FCFS төлөвлөлтийн үргэлжлэл
• Жишээний үргэлжлэл:
– Процессудын дараалал ийм байвал: P2 , P3 , P1
Одоо Гант диаграм дараах байдалтай болно:
– Хүлээх хугацаа P1 = 6; P2 = 0; P3 = 3
– Дундаж хүлээх хугацаа: (6 + 0 + 3)/3 = 3
– Биелэлтийн дундаж хугацаа : (3 + 6 + 30)/3 = 13
• Хоёр дах тохиолдолд:
– Дундаж хүлээх хугацаа маш бага байна (өмнө нь 17 байсан )
– Биелэлтийн дундаж хугацаа бага (өмнө нь 27 байсан)
• FIFO-н давуу (+) ба сул тал (-):
– Хялбар (+)
– Урт ажлын ард богино ажил гацах магадлалтай (-)
» зөвөлгөө: Сүү авахдаа үргэлж олон жижиг бараатай хүний ард
гацах.
P1P3P2
63 300
Lec 10.2010/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Тойрон эргэх(RR)
• FCFS схем: Богино ажилд халтай!
– Ирсэн дарааллаас хамааралтай.
– Хэрэв та дэлгүүрт хамгийн түрүүнд ирсэн бол сүү авна,
нөгөө талаас танд ард чинь хэн байх нь хамаагүй
• Тойрон эргэх схем
– Процесс бүр маш бага хугацаанд СPU-г эзэмшинэ.
(хугацааны квант), ихэвчлэн 10-100 милсекунд.
– Квантын (эзэмших) хугацаа нь дууссан процессыг зогсоож
бэлэн дарааллын төгсгөлд аваачина.
– n бэлэн дараалал, q квантын хугацаа 
» Процесс бүх 1/n хугацаанд CPU-г эзэмшдэг.
» Ихэнх нь q хугацаагаар эзэмшдэг.
» Ямар ч процесс (n-1)*q-ээс илүү хугацаагаар хүлээхгүй.
• Гүйцэтгэл
– q том  FCFS
– q бага Ээлжлэн ажиллана( маш бага hyperthreading?)
– q –н хэмжээ нь бодлого солилттой харьцангуйгаар их байх ёстой,
үгүй бол нэмэлт зардал хэт өндөр (100 % нэмэлт ажил)
Lec 10.2110/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Жишээ RR схем квант хугацаа = 20
• Жишээ: Process Burst Time
P1 53
P2 8
P3 68
P4 24
– Гант диаграм:
– Хүлээх хугацаа P1=(68-20)+(112-88)=72
P2=(20-0)=20
P3=(28-0)+(88-48)+(125-108)=85
P4=(48-0)+(108-68)=88
– Дундаж хүлээх хугацаа= (72+20+85+88)/4=66¼
– Биелэлтийн дундаж хугацаа = (125+28+153+112)/4 = 104½
• Иймээс, Тойрон эргэх схемийн давуу ба сул тал:
– Богино ажилд ээлтэй, шударга (+)
– урт програмуудад бодлого солилтын хугацаа нэмэгдэнэ.(-)
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 28 48 68 88 108 112 125 145 153
Lec 10.2210/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Тойрон эргэхээр ярилцах
• Та хугацааны хуваалтыг яаж сонгох вэ?
– Хэтэрхий том бол ямар вэ?
» Хариу өгөх хугацаа ихсэнэ.
– Хязгааргүй бол яах вэ ()?
» FIFO буцааж авна
– Хугацаа хэтэрхий жижиг бол ямар вэ?
» Нэвтрүүлэх чадвар багасана!
• Хугацааны хуваалтын бодит сонголт:
– Эхлээд UNIX-н хугацааны хуваалт нэг секунд байсан:
» UNIX нь нэг хоёр хүн зэрэг ашилахад хэвийн ажиллана.
» Гурван дахь нь ашиглуул юм болох уу? Товч дарахад
дэлгэцэнд 3 секундын дараа гарч ирнэ!
– Бодит байдал дээр, богино ажлын гүйцэтгэл болон урт
ажлын нэвтрүүлэх чадварыг тэнцвэржүүлэх хэрэгтэй :
» Хугацааны хуваалт нь 10ms – 100ms байна
» Бодлогын солилтын хугацаа 0.1ms – 1ms байна.
» Ойролцоогоор 1% бодлого солилтонд зарцуулагдана.
Lec 10.2310/04/10 Kubiatowicz CS162 ©UCB Fall 2010
FCFS болон Round Robin хоорондын харьцуулалт
• Бодлого солилтын зардал 0 гэж үзвэл RR,FCFS хоёрын аль
нь илүү вэ?
• Хялбар жишээ: 10 ажил, ажил бүр 100s CPU-г эзэмшинэ.
RR-н квант хугацаа нь 1s
Бүх ажил зэрэг эхлэнэ.
• Биелэлтийн хугацаа:
– RR болон FCFS хоёулаа зэрэг дуусаж байна.
– RR-н хариу өгөх дундаж хугацаа их муу байна!
» Бүх ажил ижил урттай байгаа нь мууд нөлөөллөө.
• Мөн: RR нь кэш санах ойг бүх ажлуудад хувааж зарцуулсан
харин FIFO нь ажил бүр тус тусд зарцуулсан.
– Бодлого солилтын нийт зардал 0 байсан ч RR нь удаан
байна. !
Job # FIFO RR
1 100 991
2 200 992
… … …
9 900 999
10 1000 1000
Lec 10.2410/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Quantum
Completion
Time
Wait
Time
AverageP4P3P2P1
Өмнөх жишээний квантын хугацааг өөр өөр болговол
P2
[8]
P4
[24]
P1
[53]
P3
[68]
0 8 32 85 153
Best FCFS:
6257852284Q = 1
104½11215328125Q = 20
100½8115330137Q = 1
66¼88852072Q = 20
31¼885032Best FCFS
121¾14568153121Worst FCFS
69½32153885Best FCFS
83½121014568Worst FCFS
95½8015316133Q = 8
57¼5685880Q = 8
99½9215318135Q = 10
99½8215328135Q = 5
61¼68851082Q = 10
61¼58852082Q = 5
Lec 10.2510/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Бид ирээдүйг мэддэг бол юу болох вэ?
• Бид үргэлж FCFS хэрэглэх хэрэгтэй юу?
• Хамгийн богино ажлыг эхэлж хийнэ (SJF):
– Хамгийн бага хугацаатай прорамыг ажилуулана..
– Зарим тохиолдолд “богино хугацаатай нь
Эхэлж дуусана” (STCF) гэж нэрэлдэг.
• Хамгийн богино хугацаа үлдсэн нь эхэлж ажиллах(SRTF):
– SJF-ны хүчээр суллах хувилбар юм: Хэрвээ ирж байгаа
програмын хугацаа нь одооо ажиллаж байгаа програмын
үлдсэн хугацаанаас богино бол CPU –г хүчээр эзэмшүүлэнэ.
– Зарим тохиолдолд “богино хугацаа үлдсэн нь эхэлж дуусана”
(SRTCF)
• Үүийг бүтэн програм дээр эсвэл одоогийн CPU –ний зарцуулалт дээр
хэрэглэж болно.
– Санаа нь богино ажлуудыг системээс гаргах.
– Богино ажлууд дээр их үр дүнтэй, урт ажлууд дээр бага үр
дүн гэсэн сонголтыг хийнэ.
– Үр дүнд нь хариу өгөх дундаж хугацаа сайжирна.
Lec 10.2610/04/10 Kubiatowicz CS162 ©UCB Fall 2010
хэлэлцүүлэг
• SJF/SRTF нь хариу өгөх дундаж хугацааг багасгахад
тохирно.
– Оновчтойг нь баталж болно. (SJF хүчээр суллахгүй дотроо,
SRTF хүчээр дотроо сулладаг арга үр дүнтэй.)
– SRTF нь SJF-с үргэлж сайн байдаг учраас SRTF дээр
анхаарлаа хандуулья.
• SRTF-ийн FCFS болон RR-ийн харьцуулалт
– Бүх ажил ижил урттай бол яах вэ?
» SRTF нь FCFS-тэй адилхан болно (ө.х FCFS нь бүх адил
урттай үед шилдэг нь юм.)
– Ажлуудын урт янз бүр бол яах вэ?
» SRTF (and RR): богино ажлууд урт ажлыг ардаа оруулана.
Lec 10.2710/04/10 Kubiatowicz CS162 ©UCB Fall 2010
SRTF-н давуу талыг харуулсан жишээ
• Гурван ажил байна:
– A,B: нь хоёулаа CPU-г долоо хоног ашигладаг
– C: оролт гаралтын үүрэгтэй , нэг давталт нь 1ms CPU, 9ms
дискны оролт гаралтат зарцуулдаг.
– Ажлууд тус тусдаа ажиллавал C ажил дискний 90% хувийг,
A эсвэл B хоёрын нэг нь CPU –г 100% ашиглаж чаддаг.
• FIFO дээр:
– А болон В ажил нэг нэг долоо хоног нийлээд 2 долоо хононо.
• RR эсвэл SRTF ямар бол?
– Хугацааг графикаас хялбархан харж болно.
C
C’s
I/O
C’s
I/O
C’s
I/O
A or B
Lec 10.2810/04/10 Kubiatowicz CS162 ©UCB Fall 2010
SRTF жишээний үргэлжлэл:
C’s
I/O
CABAB… C
C’s
I/O
RR 1ms time slice
C’s
I/O
C’s
I/O
CA BC
RR 100ms time slice
C’s
I/O
AC
C’s
I/O
AA
SRTF
Disk Utilization:
~90% but lots of
wakeups!
Disk Utilization:
90%
Disk Utilization:
9/201 ~ 4.5%
Lec 10.2910/04/10 Kubiatowicz CS162 ©UCB Fall 2010
SRTF-н дэлгэрэнгүй хэлэлцүүлэг
• Гачигдал
– SRTF-аар олон жижиг ажил гачигдалд хүргэж болно!
– Том програмууд хэзээ ч ажиллахгүй.
• Ямар нэг байдлаар ирээдүйг таамаглах хэрэгтэй.
– Бид үүнийг хийж чадах уу?
– Зарим системын хэрэглэгчээсээ асуудаг
» Та програм илгээж байгаа бол хэр удаан ажилахыг нь хэлэх
хэрэгтэй
» Худлаа хугацаа өгөөд хугацаанаасаа хэтрэвэл систем
програмыг зогсооно.
– Гэвч хор хөнөөлгүй хэрэгчийн програмын ажилах хугацааг
таамаглахад хэцүү байдаг.
• Програм хэр удаан ажиллахыг хэн ч мэдэж чадахгүй.
– Гэхдээ SRTF-г бусад шалгууруудийг хэмжих
хэмжүүр болгон ашиглаж болно.
– Оновчтой учраас цаашид сайжруулах боломжгүй.
• SRTF давуу ба сул тал:
– Оновчтой (дундаж хариу өгөх хугацааны хувьд) (+)
– Ирээдүйг таамаглахад хэцүү(-)
– Шударга бус (-)
Lec 10.3010/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Дүгнэлт (Түгжрэл)
Түгжрэлд оруулж болзошгүй дөрвөн нөхцөл байдаг.
• Солбилцол
– Нөөцийг нэг хугацаанд нэг л хуулбар ашиглаж чадна.
• Эзэмшээд хүлээх
– Хуулбар нь хамгийн багадаа нэг нөөцийг эзэмшиж байгаа бөгөөд өөр
хуулбарын эзэмшсэн бас нэг нөөцийг хүлээнэ
• Хүчээр суллахгүй байх
– Нөөцийг эзэмшиж байгаа хуулбар нь хэрэглэж дуусаад сайн дураараа
чөлөөлөх үед л нөөц суларна
• Тойрон хүлээх
– Тойрон хүлээж байгаа хуулбаруудын {T1, …, Tn} гэсэн олонлог байна
• Түгжрэлийг илрүүлэх
– Хүлээх дараалалд ахиц дэвшил гарч байгаа эхэсхийг байнга үнэлэх.
• Түгжрэлээс урьдчилан сэргийлэх
– Хуваарьлалт бүрийг түгжрэлд оруулж болзошгүй эсэхийг үнэлэж
судлах.
– Банкны алгоритм нь үнэлэх нэг боломжийг өгдөг
Lec 10.3110/04/10 Kubiatowicz CS162 ©UCB Fall 2010
Дүгнэлт(Хуваарьлалт)
• Хуваарьлалт: бэлэн дараалалд хүлээж байгаа процессуудаас сонгон
авч түүнд CPU –r хуваарьлах үйлдэл юм.
• FCFS хуваарьлалт:
– Орж ирсэд дарааллаар хуулбарыг ажиллууладаг.
– Давуу тал: Хялбар
– Сул тал: Богино ажил урд ажлын ард гацах магадлалтай.
• Round-Robin хуваарьлалт:
– Хуулбарууд маш богино хугацаанд CPU –г эзэмших ба энэ
үйлдэл нь тойргоор явагдана.
– Давуу тал: Богино ажилд ээлтэй.
– Cул тал: Ажлуудын урт ижил үед тохиромжгүй.
• Богино ажил эхэлж ажиллана(SJF)/Үлдсэн хугацаа нь
богино эхэлж ажиллана (SRTF):
– Ямар тохиолдолд хамгийн бага хугацаатай болон дуусахад
үлдсэн хугацаа багатайг тооцоолж ажиллуулана.
– Давуу тал : Оновчтой (дундаж хариу өгөх хугацааны хувьд
– Сул тал: Ирээдүйг таамаглахад хэцүү, Шударга бус

More Related Content

PDF
Systemiin shinjilgee ba zohiomj lekts
PPTX
Lec02 structures (2)
PPTX
Lec11 protection
PPTX
Lec04 threads
PPTX
Lec09 deadlock
PPT
Lec08 readerwriter
PPTX
Lec13 cachetlb
PPTX
Lec14 demandpage
Systemiin shinjilgee ba zohiomj lekts
Lec02 structures (2)
Lec11 protection
Lec04 threads
Lec09 deadlock
Lec08 readerwriter
Lec13 cachetlb
Lec14 demandpage

What's hot (20)

PPTX
Lec12 translation
PPTX
өгөгдлийн сангийн удирдлага
PPTX
Lec03 concurrency (2)
PPTX
DOCX
Eoffice n gariin avlaga
PPT
005 өгөгдлийн нөөцийн удирдлага
PPTX
PPTX
Lec06 synchronization
PPTX
Lecture 15&amp;16
PPTX
кино театрын тасалбар захиалгын систем
PPTX
TCP/IP protocol
PDF
Lecture 1
PPTX
мэдээллийн системийн үндэс
PPTX
Lekts presentation1
PDF
сүлжээний хичээл
PDF
Ogogdliin sangiin zohion baiguulalt lekts
PPTX
дотоод сүлжээ
PPT
Lec01 intro (1) (2)
PPTX
RDBMS MySQL DB server
Lec12 translation
өгөгдлийн сангийн удирдлага
Lec03 concurrency (2)
Eoffice n gariin avlaga
005 өгөгдлийн нөөцийн удирдлага
Lec06 synchronization
Lecture 15&amp;16
кино театрын тасалбар захиалгын систем
TCP/IP protocol
Lecture 1
мэдээллийн системийн үндэс
Lekts presentation1
сүлжээний хичээл
Ogogdliin sangiin zohion baiguulalt lekts
дотоод сүлжээ
Lec01 intro (1) (2)
RDBMS MySQL DB server
Ad

Similar to Lec10 scheduling (20)

PDF
Lecture 7 os
PPTX
Lec07 exclusion
PPT
Lab15 tugjrel
PDF
Lecture 9 os
PPTX
PPTX
Lec05 cooperating (1)
PPTX
Lecture7
PPT
си хэлний ойлголт
PPTX
U.cs101 алгоритм программчлал-5 zasvar badral(1)
PPTX
Lec15 pagereplace last
PPT
алгоритм
PDF
u.cs101 "Алгоритм ба програмчлал" Лекц №2
PPTX
U.cs101 алгоритм программчлал-1(1)
DOCX
11-angi-hutulburхмиааөмөмөмөмөаммаа.docx
PPTX
S.CS101 Лекц-03
PPTX
Datastructure algoritm
POTX
өгөгдөл дамжуулах лекц
PDF
Mtms5 network
PPTX
Cs101 lec3
Lecture 7 os
Lec07 exclusion
Lab15 tugjrel
Lecture 9 os
Lec05 cooperating (1)
Lecture7
си хэлний ойлголт
U.cs101 алгоритм программчлал-5 zasvar badral(1)
Lec15 pagereplace last
алгоритм
u.cs101 "Алгоритм ба програмчлал" Лекц №2
U.cs101 алгоритм программчлал-1(1)
11-angi-hutulburхмиааөмөмөмөмөаммаа.docx
S.CS101 Лекц-03
Datastructure algoritm
өгөгдөл дамжуулах лекц
Mtms5 network
Cs101 lec3
Ad

More from Khuder Altangerel (9)

PPTX
IOI 2016 "Молекул" бодлогын бодолт
PPTX
Марковын далд загвар
PPTX
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
PDF
u.cs101 "Алгоритм ба програмчлал" Лекц №7
PDF
u.cs101 "Алгоритм ба програмчлал" Лекц №6
PDF
u.cs101 "Алгоритм ба програмчлал" Лекц №5
PDF
u.cs101 "Алгоритм ба програмчлал" Лекц №4
PDF
u.cs101 "Алгоритм ба програмчлал" Лекц №3
PDF
u.cs101 "Алгоритм ба програмчлал" Лекц №1
IOI 2016 "Молекул" бодлогын бодолт
Марковын далд загвар
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №1

Lec10 scheduling

  • 1. CS207 Үйлдлийн систем Лекц 10 Түгжрэл (үргэлжлэл) Хуулбар процессын төлөвлөлт А.Хүдэр, Э.Мөнхсүх elearn.sict.edu.mn
  • 2. Lec 10.210/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Харах: Deadlock • Гачигдал ба Түгжрэл – Гачигдал : Хуулбар тодорхойгүй хугацаагаар хүлээнэ. – Түгжрэл : нөөцийг тойргоор хүлээх. – Түгжрэл Гачигдал, процесс руу хандах ямарч зам байхгүй.
  • 3. Lec 10.310/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Эргэн санах: Deadlock Түгжрэлд оруулж болзошгүй дөрвөн нөхцөл байдаг. • Солбилцол – Нөөцийг нэг хугацаанд нэг л хуулбар ашиглаж чадна. • Эзэмшээд хүлээх – Хуулбар нь хамгийн багадаа нэг нөөцийг эзэмшиж байгаа бөгөөд өөр хуулбарын эзэмшсэн бас нэг нөөцийг хүлээнэ • Хүчээр суллахгүй байх – Нөөцийг эзэмшиж байгаа хуулбар нь хэрэглэж дуусаад сайн дураараа чөлөөлөх үед л нөөц суларна • Тойрон хүлээх – Тойрон хүлээж байгаа хуулбаруудын {T1, …, Tn} гэсэн олонлог байна » T1 is waiting for a resource that is held by T2 » T2 is waiting for a resource that is held by T3 » … » Tn is waiting for a resource that is held by T1
  • 4. Lec 10.410/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Эргэн санах:Нөөцийн хуваарилалтын графын жишээ •T1 •T2 •T3 •R1 •R2 •R3 •R4 •Simple Resource •Allocation Graph •T1 •T2 •T3 •R1 •R2 •R3 •R4 •Allocation Graph With Deadlock •T1 •T2 •T3 •R2 •R1 •T4 •Allocation Graph With Cycle, but •No Deadlock • Эргэн санах: – Хүсэлтийн ирмэг – чиглэлт ирмэг T1  Rj – Олголтын ирмэг – чиглэлт ирмэг Rj  Ti
  • 5. Lec 10.510/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Эргэн санах : Түгжрэлийг боловсруулах аргууд • Систем түгжрэлд орж болно дараа нь сэргээнэ – Түгжрэлийг илрүүлэх алгоритм шаардлагатай – Нөөцийг хүчээр суллах болон програмыг хүчээр дуусгах техник • Систем хэзээ ч түгжрэлд орохгүй байхыг баталгаажуулах – Бүх цоожны эзэмшилтийг хянах шаардлагатай – Түгжрэлд хүргэж болох цоожнуудаас татгалзах • Системд хэзээ ч түгжрэл гардаггүй гэж үзээд асуудлыг мартах – Үүнийг ихэнх үйлдлийн системд ашигладаг. Ж нь: UNIX
  • 6. Lec 10.610/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Агуулга • Түгжрэлээс урьдчилан сэргийлэх. • Төлөвлөлтийн бодлогын зорилт. • Бодлогын сонголтууд. • Хэрэгжүүлэхэд анхаарах зүйлс.
  • 7. Lec 10.710/04/10 Kubiatowicz CS162 ©UCB Fall 2010 T1 T2 T3 R2 R1 T4 Түгжрэлийг илрүүлэх алгоритм • Зөвхөн нэг төрлийн нөөц  Цикл хайх • Түгжрэлийг илрүүлэх ерөнхий алгоритм – [X] нь m төрлийн сөрөг биш тоон вектор (нөөцийн төрөл бүрийн тоо хэмжээ): [FreeResources]: Нөөцийн төрөл бүрийн чөлөөтэй байгаа хэмжээ [RequestX]: X хуулбарын хүссэн хэмжээ [AllocX]: X хуулбарыг эзэмшсэн хэмжээ – Програмууд өөрсдөө дуусах эсэхийг шалгах [Avail] = [FreeResources] Add all nodes to UNFINISHED do { done = true Foreach node in UNFINISHED { if ([Requestnode] <= [Avail]) { remove node from UNFINISHED [Avail] = [Avail] + [Allocnode] done = false } } } until(done) – UNFINISHED дотор зангилаа үүсвэл  Түгжирсэн
  • 8. Lec 10.810/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Түгжрэлийг илрүүлэхийн тулд юу хийх вэ? • Хуулбарыг таслах, нөөцийг суллах – Гүүрний жишээ, Годзила машиныг замаас гаргаж гол руу хаяна. Түгжрэлийг шийдэж чадсан! – Хооллож буй нэг хуульчийг буудах – Гэвч энэ нь үргэлж боломжтой биш – Солбилцолыг эзэмшиж байгаа хуулбарыг устгах нь дэлхийг тогтворгүй болгоно • Хуулбарыг устгалгүйгээр нөөцийг хүчээр суллах – Хуулбараас нөөцийг түр зуур салгах – Тооцооллын утгатай таарахгүй байж магадгүй • Түгжигдсэн хуулбарыг ухраах үйлдэл – Удирдлаганыхаа буцаах товчийг дарах – Гүүрний жишээ, нэг машин ухраах (бусад машинуудыг ч ухрааж болно) – Өгөгдлийн сангийн нийтлэг технологи – Дахиад өмнөхтэй ижил байдлаар ажилуулбал дахин түгжрэлд орж магадгүй • Маш олон ҮС-үүд өөр боломжийг сонгодог
  • 9. Lec 10.910/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Түгжрэлээс урьдчилан сэргийлэх арга • Хязгааргүй нөөц – Хүн болгонд хүрэлцээтэй байхаар хангалттай нөөц оруулах. Гэхдээ хязгааргүй биш, зүгээр их гэж үз. – Хязгааргүй нөөц байгаа мэт сэтгэгдэл төрүүлэх.( ж.нь Виртуаль санах ой ашиглана.) – жишээ: » Bay гүүр 12,000 эгнээтэй. Хэзээ ч хүлээдэггүй! » Хязгааргүй багтаамжтай диск (энэ хараахан бодитой зүйл биш?) • Нөөцийг хуваалцахгүй (бүрэн бие даасан хуулбар) – Бодит биш • Хүлээхийг зөвшөөрдөггүй. – Утасны компани түгжрэлээс яаж зайлсхийдэг вэ? » Таны ээж Сэлэнгэ аймгаас залгахад ажлын утас завгүй байсан тул завгүй байна гэсэн дохио өгсөн. – Олон процессортой сүлжээний Ethernet-д ашигладаг арга техник. » Хүн бүр зэрэг ярьдаг. Мөргөлдөөн үүсвэл зогсоогоод дахиж оролдоно. – Үр дүнгүй: Яагаад гэвэл дахин оролддог. • Дараах жишээг авч үзье: Их дэлгүүр лүү явж байтал зам түгжрэлтэй байсан тул гэрлүүгээ хариад дахиж явах болно.
  • 10. Lec 10.1010/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Түгжрэлээс урьдчилан сэргийлэх техник • Бүх хуулбаруудын шаардлагатай бүх зүйлийг эхэндээ тодорхойлдог болгох. – Асуудал: Ирээдүйд хэр их нөөц хэрэгтэйг зөгнөн хэлэхэд хэцүү. Учир нөөцийг ихээр үнэлж магадгүй. – Жишээ нь: » хоёр савх шаардлагатай үед хоёуланг нь зэрэг хүсэх. » Очих газар хүртлэх бүх уулзвар чөлөөтэй байна. Гэвч гэртээ очиж чадахгүй байж болно. Учир нь гэрлүү явахад таарах гүүрээр нэг агшинд зөвхөн нэг машин л гардаг. • Бүх хуулбарын нөөцийн хүсэлтийг хүчээр тодорхой дараалалд оруулж нөөцийг тойрон хүлээлтээр урьдчилан сэргийлэх. – Ийм аргаар бид түгжрэлээс урьдчилан сэргийлэнэ. – Жишээ нь (x.P, y.P, z.P,…) » Програмуудын хүсэлтийг диск, санах ойд, … гэх мэт дарааралтай болгох. » Хотоос гадуурах хурдны зам дээр баруун тийш эргүүлэх.
  • 11. Lec 10.1110/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Эргэн санах : Галт тэрэгний жишээ (Нүхтэй сүлжээ) • Тойрог хамаарал (Түгжрэл!) – Галт тэрэг (г.т) бүр баруун тийшээ эргэхийг хүснэ – Өөр г.т ээр блоклогдсон байна – Олон процессортой сүлжээнд үүнтэй яг адил асуудал үүсдэг • Шийдэл? Тор нь 4 зүгт чиглэсэн байна гэж төсөөл – Сувгуудыг хүчээр эрэмбэлье (зам) » Дүрэм: Эхлээд зүүн баруун, дараа нь хойшоо урагшаа – “Хэмжээсийг эрэмбэлэх” буюу (X ба Y) гэж нэрлэнэ
  • 12. Lec 10.1210/04/10 Kubiatowicz CS162 ©UCB Fall 2010 • Зөв санаа: – Хэрэгтэй нөөцийн хамгийн их хэмжээг урьдчилан зарлах. – Дараах нөхцөл биелэж байвал тодорхой хуулбарыг зөвшөөрөх: (Байгаа нөөц- хүсэж байгаа нөөц)  үлдсэн хуулбаруудад хэрэгтэй нөөцийн МАХ хэмжээ. • Банкны алгоритм : – Динамикаар нөөцийг хуваарилах. » Нөөцйн хүсэлтийг биелүүлсэний дараа хуулбарууд түгжрэлд оролгүйгээр ажиллаж дуусах эсэхийг баталгаажуулах. » Арга: хүсэлт бүрд нөөц өгсөн мэт дүр эсгээд, дараа нь түгжрэл илрүүлэх алгоритмыг ажиллуулана. ([Maxnode]-[Allocnode] ≤ [Avail]) for ([Requestnode] ≤ [Avail]) Үр дүн нь түгжрэлгүй бол хүсэлтйг биелүүлэнэ. » Системийг “АЮУЛГҮЙ” төлөвт байлгах. Ө.х {T1, T2, … Tn} буюу T1 ийн хүссэн бүх нөөцөө олж аваад дуусаад, дараа нь T2 хүссэн бүх нөөцөө ... гэх мэт дараалалд оршин байна. – Алгоритм нь одоо байгаа хуулбаруудын хамгийн хэрэгцээт нөөцийн нийлбэрээс нийт байгаа нөөц их байх боломжийг олгоно. Түгжрэлээс сэргийлэх банкирын алгоритм
  • 13. Lec 10.1310/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Банкны алгоритмын жишээ • Банкны алгоритмыг хуулчид хэрэглэвэл – түгжрэлд орохгүй болно.Савхаа авах үед дараах нөхцөл биелж байвал “Аюулгүй” : » Сүүлийн савх биш байх ёстой. » Сүүлийн савх мөн гэхдээ авсны дараа хэн нэгэн 2 савхтай болно. – Хэрвээ хуульч k гартай бол? Доорх нөхцөл биелж байвал зөвшөөрөхгүй: » Сүүлийн савх, хэн ч k савхтай болоогүй байгаа. » Сүүлээсээ хоёр дахь савх k-1савхтай болоогүй байгаа. » Сүүлээсээ гурав дахь савх k-2савхтай болоогүй байгаа.
  • 14. Lec 10.1410/04/10 Kubiatowicz CS162 ©UCB Fall 2010 CPU төлөвлөлт • Өмнө нь бид хуулбарын амьдралын циклийн талаар ярилцсан. – Идэвхитэй хуулбар нь ажиллахад бэлэн дарааллал->Ажиллах төлөв-> Хүлээж байгаа дараалал гэсэн циклээр амьдрана. • Асуулт: Үйлдлийн систем нь дараалалд байгаа програмын алийг нь сонгон авч биелүүлэхээ хэрхэн шийддэг вэ? – Энэ асуудал үүсгэдэг дараалал нь бэлэн дараалал юм. – Гэхдээ бусад дарааллыг бас төлөвлөнө. • Төлөвлөлт: Аль хуулбар ямар агшинд ямар нөөцийг эзэмшихийг шийдвэрлэнэ.
  • 15. Lec 10.1510/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Төлөвлөлтийн хялбаршуулалт • 70-аад оны үед CPU төлөвлөх судалгаа том салбар байсан. • CPU төлөвлөлтийн олон хялбаршуулалт байдаг: – Хэрэглэгч бүрт нэг програм – Програм бүрт нэг хуулбар – Биеэ даасан програмууд • Энэ нь бодитой биш гэхдээ асуудлыг хялбарчилж шийдвэрлэх боломжтой болгож байгаа юм. – Жишээ нь: Програм болон хэрэглэчийн хувьд “Шударга” байж чадах уу? » Би нэг програм ажиллуудаг. Харин та 5 програм ажиллуулж байгаа бол ихэнх үйлдлийн системд тав дахин их хугацаанд CPU ашиглах хэрэгтэй. • Дээд түвшний зорилго: Системийн зарим үзүүлэлтийг оновчтой болгохын тулд CPU-ний хугацааг хуваах. USER1 USER2 USER3 USER1 USER2 Time
  • 16. Lec 10.1610/04/10 Kubiatowicz CS162 ©UCB Fall 2010 хялбаршуулалт : CPU зарцуулалт • Гүйцэтгэлийн загвар: Програмд оролт гаралт болон СPU зарцуулалт ээлжлэн байдаг. – Програмын ихэвчлэн CPU хэсэг хугацаанд ашиглаад дараа нь оролт гаралт дараа нь CPU гэх мэтээр ажилладаг. – Төлөлвлөлтийн шийдвэр нь аль програмд CPU-г өгч CPU- ний зарцуулалтыг ашиглуулах тухай байна. – Хугацааны хуваалттай үед хуулбар нь одоогийн CPU-ний зарцуулалт дуусахаас өмнө CPU-г орхидог. Weighted toward small bursts
  • 17. Lec 10.1710/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Төлөвлөлтийн бодлогын зорилт/шалгуур • Хариу өгөх хугацааг бага байлгах. – Үйлдэл (эсвэл ажил) хийхэд шаардагдах хугацааг аль болох бага байлгах. – Хариу өгөх хугацааг хэрэглэгч харна: » Бичигч дээр товч дарахад тэмдэгт гарах хугацаа » Програмын хөрвүүлэлт хийх хугацаа » Бодит хугацааны програм: Бодит ертөнцийн хугацаанд барих ёстой. • Нэвтрүүлэх чадвар хамгийн их байх. – Секундэнд хийх ажил эсвэл үйлдэл хамгийн их байлгах. – Нэвтрүүлэх чадвар хариу өгөх хугацаатай тэгэхдээ ялгаатай: » Хариу өгөх хугацаа багасгаснаар бодлого солилтийг нэвтрүүлэх чадварыг ихэсгэх үеийнхээс илүү олон удаа хийнэ. – Нэвтрүүлэлтийг нэмэгдүүлэх нь 2 хэсгээс бүрдэнэ. » Нэмэлт зардал хамгийн бага байх (жишээ нь: бодлого солих) » Нөөцийг үр ашигтай, хэмнэлттэй ашиглах(CPU, disk, memory, etc) • Шударга байх – Хэрэглэгчид CPU-г тэгш хуваалцах. – Шударга байснаар хариу өгөх дундаж хугацаа багасахгүй: » Системд шударга явдал бага байх тусам хариу өгөх хугацаа
  • 18. Lec 10.1810/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Эхэнд ирсэн нь Эхэлж үйлчлүүлдэг төлөвлөлт • Эхэнд ирсэн нь Эхэлж үйлчлүүлэх(FCFS) – Мөн “Түрүүлж ирээд, Түрүүлж гарна” (FIFO) эсвэл “Ажил дуустал ажиллуулана” » Эртний системүүдэд FCFS гэдэг нь нэг програмыг дуустал нь ажиллуулана гэж үздэг байсан. » Одоо, CPU хуулбарыг блоклолтонд ортол нь ажиллуулана.. • Жишээ: Процесс заруулах хугацаа P1 24 P2 3 P3 3 – Процессуудын ирсэн дараалал: P1 , P2 , P3 Төлөвлөлтийн Гант диаграм: – Хүлээх хугацаа P1 = 0; P2 = 24; P3 = 27 – Дундаж хүлээх хугацаа: (0 + 24 + 27)/3 = 17 – Биелэлтийн дундаж хугацаа: (24 + 27 + 30)/3 = 27 • Цуваан нөлөө: урт процессын цаана богино процесс удаан хүлээж байна. P1 P2 P3 24 27 300
  • 19. Lec 10.1910/04/10 Kubiatowicz CS162 ©UCB Fall 2010 FCFS төлөвлөлтийн үргэлжлэл • Жишээний үргэлжлэл: – Процессудын дараалал ийм байвал: P2 , P3 , P1 Одоо Гант диаграм дараах байдалтай болно: – Хүлээх хугацаа P1 = 6; P2 = 0; P3 = 3 – Дундаж хүлээх хугацаа: (6 + 0 + 3)/3 = 3 – Биелэлтийн дундаж хугацаа : (3 + 6 + 30)/3 = 13 • Хоёр дах тохиолдолд: – Дундаж хүлээх хугацаа маш бага байна (өмнө нь 17 байсан ) – Биелэлтийн дундаж хугацаа бага (өмнө нь 27 байсан) • FIFO-н давуу (+) ба сул тал (-): – Хялбар (+) – Урт ажлын ард богино ажил гацах магадлалтай (-) » зөвөлгөө: Сүү авахдаа үргэлж олон жижиг бараатай хүний ард гацах. P1P3P2 63 300
  • 20. Lec 10.2010/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Тойрон эргэх(RR) • FCFS схем: Богино ажилд халтай! – Ирсэн дарааллаас хамааралтай. – Хэрэв та дэлгүүрт хамгийн түрүүнд ирсэн бол сүү авна, нөгөө талаас танд ард чинь хэн байх нь хамаагүй • Тойрон эргэх схем – Процесс бүр маш бага хугацаанд СPU-г эзэмшинэ. (хугацааны квант), ихэвчлэн 10-100 милсекунд. – Квантын (эзэмших) хугацаа нь дууссан процессыг зогсоож бэлэн дарааллын төгсгөлд аваачина. – n бэлэн дараалал, q квантын хугацаа  » Процесс бүх 1/n хугацаанд CPU-г эзэмшдэг. » Ихэнх нь q хугацаагаар эзэмшдэг. » Ямар ч процесс (n-1)*q-ээс илүү хугацаагаар хүлээхгүй. • Гүйцэтгэл – q том  FCFS – q бага Ээлжлэн ажиллана( маш бага hyperthreading?) – q –н хэмжээ нь бодлого солилттой харьцангуйгаар их байх ёстой, үгүй бол нэмэлт зардал хэт өндөр (100 % нэмэлт ажил)
  • 21. Lec 10.2110/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Жишээ RR схем квант хугацаа = 20 • Жишээ: Process Burst Time P1 53 P2 8 P3 68 P4 24 – Гант диаграм: – Хүлээх хугацаа P1=(68-20)+(112-88)=72 P2=(20-0)=20 P3=(28-0)+(88-48)+(125-108)=85 P4=(48-0)+(108-68)=88 – Дундаж хүлээх хугацаа= (72+20+85+88)/4=66¼ – Биелэлтийн дундаж хугацаа = (125+28+153+112)/4 = 104½ • Иймээс, Тойрон эргэх схемийн давуу ба сул тал: – Богино ажилд ээлтэй, шударга (+) – урт програмуудад бодлого солилтын хугацаа нэмэгдэнэ.(-) P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 28 48 68 88 108 112 125 145 153
  • 22. Lec 10.2210/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Тойрон эргэхээр ярилцах • Та хугацааны хуваалтыг яаж сонгох вэ? – Хэтэрхий том бол ямар вэ? » Хариу өгөх хугацаа ихсэнэ. – Хязгааргүй бол яах вэ ()? » FIFO буцааж авна – Хугацаа хэтэрхий жижиг бол ямар вэ? » Нэвтрүүлэх чадвар багасана! • Хугацааны хуваалтын бодит сонголт: – Эхлээд UNIX-н хугацааны хуваалт нэг секунд байсан: » UNIX нь нэг хоёр хүн зэрэг ашилахад хэвийн ажиллана. » Гурван дахь нь ашиглуул юм болох уу? Товч дарахад дэлгэцэнд 3 секундын дараа гарч ирнэ! – Бодит байдал дээр, богино ажлын гүйцэтгэл болон урт ажлын нэвтрүүлэх чадварыг тэнцвэржүүлэх хэрэгтэй : » Хугацааны хуваалт нь 10ms – 100ms байна » Бодлогын солилтын хугацаа 0.1ms – 1ms байна. » Ойролцоогоор 1% бодлого солилтонд зарцуулагдана.
  • 23. Lec 10.2310/04/10 Kubiatowicz CS162 ©UCB Fall 2010 FCFS болон Round Robin хоорондын харьцуулалт • Бодлого солилтын зардал 0 гэж үзвэл RR,FCFS хоёрын аль нь илүү вэ? • Хялбар жишээ: 10 ажил, ажил бүр 100s CPU-г эзэмшинэ. RR-н квант хугацаа нь 1s Бүх ажил зэрэг эхлэнэ. • Биелэлтийн хугацаа: – RR болон FCFS хоёулаа зэрэг дуусаж байна. – RR-н хариу өгөх дундаж хугацаа их муу байна! » Бүх ажил ижил урттай байгаа нь мууд нөлөөллөө. • Мөн: RR нь кэш санах ойг бүх ажлуудад хувааж зарцуулсан харин FIFO нь ажил бүр тус тусд зарцуулсан. – Бодлого солилтын нийт зардал 0 байсан ч RR нь удаан байна. ! Job # FIFO RR 1 100 991 2 200 992 … … … 9 900 999 10 1000 1000
  • 24. Lec 10.2410/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Quantum Completion Time Wait Time AverageP4P3P2P1 Өмнөх жишээний квантын хугацааг өөр өөр болговол P2 [8] P4 [24] P1 [53] P3 [68] 0 8 32 85 153 Best FCFS: 6257852284Q = 1 104½11215328125Q = 20 100½8115330137Q = 1 66¼88852072Q = 20 31¼885032Best FCFS 121¾14568153121Worst FCFS 69½32153885Best FCFS 83½121014568Worst FCFS 95½8015316133Q = 8 57¼5685880Q = 8 99½9215318135Q = 10 99½8215328135Q = 5 61¼68851082Q = 10 61¼58852082Q = 5
  • 25. Lec 10.2510/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Бид ирээдүйг мэддэг бол юу болох вэ? • Бид үргэлж FCFS хэрэглэх хэрэгтэй юу? • Хамгийн богино ажлыг эхэлж хийнэ (SJF): – Хамгийн бага хугацаатай прорамыг ажилуулана.. – Зарим тохиолдолд “богино хугацаатай нь Эхэлж дуусана” (STCF) гэж нэрэлдэг. • Хамгийн богино хугацаа үлдсэн нь эхэлж ажиллах(SRTF): – SJF-ны хүчээр суллах хувилбар юм: Хэрвээ ирж байгаа програмын хугацаа нь одооо ажиллаж байгаа програмын үлдсэн хугацаанаас богино бол CPU –г хүчээр эзэмшүүлэнэ. – Зарим тохиолдолд “богино хугацаа үлдсэн нь эхэлж дуусана” (SRTCF) • Үүийг бүтэн програм дээр эсвэл одоогийн CPU –ний зарцуулалт дээр хэрэглэж болно. – Санаа нь богино ажлуудыг системээс гаргах. – Богино ажлууд дээр их үр дүнтэй, урт ажлууд дээр бага үр дүн гэсэн сонголтыг хийнэ. – Үр дүнд нь хариу өгөх дундаж хугацаа сайжирна.
  • 26. Lec 10.2610/04/10 Kubiatowicz CS162 ©UCB Fall 2010 хэлэлцүүлэг • SJF/SRTF нь хариу өгөх дундаж хугацааг багасгахад тохирно. – Оновчтойг нь баталж болно. (SJF хүчээр суллахгүй дотроо, SRTF хүчээр дотроо сулладаг арга үр дүнтэй.) – SRTF нь SJF-с үргэлж сайн байдаг учраас SRTF дээр анхаарлаа хандуулья. • SRTF-ийн FCFS болон RR-ийн харьцуулалт – Бүх ажил ижил урттай бол яах вэ? » SRTF нь FCFS-тэй адилхан болно (ө.х FCFS нь бүх адил урттай үед шилдэг нь юм.) – Ажлуудын урт янз бүр бол яах вэ? » SRTF (and RR): богино ажлууд урт ажлыг ардаа оруулана.
  • 27. Lec 10.2710/04/10 Kubiatowicz CS162 ©UCB Fall 2010 SRTF-н давуу талыг харуулсан жишээ • Гурван ажил байна: – A,B: нь хоёулаа CPU-г долоо хоног ашигладаг – C: оролт гаралтын үүрэгтэй , нэг давталт нь 1ms CPU, 9ms дискны оролт гаралтат зарцуулдаг. – Ажлууд тус тусдаа ажиллавал C ажил дискний 90% хувийг, A эсвэл B хоёрын нэг нь CPU –г 100% ашиглаж чаддаг. • FIFO дээр: – А болон В ажил нэг нэг долоо хоног нийлээд 2 долоо хононо. • RR эсвэл SRTF ямар бол? – Хугацааг графикаас хялбархан харж болно. C C’s I/O C’s I/O C’s I/O A or B
  • 28. Lec 10.2810/04/10 Kubiatowicz CS162 ©UCB Fall 2010 SRTF жишээний үргэлжлэл: C’s I/O CABAB… C C’s I/O RR 1ms time slice C’s I/O C’s I/O CA BC RR 100ms time slice C’s I/O AC C’s I/O AA SRTF Disk Utilization: ~90% but lots of wakeups! Disk Utilization: 90% Disk Utilization: 9/201 ~ 4.5%
  • 29. Lec 10.2910/04/10 Kubiatowicz CS162 ©UCB Fall 2010 SRTF-н дэлгэрэнгүй хэлэлцүүлэг • Гачигдал – SRTF-аар олон жижиг ажил гачигдалд хүргэж болно! – Том програмууд хэзээ ч ажиллахгүй. • Ямар нэг байдлаар ирээдүйг таамаглах хэрэгтэй. – Бид үүнийг хийж чадах уу? – Зарим системын хэрэглэгчээсээ асуудаг » Та програм илгээж байгаа бол хэр удаан ажилахыг нь хэлэх хэрэгтэй » Худлаа хугацаа өгөөд хугацаанаасаа хэтрэвэл систем програмыг зогсооно. – Гэвч хор хөнөөлгүй хэрэгчийн програмын ажилах хугацааг таамаглахад хэцүү байдаг. • Програм хэр удаан ажиллахыг хэн ч мэдэж чадахгүй. – Гэхдээ SRTF-г бусад шалгууруудийг хэмжих хэмжүүр болгон ашиглаж болно. – Оновчтой учраас цаашид сайжруулах боломжгүй. • SRTF давуу ба сул тал: – Оновчтой (дундаж хариу өгөх хугацааны хувьд) (+) – Ирээдүйг таамаглахад хэцүү(-) – Шударга бус (-)
  • 30. Lec 10.3010/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Дүгнэлт (Түгжрэл) Түгжрэлд оруулж болзошгүй дөрвөн нөхцөл байдаг. • Солбилцол – Нөөцийг нэг хугацаанд нэг л хуулбар ашиглаж чадна. • Эзэмшээд хүлээх – Хуулбар нь хамгийн багадаа нэг нөөцийг эзэмшиж байгаа бөгөөд өөр хуулбарын эзэмшсэн бас нэг нөөцийг хүлээнэ • Хүчээр суллахгүй байх – Нөөцийг эзэмшиж байгаа хуулбар нь хэрэглэж дуусаад сайн дураараа чөлөөлөх үед л нөөц суларна • Тойрон хүлээх – Тойрон хүлээж байгаа хуулбаруудын {T1, …, Tn} гэсэн олонлог байна • Түгжрэлийг илрүүлэх – Хүлээх дараалалд ахиц дэвшил гарч байгаа эхэсхийг байнга үнэлэх. • Түгжрэлээс урьдчилан сэргийлэх – Хуваарьлалт бүрийг түгжрэлд оруулж болзошгүй эсэхийг үнэлэж судлах. – Банкны алгоритм нь үнэлэх нэг боломжийг өгдөг
  • 31. Lec 10.3110/04/10 Kubiatowicz CS162 ©UCB Fall 2010 Дүгнэлт(Хуваарьлалт) • Хуваарьлалт: бэлэн дараалалд хүлээж байгаа процессуудаас сонгон авч түүнд CPU –r хуваарьлах үйлдэл юм. • FCFS хуваарьлалт: – Орж ирсэд дарааллаар хуулбарыг ажиллууладаг. – Давуу тал: Хялбар – Сул тал: Богино ажил урд ажлын ард гацах магадлалтай. • Round-Robin хуваарьлалт: – Хуулбарууд маш богино хугацаанд CPU –г эзэмших ба энэ үйлдэл нь тойргоор явагдана. – Давуу тал: Богино ажилд ээлтэй. – Cул тал: Ажлуудын урт ижил үед тохиромжгүй. • Богино ажил эхэлж ажиллана(SJF)/Үлдсэн хугацаа нь богино эхэлж ажиллана (SRTF): – Ямар тохиолдолд хамгийн бага хугацаатай болон дуусахад үлдсэн хугацаа багатайг тооцоолж ажиллуулана. – Давуу тал : Оновчтой (дундаж хариу өгөх хугацааны хувьд – Сул тал: Ирээдүйг таамаглахад хэцүү, Шударга бус

Editor's Notes

  • #18: What does CPU scheduling have to do with efficient use of the disk? A lot! Have to have the CPU to make a disk request Fairness: Minimize # of angry phone calls? Minimize my response time?
  • #19: FCFS (First-come, first-served)
  • #21: FCFS (First-come, first-served)
  • #26: Rich get richer, and poor get poorer = short jobs get through the system faster, long jobs take even longer SRTF (Shortest Remaining Time First) SJF (Shortest job next) FCFS (First-come, first-served)
  • #27: SRTF (Shortest Remaining Time First) SJF (Shortest job next)
  • #28: SRTF (Shortest Remaining Time First)
  • #29: SRTF (Shortest Remaining Time First)
  • #30: SRTF (Shortest Remaining Time First)