SlideShare a Scribd company logo
1 of 27
CS162
Operating Systems and
Systems Programming
Lecture 15
хуудас хуваарилалт ба хуудас
солилт
October 25, 2010
Prof. John Kubiatowicz
http://inst.eecs.berkeley.edu/~cs162
Lec 15.210/21/09 Kubiatowicz CS162 ©UCB Fall 2009
• ХХБ нь бидэнд шаардлагаар ачаалах хэрэгжүүлэлтэнд тусалдаг.
– Хүчинтэй  Хуудас санах ойд байгаа, ХХБ нь физик хуудсыг
заана.
– Хүчингүй  Хуудас санах ойд байхгүй; шаардлагатай бол ХХК-
д байхгүй мэдээлийг дискнээс хайж олно.
• Хэрэглэгч хүчингүй ХХБ рүү хандсан гэж үзье.
– СОУТ нь ҮС-ийн дотоод тасалдлыг үүсгэдэг.
» Дотоод тасалдлын нэр нь “Хуудсын алдаа”.
– ҮС хуудсын алдааны үед юу хийх вэ?:
» Солих хуучин хуудсыг сонгоно
» Хэрэв хуучин хуудас өөрчлөгдсөн байвал (“D=1”)диск рүү буцааж
бичнэ.
» Түүний ХХБ-г өөрчлөөд ХКБ-д байгаа бичлэгүүдийг хүчингүй
болгоно.
» Шинэ хуудсыг дискнээс санах ой руу ачаална.
» ХХ-ийн бичлэгээ шинэчлээд ХКБ дэх шинэ бичлэгийг хүчингүй
болгно.
» Хуулбарыг зогссон газраас нь үргэлжлүүлэн ажиллана.
– Хуулбар үргэжлэн ажиллахад шинэ хуудсны ХКБ ачаална!
– Нэг процессийн хуудснуудыг дискнээс авчирч байх үед ҮС өөр
процессийг бэлэн дарааллаас сонгож ажлуулна.
» Зогссон пр хүлээх дараалалд байрлана.
Шаардлагаар ачаалах хуудсын механизм
Lec 15.310/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Агуулга
• Нарийвчлалтай тасалдал
• Хуудас солилтын бодлого
– Цагны алгоритм
– N-р боломжийн алгоритм
– Хоёрдахь боломжийн жагсаалт алгоритм
• Хуудас хуваарилалтын бодлого
• Ажлын багц/мөргөлдөөн
Note: Some slides and/or pictures in the following are
adapted from slides ©2005 Silberschatz, Galvin, and Gagne
Note: Some slides and/or pictures in the following are
adapted from slides ©2005 Silberschatz, Galvin, and Gagne.
Many slides generated from my lecture notes by Kubiatowicz.
Lec 15.410/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Програм хангамжаар ачаалагдах ХКБ
• MIPS ХКБ-г програм хангамжаар ачаалдаг.
– ХКБ байх хэмжээ өндөр удаан байсан ч ХКБ програм хангамжийг
дүүргэдэг.
– Энгийн техник хангамж ба нэмэгдэл уян хатан чанар: Програм хангамж нь
ямар ч тохиромжтой форматаар хөрвүүлэлтийн хүснэгтүүдийг хадгалж
болно.
• ХКБ- ямар ч техник хамнгамж дүүргэхийг ашиглахгүйгээр процесс яаж
ажиллах вэ?
– Хурдан зам (ХКБ байгаа valid=1):
» Техник хангамж Физик хуудас руу хөрвүүлэлтийг хийнэ.
– Удаан зам (ХКБ байгаа valid=0 эсвэл ХКБ байхгүй)
» Техник хангамж ХКБ-гийн алдааг хүлээж авах.
– ХКБ алдаа гарах үед үйлдлийн систем юу хийдэг вэ?
» Хуудсын хүснэгтээс тохирох ХХБ-г олох.
» хэрвээ valid=1, ХХБ-н хуудсын хүснэгтийн бичлэгийг ХКБ хуулана.
» Хэрвээ valid=0, өмнө дэлгэрэнгүй тайлбарласан “Хуудасны алдаа”-г
гүйтэтгэнэ.
» Хуулбарыг үргэлжлүүлэх.
• Бүх зүйл хэрэглэгчийн процессд тунгалаг байна:
– диск / хуудаслалтын талаар мэдэхгүй байна.
– Програм хамгамжаар ХКБ боловсруулах талаар мэдэхгүй байна
Lec 15.510/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Тунгалаг тасалдал
• Алдаа үүсгэсэн командыг яаж тодорхой дахин эхлүүлэх?
– Бид зүгээр л алгасаж болох уу?
» Үгүй: физик хуудастай дахин холбогдсоны дараа ачаалалт болог
хадгалалт хийхэд хэрэгтэй.
• Хадгалалтанд техник хангамжийн тусламж хэрэгтэй:
– Алдаа үүсгэсэн команд ба завсрын төлөв
» Алдаа үүсгэсэн командыг олох хэрэгтэй.
» Алдааны байрлалыг олоход нэг PC хангалттай юу????
– Процессорын төлөв: Хэрэглэгчийн хуулбарыг дахин эхлүүлэхэд
хангалттай.
» Регистр, стек гэх мэтийг Хадгалах/сэргээх.
• Ямар нэгэн команд гаж нөлөө үзүүлдэг үү??
Load TLBFaulting
Inst1
Faulting
Inst1
Faulting
Inst2
Faulting
Inst2
Fetch page/
Load TLB
User
OS
TLB Faults
Lec 15.610/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Ямар хэвийн бус зүйл тохиолдож болох вэ
• Команд нь гаж нөлөө үзүүлдэг бол вэ??
– Сонголтууд:
» Гаж нөлөөг буцаах (дахин ачаалал /restart/)
» Гаж нөлөөг арилгах (Хэцүү!)
– Жишээ 1: mov (sp)+,10
» стекийн заагч руу бичих үед хуудсын алдаа үүсвэл яах вэ?
» sp хуудсын адааны өмнө нэмэгдүүлэх үү дараа нэмэгдүүлэх үү?
– Жишээ 2: strcpy (r1), (r2)
» 2 хаяг ижилхэн бол: буцааж чадахгүй!
» IBM S/370 ба VAX шийдэл: хоёр ажиллуулах – зөвхөн нэг унших
• “RISC” Процесор дээр яах вэ ?
– Саатуулагдсан салбарууд?
» жишээ: bne somewhere
ld r1,(sp)
» Нарийвлалтай тасалдал 2 РC нээс бүрдэнэ: PC ба nPC
– Саатуулагдсан тасалдал:
» Example: div r1, r2, r3
ld r1, (sp)
» Хэрвээ 0-д хуваах алдаа гартал олон алхам хийгддэг
гэхдээ ачаалалт дээр хуудсын алдаа гарсан бол яах
вэ?
Lec 15.710/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Нарийвлалтай тасалдал
• Нарийвчлал Програм хангамж буруу команд хүртэл
ажилласан гэж үзээд машинд төлвийг хадгалагдана.
– Өмнөх бүх команд дууссан байна.
– Алдаатай команд болон түүний дараагийн командыг
эхлүүлээгүй байгаа гэж үзнэ.
– Ижил системийн код нь ялгаатай хэрэгжүүлэлт дээр
ажиллана.
– Дамжуургатай эсвэл алдаатай биелэлтийн үед маш хэцүү...
– MIPS-н ийм байдлаар ажилладаг.
• Нарийвчлалгүй Системийн програм хангамж хаана юу
байгааг ба бүгдийг нь нэгтгэнэ.
• Гүйцэтгэлд зориулан дизайнерууд нарийвчлалтай
тасалдлуудыг орхидог.
• Алдаатай биелэлт болон салбарыг урьдчилан тааварладаг
орчин үеийн техник нь нарийвчлалтай тасалдлуудыг
гүйцэтгэхэд тусалж байна.
Lec 15.810/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Хуудсын алдааг харьцуулах үе шат
Lec 15.910/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Шаардлагаар ачаалах жишээ
• Шаардлагаар ачаалах арга нь кэшлэлтэй адилхан учраас
хандалтын дундаж хугацааг тооцоолох! (“Effective Access
Time”)
– EAT = Hit Rate x Hit Time + Miss Rate x Miss Time
– EAT = Hit Time + Miss Rate x Miss Penalty
• Жишээ:
– Memory access time = 200 nanoseconds
– Average page-fault service time = 8 milliseconds
– Suppose p = Probability of miss, 1-p = Probably of hit
– Then, we can compute EAT as follows:
EAT = 200ns + p x 8 ms
= 200ns + p x 8,000,000ns
• Хэрвээ 1000 хандалтаас 1 нь алдаа гарч байвал EAT = 8.2
μs байна.:
– Энэ нь 40 гэсэн коффицеэнттойгоор удаашруулана!
• Хэрвээ 10-с бага хувиар удаашруулана гэвэл?
– 200ns x 1.1 < EAT  p < 2.5 x 10-6
– 400000 хандалтанд 1 хуудсны алдаа гарна.
Lec 15.1010/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Ямар үед хуудсын алдаа гарах вэ?
• Заавал :
– Өмнө нь санах ой руу хуудаслагдаж байгаагүй хуудаснууд.
– Бид эдгээрийг шийдэж болох уу?
» Урьдчилэн ачалаах: тэдгээрийг хэрэг болохоос өмнө санах ой руу
ачаалах хэрэгтэй.
» Ямар нэгэн байдлаар урьдчилан таамаглах хэрэгтэй.
• Багтаамж :
– Санах ой хүрэлцэхгүй байна. Ямар нэгэн байдлаар нэмэгдүүлэх ёстой.
– Бид үүнийг хийж чадах уу?
» Нэгдүгээр хувилбар: DRAM-ны тоог нэмэх (хурдан биш засвар!)
» Дараагийн хувилбар: Хэрвээ олон процесс санах ойтой бол: тус бүрт нь
хуваарилсан санах ой хувийг тохируулах.
• Зөрчил :
– Виртуал санах ой нь “Бүрэн хамааралтай” кэш учраас зөрчлөөс хамаарч
хуудсын алдаа гарахгүй.
• Бодлого :
– Хуудсууд санах ой байсан боловч саяхан бодлого солилтын үед түлхэгдэн
гарсан.
» Яаж засах вэ? Хуудас солилын бодлогыг сайжруулах.
Lec 15.1110/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Хуудас солилтын бодлого
• Бид яагаад солилтын бодлогонд анхаарал хандуулдаг вэ?
– Солилт нь нэгэн төрлийн кэш юм.
– Ялангуяа хуудастай маш чухал холбоотой.
» Алдааны зардал их байдаг: Дискинд очих ёстой.
» Хамгийн чухал хуудсуудаа гаргалгүйгээр санах ойд байглана.
• FIFO (Эхэлж ороод, Эхэлж гарах)
– Хамгийн хуучин хуудсыг гаргана. Шударга байх– Бүх хуудаснууд
санах ойд ижил хугацаанд байрлах.
– Сул тал. Учир нь хааяа ашигладаг хуудсны оронд их ашигладдаг
хуудсыг гаргаж болдог.
• MIN (Хамгийн бага):
– Хамгийн урт хугацаанд ашиглагдахгүй хуудсыг солилт хийх байх.
– Гэхдээ ирээдүйг мэдэж чадахгүй…
– Гэсэн ч харьцуулалтын сайн жишээ болдог.
• RANDOM(Санамсаргүй):
– Хуудаснуудыг санамсаргүйгээр сонгож солино.
– ХКБ-н нийтлэг шийдэл. Энгийн техник хангамж
– Урьдчилан таамаглах боломж муутай – бодит хугацаагны баталгаа
гаргахад хүндрэлтэй.
Lec 15.1210/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Солилтын бодлого(үргэлжлэл)
• LRU (хандаагүй хамгийн удсан):
– Хамгийн урт хугацаанд ашиглаагүй хуудсыг солих.
– Програм хангамж ямар нэгэн байдлаар ашиглагдахгүй удсан бол
ойрын үед хэрэглэхгүй гэсэн зарчмаар ажиллана.
– LRU нь сайжруулсан MIN-тэй ойролцоо
• LRU хэрхэн хэрэгжүүлэх вэ? Жагсаалт хэрэглэнэ.
– Ашиглах үед нь хуудсын жагсаалтаас авч толгойд байрлуулах.
– LRU хуудас сүүлд нь байна.
• Энэ хуудсын схемийн асуулдлууд?
– Хуудсыг хэрэглсэн үед нэн даруй мэдэж жагсаалтанд өөрчлөлт
хийнэ.
– Техник хангамжийн хандалт бүрт олон командыг биелүүлэнэ.
• Хүмүүс амьдрал дээр LRU-тэй ойролцоо сэтгэдэг.
Page 6 Page 7 Page 1 Page 2Head
Tail (LRU)
Lec 15.1310/21/09 Kubiatowicz CS162 ©UCB Fall 2009
• 3 хуудсны хэмжээтэй санах ой, 4 виртуал хуудас байгаа.
Хандалтууд дараах дарааллаар хийгдэнэ.
– A B C A B D A D B C B
• Consider FIFO Page replacement:
– FIFO: 7 хуудсын алдаа.
– D орж ирээд солилт хийсний дараа А ахин хэрэгтэй болж
байна. А-г солих нь муу сонголт байна.
Жишээ: FIFO
C
B
A
D
C
B
A
BCBDADBACBA
3
2
1
Ref:
Page:
Lec 15.1410/21/09 Kubiatowicz CS162 ©UCB Fall 2009
• Өмнөхтэй адил хандалтуудын дараалал:
– A B C A B D A D B C B
• Consider MIN Page replacement:
– MIN: 5 хуудсын алдаа.
– D-г хаана оруулж ирэх вэ? Ирээдүйд хамгийн сүүлд
хандагдах хуудсыг хайна.
• LRU байсан бол яах вэ?
– MIN тэй,адилхан шийдвэр гаргана гэхдээ үргэлж адилхан
байхгүй.
жишээ: MIN
C
DC
B
A
BCBDADBACBA
3
2
1
Ref:
Page:
Lec 15.1510/21/09 Kubiatowicz CS162 ©UCB Fall 2009
• Хандалтын дараалал: A B C D A B C D A B C D
• LRU Performs as follows (same as FIFO here):
– Хандалт бүр дээр хуудсын алдаа гарч байна.
• MIN Does much better:
D
LRU хэзээ муу ажиллах вэ?
C
B
A
D
C
B
A
D
C
B
A
CBADCBADCBA D
3
2
1
Ref:
Page:
B
C
DC
B
A
CBADCBADCBA D
3
2
1
Ref:
Page:
Lec 15.1610/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Фреймийн тоо ба хуудасны алдааны уялдаа хамаарал
• Нэг сайн шинж чанар: Санах ой нэмэх үед хуудсын алдаа
буурч байна.
– Энэ үргэлж тохиолдох уу?
– Тийм юм шиг байна тиймүү?
• Үгүй : BeLady-н гажуудал
– Зарим солилтын алгоритм (FIFO) нь энэ шинж чанрыг
агуулдаггү!
Lec 15.1710/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Санах ой нэмэх нь үргэлж алаанд багасгахгүй
• Санах ой нэмэхэд алдаа багасах уу?
– LRU ба MIN арга тийм.
– FIFO заавал биш! (Called Belady’s anomaly)
• Санах ой нэмсэний дараа:
– FIFO нь агуулга шал өөр байж болно.
– Харин LRU болон Min-г ашиглах Х хуудас бүхий санах ойн
агуулга X + 1 санах ойн дэд хэсэг байна
D
C
E
B
A
D
C
B
A
DCBAEBADCBA E
3
2
1
Ref:
Page:
CD4
E
D
B
A
E
C
B
A
DCBAEBADCBA E
3
2
1
Ref:
Page:
Lec 15.1810/21/09 Kubiatowicz CS162 ©UCB Fall 2009
LRU хэрэгжүүлэх
• Төгс хэрэгжүүлэлт:
– Хуудас бүрийн хувьд хандсан хугацааг нь хадгална.
– Хуудсануудын хандсан хугацаагаар нь эрэмбэлсэн жагсаалтыг
үүсгэнэ.
– Хэрэгжүүлэхэд зардал өндөртэй.
• Цагны алгоритм: Физик хуудснуудыг цагны нэг зүүгээр зохион
байгуулах.
– LRU-тэй ойролцоо (бараг л MIN)
– Хамгийн хуучин хуудас биш, гэхдээ хуучин хуудас солино.
• Дэлгэрэнгүй:
– Физик хуудас бүрт техник хангамжийн use бит ашиглах:
» Хандах бүрт техник хангамж useт битийг тогтооно.
» Хэрвээ Use бит 0-тэй тэнцүү бол ойрд хандаагүй гэсэн үг.
– Хуудсын алдааны үед:
» Цагийн зүүг эргүүлэнэ. (not real time)
» Use битийг шалгах:
» 1саяхан ашигласан; тэглээд орхино.
0Солилт хийх боломжтой хуудас.
– Солих хуудас үргэлж олдох уу эсвэл хязгааргүй эргэлдэх үү?
» Ашиглах битүүд бүгд нэгтэй тэнцүү бол бүтэн эргэнэFIFO
Lec 15.1910/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Цагны алгоритм: Ойрл ашиглагдаагүй
Set of all pages
in Memory
Цагны нэг зүү:
Зөвхөн хуудсын алдаа гарах үед
зүү нь явна!
Ойрд ашиглаагүй хуудсыг хайна.
Хуудсуудыг ойр хэрэглэгдээгүй
гэж тэмдэглэнэ.
• Цагийн зүү удаан хөдөлж байгаа бол?
– Сайн уу муу юу?
» Хуудсын алдаа бага эсвэл - солих хуудас хурдан олдоно.
• Цагийн зүү хурдан хөдөлж байгаа бол?
– Хуудсын алдаа их гарч байгаа эсвэл –Нэгтэй тэнцүү хандалтын
битүүд олон байна.
• Цагны алгоритмыг харах нэг арга:
» Хуудсуудыг шууд хоёр бүлэгт хуваах: шинэ ба хуучин
– Яагаад 2-с олон бүлэгт хуваахгүй байна?
Lec 15.2010/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Цагны алгоритмын “N-р боломж” хувилбар
• N -р боломж алгоритм: Хуудсанд N боломж олгоно.
– Үйлдлийн систем нь хуудас болгонд тоолуур хадгалж байдаг: # шалгалтын
тоо
– Хуудсын алдаа гарахад ҮС нь ашиглах битийг шалгадаг:
» 1 Use болон тоолуурыг тэглэнэ. (сүүлийн шалгалтанд хэрэглсэн)
» 0тоолуурыг нэмэгдүүлэнэ; хэрвээ тоо нь=N, хуудас солино.
– Цагны зүү N удаа явж өнгөрөхөд хуудсыг ашиглаагүй байсан.
• Бид яаж N –г сонгох вэ?
– Яагаад том N авах хэрэгтэй вэ? LRU нь илүү адилхан болно.
» Хэрвээ N ~ 1000 бол маш сайн төхнө.
– Яагаад жижиг N? Илүү хэмнэлттэй.
» Үгүй бол сул хуудсыг олохын тулд их замыг туулж магадгүй.
• Бохир хуудсуудыг яах вэ?
– Бохир хуудас нь хуудас солилтонд сөргөөр нөлөөлдөг тул солилт
хийхийнхээ өмнө нэмэлт боломжуудыг олгох хэрэгтэй юу?
– Нийтлэг арга:
» Цэвэр хуудас N=1
» Бохир хуудас N=2 (N=1 болонгуут нь дикс руу бичих)
Lec 15.2110/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Цагны алгоритм: Дэлгэрэнгүй
• ХХБ-н аль бит нь бидэнд хэрэгтэй вэ?
– Use: Хуудасруу хандсан үед тогтооно. Цагны алгоритм тэглэнэ.
– Modified: Хуудсанд өөрчлөлт хийсэн үед тогтоогоод, хуудсыг диск
рүү бичих үед тэглэнэ.
– Valid: Програм энэ хуудас руу хандаж болно.
– Read-only: Програм унших болон бичиж болно, харин өөрчилж
болохгүй.
» Кодны хуудсуудыг өөрчлүүлэхгүй байх хэрэгтэй!
• Техник хангамжийн дэмжлэгтэй“өөрчлөлтийн” бит бидэнд хэрэгтэй
юу?
– Үгүй. Зөвхөн унших битийг хэрэглэн орлуулж болно.(BSD Unix)
» Эхлээд бүх хуудсыг read only гэж тэмдэглэнэ. Өгөгдлийн
хуудсуудыг хүртэл.
» Бичих үед ҮС-рүү шилжинэ.ҮС “modified” битийг тогтоогоод
хуудсыг read-write гэж тэмдэглэнэ.
» Хуудас дискнээс ирэхэд read-only гэж тэмдэглэнэ.
Lec 15.2210/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Үргэлжлэл
• Техник хангамжийн дэмжлэгтэй“Use” бит бидэнд хэрэгтэй юу?
– Үгүй. Дээрхтэй адилаар орлуулж болно:
» Санах ойд байсан ч гэсэн бүх хуудсыг хүчингүй гэж тэмдэглэнэ.
» Хүчингүй хуудсыг унших үед ҮС рүү шилжинэ.
» ҮС use битийг тогтоогоод read-only гэж тэмдэглэнэ.
– Өөрлөлтийн битийг өмнөхтэй адил боловсруулж болно:
» Бичих үед ҮС рүү шилжинэ. (Хүчингүй болон read-only байсан ч
хамаагүй)
» use болон modified битийг тогтоогоод read-write гэж тэмдэглэнэ.
– Цагийн зүү дайрч өнгөрөхөд use болон modified битийг тэглээд хуудсыг
хүчингүй гэж тэмдэглэнэ.
• Цаг бол зөвхөн LRU тэй төстэй гэдгийг санаарай.
– Бид нарт унших бичих үед гарах хуудсны алдааны мэдээллүүд байгаа бол
төсөөтэй байдлыг сайжруулж чадах уу?
– Хамгийн хуучин хуудсыг биш ямар нэг хуучин хуудсыг олох хэрэгтэй!
– Хариулт: хоёрдахь боломж жагсаалт
Lec 15.2310/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Хоёрдахь боломж жагсаалтын алгоримт
(VAX/VMS)
• Санах ойг 2 хэсэгт хуваана: Идэвхитэй жагсаалт (RW), SC жагсаалт (Invalid)
• Идэвхитэй жагсаалтанд байгаа хуудсуудад дээд хурдаараа хандаж бално.
• Үгүй бол хуудсын алдаа үүснэ.
– Идэвхитэй жагсаалтын төгсгөлд байгаа хэтэрсэн хуудсыг авч хоёр дахь
боломж жагсаалтын (SC) эхэнд байрлуулаад хүчингүй гэж тэмдэглэнэ.
– SC жагсаалт байгаа хүссэн хуудсыг идэвхитэй жагсаалтын эхэнд
байрлуулаад RW гэж тэмдэглэнэ.
– SC жагсаалтанд байхгүй бол: Идэвхитэй жагсаалтын эхэнд оруулж ирээд RW
гэж тэмдэглэнэ; тэгээд SC жагсаалтын сүүлд байгаа хуудсыг гаргана.
Directly
Mapped Pages
Marked: RW
List: FIFO
Second
Chance List
Marked: Invalid
List: LRU
LRU victim
Page-in
From disk
New
Active
Pages
New
SC
Victims
Lec 15.2410/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Second-Chance List Algorithm (con’t)
• How many pages for second chance list?
– If 0  FIFO
– If all  LRU, but page fault on every page reference
• Pick intermediate value. Result is:
– Pro: Few disk accesses (page only goes to disk if unused for a
long time)
– Con: Increased overhead trapping to OS (software / hardware
tradeoff)
• With page translation, we can adapt to any kind of access the
program makes
– Later, we will show how to use page translation / protection to
share memory between threads on widely separated machines
• Question: why didn’t VAX include “use” bit?
– Strecker (architect) asked OS people, they said they didn’t need
it, so didn’t implement it
– He later got blamed, but VAX did OK anyway
Lec 15.2510/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Free List
• Keep set of free pages ready for use in demand paging
– Freelist filled in background by Clock algorithm or other
technique (“Pageout demon”)
– Dirty pages start copying back to disk when enter list
• Like VAX second-chance list
– If page needed before reused, just return to active set
• Advantage: Faster for page fault
– Can always use page (or pages) immediately on fault
Set of all pages
in Memory
Single Clock Hand:
Advances as needed to keep
freelist full (“background”)
D
D
Free Pages
For Processes
Lec 15.2610/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Demand Paging (more details)
• Does software-loaded TLB need use bit?
Two Options:
– Hardware sets use bit in TLB; when TLB entry is replaced,
software copies use bit back to page table
– Software manages TLB entries as FIFO list; everything not in
TLB is Second-Chance list, managed as strict LRU
• Core Map
– Page tables map virtual page  physical page
– Do we need a reverse mapping (i.e. physical page  virtual
page)?
» Yes. Clock algorithm runs through page frames. If sharing, then
multiple virtual-pages per physical page
» Can’t push page out to disk without invalidating all PTEs
Lec 15.2710/21/09 Kubiatowicz CS162 ©UCB Fall 2009
Summary
• Precise Exception specifies a single instruction for which:
– All previous instructions have completed (committed state)
– No following instructions nor actual instruction have started
• Replacement policies
– FIFO: Place pages on queue, replace page at end
– MIN: Replace page that will be used farthest in future
– LRU: Replace page used farthest in past
• Clock Algorithm: Approximation to LRU
– Arrange all pages in circular list
– Sweep through them, marking as not “in use”
– If page not “in use” for one pass, than can replace
• Nth-chance clock algorithm: Another approx LRU
– Give pages multiple passes of clock hand before replacing
• Second-Chance List algorithm: Yet another approx LRU
– Divide pages into two groups, one of which is truly LRU and
managed on page faults.

More Related Content

What's hot

файлын түүний систем
файлын түүний системфайлын түүний систем
файлын түүний системshulam
 
лекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалтлекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалтE-Gazarchin Online University
 
оролтын төхөөрөмж
оролтын төхөөрөмжоролтын төхөөрөмж
оролтын төхөөрөмжjaagii_1980
 
өгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэсөгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэсБямбаа Авирмэд
 
үйлдлийн систем
үйлдлийн системүйлдлийн систем
үйлдлийн системshulam
 
мэдээллийн системийн үндэс
мэдээллийн системийн үндэсмэдээллийн системийн үндэс
мэдээллийн системийн үндэсTsetsenkhuu Otgonbayar
 
программ хангамжийн їндсэн ойлголт
программ хангамжийн їндсэн ойлголтпрограмм хангамжийн їндсэн ойлголт
программ хангамжийн їндсэн ойлголтshulam
 
Motherboard буюу эх хавтан гэж юу вэ
Motherboard буюу эх хавтан гэж юу вэMotherboard буюу эх хавтан гэж юу вэ
Motherboard буюу эх хавтан гэж юу вэKisoGaki
 
Шуурхай санах ой
Шуурхай санах ойШуурхай санах ой
Шуурхай санах ойCeka Moogii
 

What's hot (20)

Lec11 protection
Lec11 protectionLec11 protection
Lec11 protection
 
Lec09 deadlock
Lec09 deadlockLec09 deadlock
Lec09 deadlock
 
Lec08 readerwriter
Lec08 readerwriterLec08 readerwriter
Lec08 readerwriter
 
файлын түүний систем
файлын түүний системфайлын түүний систем
файлын түүний систем
 
Веб технологи
Веб технологиВеб технологи
Веб технологи
 
Lec14 demandpage
Lec14 demandpageLec14 demandpage
Lec14 demandpage
 
Lec06 synchronization
Lec06 synchronizationLec06 synchronization
Lec06 synchronization
 
Lecture 10 os
Lecture 10 osLecture 10 os
Lecture 10 os
 
лекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалтлекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалт
 
оролтын төхөөрөмж
оролтын төхөөрөмжоролтын төхөөрөмж
оролтын төхөөрөмж
 
өгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэсөгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэс
 
үйлдлийн систем
үйлдлийн системүйлдлийн систем
үйлдлийн систем
 
Access sem2
Access sem2Access sem2
Access sem2
 
мэдээллийн системийн үндэс
мэдээллийн системийн үндэсмэдээллийн системийн үндэс
мэдээллийн системийн үндэс
 
Lec10 scheduling
Lec10 schedulingLec10 scheduling
Lec10 scheduling
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
программ хангамжийн їндсэн ойлголт
программ хангамжийн їндсэн ойлголтпрограмм хангамжийн їндсэн ойлголт
программ хангамжийн їндсэн ойлголт
 
Motherboard буюу эх хавтан гэж юу вэ
Motherboard буюу эх хавтан гэж юу вэMotherboard буюу эх хавтан гэж юу вэ
Motherboard буюу эх хавтан гэж юу вэ
 
Lecture 3 is
Lecture 3 isLecture 3 is
Lecture 3 is
 
Шуурхай санах ой
Шуурхай санах ойШуурхай санах ой
Шуурхай санах ой
 

More from Khuder Altangerel

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

More from Khuder Altangerel (13)

IOI 2016 "Молекул" бодлогын бодолт
IOI 2016 "Молекул" бодлогын бодолтIOI 2016 "Молекул" бодлогын бодолт
IOI 2016 "Молекул" бодлогын бодолт
 
Марковын далд загвар
Марковын далд загварМарковын далд загвар
Марковын далд загвар
 
Lec05 cooperating (1)
Lec05 cooperating (1)Lec05 cooperating (1)
Lec05 cooperating (1)
 
Lec16 io
Lec16 ioLec16 io
Lec16 io
 
Lec07 exclusion
Lec07 exclusionLec07 exclusion
Lec07 exclusion
 
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадварМХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
 
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7
 
u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6
 
u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5
 
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4
 
u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3
 
u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2
 
u.cs101 "Алгоритм ба програмчлал" Лекц №1
u.cs101 "Алгоритм ба програмчлал" Лекц №1u.cs101 "Алгоритм ба програмчлал" Лекц №1
u.cs101 "Алгоритм ба програмчлал" Лекц №1
 

Lec15 pagereplace last

  • 1. CS162 Operating Systems and Systems Programming Lecture 15 хуудас хуваарилалт ба хуудас солилт October 25, 2010 Prof. John Kubiatowicz http://inst.eecs.berkeley.edu/~cs162
  • 2. Lec 15.210/21/09 Kubiatowicz CS162 ©UCB Fall 2009 • ХХБ нь бидэнд шаардлагаар ачаалах хэрэгжүүлэлтэнд тусалдаг. – Хүчинтэй  Хуудас санах ойд байгаа, ХХБ нь физик хуудсыг заана. – Хүчингүй  Хуудас санах ойд байхгүй; шаардлагатай бол ХХК- д байхгүй мэдээлийг дискнээс хайж олно. • Хэрэглэгч хүчингүй ХХБ рүү хандсан гэж үзье. – СОУТ нь ҮС-ийн дотоод тасалдлыг үүсгэдэг. » Дотоод тасалдлын нэр нь “Хуудсын алдаа”. – ҮС хуудсын алдааны үед юу хийх вэ?: » Солих хуучин хуудсыг сонгоно » Хэрэв хуучин хуудас өөрчлөгдсөн байвал (“D=1”)диск рүү буцааж бичнэ. » Түүний ХХБ-г өөрчлөөд ХКБ-д байгаа бичлэгүүдийг хүчингүй болгоно. » Шинэ хуудсыг дискнээс санах ой руу ачаална. » ХХ-ийн бичлэгээ шинэчлээд ХКБ дэх шинэ бичлэгийг хүчингүй болгно. » Хуулбарыг зогссон газраас нь үргэлжлүүлэн ажиллана. – Хуулбар үргэжлэн ажиллахад шинэ хуудсны ХКБ ачаална! – Нэг процессийн хуудснуудыг дискнээс авчирч байх үед ҮС өөр процессийг бэлэн дарааллаас сонгож ажлуулна. » Зогссон пр хүлээх дараалалд байрлана. Шаардлагаар ачаалах хуудсын механизм
  • 3. Lec 15.310/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Агуулга • Нарийвчлалтай тасалдал • Хуудас солилтын бодлого – Цагны алгоритм – N-р боломжийн алгоритм – Хоёрдахь боломжийн жагсаалт алгоритм • Хуудас хуваарилалтын бодлого • Ажлын багц/мөргөлдөөн Note: Some slides and/or pictures in the following are adapted from slides ©2005 Silberschatz, Galvin, and Gagne Note: Some slides and/or pictures in the following are adapted from slides ©2005 Silberschatz, Galvin, and Gagne. Many slides generated from my lecture notes by Kubiatowicz.
  • 4. Lec 15.410/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Програм хангамжаар ачаалагдах ХКБ • MIPS ХКБ-г програм хангамжаар ачаалдаг. – ХКБ байх хэмжээ өндөр удаан байсан ч ХКБ програм хангамжийг дүүргэдэг. – Энгийн техник хангамж ба нэмэгдэл уян хатан чанар: Програм хангамж нь ямар ч тохиромжтой форматаар хөрвүүлэлтийн хүснэгтүүдийг хадгалж болно. • ХКБ- ямар ч техник хамнгамж дүүргэхийг ашиглахгүйгээр процесс яаж ажиллах вэ? – Хурдан зам (ХКБ байгаа valid=1): » Техник хангамж Физик хуудас руу хөрвүүлэлтийг хийнэ. – Удаан зам (ХКБ байгаа valid=0 эсвэл ХКБ байхгүй) » Техник хангамж ХКБ-гийн алдааг хүлээж авах. – ХКБ алдаа гарах үед үйлдлийн систем юу хийдэг вэ? » Хуудсын хүснэгтээс тохирох ХХБ-г олох. » хэрвээ valid=1, ХХБ-н хуудсын хүснэгтийн бичлэгийг ХКБ хуулана. » Хэрвээ valid=0, өмнө дэлгэрэнгүй тайлбарласан “Хуудасны алдаа”-г гүйтэтгэнэ. » Хуулбарыг үргэлжлүүлэх. • Бүх зүйл хэрэглэгчийн процессд тунгалаг байна: – диск / хуудаслалтын талаар мэдэхгүй байна. – Програм хамгамжаар ХКБ боловсруулах талаар мэдэхгүй байна
  • 5. Lec 15.510/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Тунгалаг тасалдал • Алдаа үүсгэсэн командыг яаж тодорхой дахин эхлүүлэх? – Бид зүгээр л алгасаж болох уу? » Үгүй: физик хуудастай дахин холбогдсоны дараа ачаалалт болог хадгалалт хийхэд хэрэгтэй. • Хадгалалтанд техник хангамжийн тусламж хэрэгтэй: – Алдаа үүсгэсэн команд ба завсрын төлөв » Алдаа үүсгэсэн командыг олох хэрэгтэй. » Алдааны байрлалыг олоход нэг PC хангалттай юу???? – Процессорын төлөв: Хэрэглэгчийн хуулбарыг дахин эхлүүлэхэд хангалттай. » Регистр, стек гэх мэтийг Хадгалах/сэргээх. • Ямар нэгэн команд гаж нөлөө үзүүлдэг үү?? Load TLBFaulting Inst1 Faulting Inst1 Faulting Inst2 Faulting Inst2 Fetch page/ Load TLB User OS TLB Faults
  • 6. Lec 15.610/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Ямар хэвийн бус зүйл тохиолдож болох вэ • Команд нь гаж нөлөө үзүүлдэг бол вэ?? – Сонголтууд: » Гаж нөлөөг буцаах (дахин ачаалал /restart/) » Гаж нөлөөг арилгах (Хэцүү!) – Жишээ 1: mov (sp)+,10 » стекийн заагч руу бичих үед хуудсын алдаа үүсвэл яах вэ? » sp хуудсын адааны өмнө нэмэгдүүлэх үү дараа нэмэгдүүлэх үү? – Жишээ 2: strcpy (r1), (r2) » 2 хаяг ижилхэн бол: буцааж чадахгүй! » IBM S/370 ба VAX шийдэл: хоёр ажиллуулах – зөвхөн нэг унших • “RISC” Процесор дээр яах вэ ? – Саатуулагдсан салбарууд? » жишээ: bne somewhere ld r1,(sp) » Нарийвлалтай тасалдал 2 РC нээс бүрдэнэ: PC ба nPC – Саатуулагдсан тасалдал: » Example: div r1, r2, r3 ld r1, (sp) » Хэрвээ 0-д хуваах алдаа гартал олон алхам хийгддэг гэхдээ ачаалалт дээр хуудсын алдаа гарсан бол яах вэ?
  • 7. Lec 15.710/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Нарийвлалтай тасалдал • Нарийвчлал Програм хангамж буруу команд хүртэл ажилласан гэж үзээд машинд төлвийг хадгалагдана. – Өмнөх бүх команд дууссан байна. – Алдаатай команд болон түүний дараагийн командыг эхлүүлээгүй байгаа гэж үзнэ. – Ижил системийн код нь ялгаатай хэрэгжүүлэлт дээр ажиллана. – Дамжуургатай эсвэл алдаатай биелэлтийн үед маш хэцүү... – MIPS-н ийм байдлаар ажилладаг. • Нарийвчлалгүй Системийн програм хангамж хаана юу байгааг ба бүгдийг нь нэгтгэнэ. • Гүйцэтгэлд зориулан дизайнерууд нарийвчлалтай тасалдлуудыг орхидог. • Алдаатай биелэлт болон салбарыг урьдчилан тааварладаг орчин үеийн техник нь нарийвчлалтай тасалдлуудыг гүйцэтгэхэд тусалж байна.
  • 8. Lec 15.810/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Хуудсын алдааг харьцуулах үе шат
  • 9. Lec 15.910/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Шаардлагаар ачаалах жишээ • Шаардлагаар ачаалах арга нь кэшлэлтэй адилхан учраас хандалтын дундаж хугацааг тооцоолох! (“Effective Access Time”) – EAT = Hit Rate x Hit Time + Miss Rate x Miss Time – EAT = Hit Time + Miss Rate x Miss Penalty • Жишээ: – Memory access time = 200 nanoseconds – Average page-fault service time = 8 milliseconds – Suppose p = Probability of miss, 1-p = Probably of hit – Then, we can compute EAT as follows: EAT = 200ns + p x 8 ms = 200ns + p x 8,000,000ns • Хэрвээ 1000 хандалтаас 1 нь алдаа гарч байвал EAT = 8.2 μs байна.: – Энэ нь 40 гэсэн коффицеэнттойгоор удаашруулана! • Хэрвээ 10-с бага хувиар удаашруулана гэвэл? – 200ns x 1.1 < EAT  p < 2.5 x 10-6 – 400000 хандалтанд 1 хуудсны алдаа гарна.
  • 10. Lec 15.1010/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Ямар үед хуудсын алдаа гарах вэ? • Заавал : – Өмнө нь санах ой руу хуудаслагдаж байгаагүй хуудаснууд. – Бид эдгээрийг шийдэж болох уу? » Урьдчилэн ачалаах: тэдгээрийг хэрэг болохоос өмнө санах ой руу ачаалах хэрэгтэй. » Ямар нэгэн байдлаар урьдчилан таамаглах хэрэгтэй. • Багтаамж : – Санах ой хүрэлцэхгүй байна. Ямар нэгэн байдлаар нэмэгдүүлэх ёстой. – Бид үүнийг хийж чадах уу? » Нэгдүгээр хувилбар: DRAM-ны тоог нэмэх (хурдан биш засвар!) » Дараагийн хувилбар: Хэрвээ олон процесс санах ойтой бол: тус бүрт нь хуваарилсан санах ой хувийг тохируулах. • Зөрчил : – Виртуал санах ой нь “Бүрэн хамааралтай” кэш учраас зөрчлөөс хамаарч хуудсын алдаа гарахгүй. • Бодлого : – Хуудсууд санах ой байсан боловч саяхан бодлого солилтын үед түлхэгдэн гарсан. » Яаж засах вэ? Хуудас солилын бодлогыг сайжруулах.
  • 11. Lec 15.1110/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Хуудас солилтын бодлого • Бид яагаад солилтын бодлогонд анхаарал хандуулдаг вэ? – Солилт нь нэгэн төрлийн кэш юм. – Ялангуяа хуудастай маш чухал холбоотой. » Алдааны зардал их байдаг: Дискинд очих ёстой. » Хамгийн чухал хуудсуудаа гаргалгүйгээр санах ойд байглана. • FIFO (Эхэлж ороод, Эхэлж гарах) – Хамгийн хуучин хуудсыг гаргана. Шударга байх– Бүх хуудаснууд санах ойд ижил хугацаанд байрлах. – Сул тал. Учир нь хааяа ашигладаг хуудсны оронд их ашигладдаг хуудсыг гаргаж болдог. • MIN (Хамгийн бага): – Хамгийн урт хугацаанд ашиглагдахгүй хуудсыг солилт хийх байх. – Гэхдээ ирээдүйг мэдэж чадахгүй… – Гэсэн ч харьцуулалтын сайн жишээ болдог. • RANDOM(Санамсаргүй): – Хуудаснуудыг санамсаргүйгээр сонгож солино. – ХКБ-н нийтлэг шийдэл. Энгийн техник хангамж – Урьдчилан таамаглах боломж муутай – бодит хугацаагны баталгаа гаргахад хүндрэлтэй.
  • 12. Lec 15.1210/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Солилтын бодлого(үргэлжлэл) • LRU (хандаагүй хамгийн удсан): – Хамгийн урт хугацаанд ашиглаагүй хуудсыг солих. – Програм хангамж ямар нэгэн байдлаар ашиглагдахгүй удсан бол ойрын үед хэрэглэхгүй гэсэн зарчмаар ажиллана. – LRU нь сайжруулсан MIN-тэй ойролцоо • LRU хэрхэн хэрэгжүүлэх вэ? Жагсаалт хэрэглэнэ. – Ашиглах үед нь хуудсын жагсаалтаас авч толгойд байрлуулах. – LRU хуудас сүүлд нь байна. • Энэ хуудсын схемийн асуулдлууд? – Хуудсыг хэрэглсэн үед нэн даруй мэдэж жагсаалтанд өөрчлөлт хийнэ. – Техник хангамжийн хандалт бүрт олон командыг биелүүлэнэ. • Хүмүүс амьдрал дээр LRU-тэй ойролцоо сэтгэдэг. Page 6 Page 7 Page 1 Page 2Head Tail (LRU)
  • 13. Lec 15.1310/21/09 Kubiatowicz CS162 ©UCB Fall 2009 • 3 хуудсны хэмжээтэй санах ой, 4 виртуал хуудас байгаа. Хандалтууд дараах дарааллаар хийгдэнэ. – A B C A B D A D B C B • Consider FIFO Page replacement: – FIFO: 7 хуудсын алдаа. – D орж ирээд солилт хийсний дараа А ахин хэрэгтэй болж байна. А-г солих нь муу сонголт байна. Жишээ: FIFO C B A D C B A BCBDADBACBA 3 2 1 Ref: Page:
  • 14. Lec 15.1410/21/09 Kubiatowicz CS162 ©UCB Fall 2009 • Өмнөхтэй адил хандалтуудын дараалал: – A B C A B D A D B C B • Consider MIN Page replacement: – MIN: 5 хуудсын алдаа. – D-г хаана оруулж ирэх вэ? Ирээдүйд хамгийн сүүлд хандагдах хуудсыг хайна. • LRU байсан бол яах вэ? – MIN тэй,адилхан шийдвэр гаргана гэхдээ үргэлж адилхан байхгүй. жишээ: MIN C DC B A BCBDADBACBA 3 2 1 Ref: Page:
  • 15. Lec 15.1510/21/09 Kubiatowicz CS162 ©UCB Fall 2009 • Хандалтын дараалал: A B C D A B C D A B C D • LRU Performs as follows (same as FIFO here): – Хандалт бүр дээр хуудсын алдаа гарч байна. • MIN Does much better: D LRU хэзээ муу ажиллах вэ? C B A D C B A D C B A CBADCBADCBA D 3 2 1 Ref: Page: B C DC B A CBADCBADCBA D 3 2 1 Ref: Page:
  • 16. Lec 15.1610/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Фреймийн тоо ба хуудасны алдааны уялдаа хамаарал • Нэг сайн шинж чанар: Санах ой нэмэх үед хуудсын алдаа буурч байна. – Энэ үргэлж тохиолдох уу? – Тийм юм шиг байна тиймүү? • Үгүй : BeLady-н гажуудал – Зарим солилтын алгоритм (FIFO) нь энэ шинж чанрыг агуулдаггү!
  • 17. Lec 15.1710/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Санах ой нэмэх нь үргэлж алаанд багасгахгүй • Санах ой нэмэхэд алдаа багасах уу? – LRU ба MIN арга тийм. – FIFO заавал биш! (Called Belady’s anomaly) • Санах ой нэмсэний дараа: – FIFO нь агуулга шал өөр байж болно. – Харин LRU болон Min-г ашиглах Х хуудас бүхий санах ойн агуулга X + 1 санах ойн дэд хэсэг байна D C E B A D C B A DCBAEBADCBA E 3 2 1 Ref: Page: CD4 E D B A E C B A DCBAEBADCBA E 3 2 1 Ref: Page:
  • 18. Lec 15.1810/21/09 Kubiatowicz CS162 ©UCB Fall 2009 LRU хэрэгжүүлэх • Төгс хэрэгжүүлэлт: – Хуудас бүрийн хувьд хандсан хугацааг нь хадгална. – Хуудсануудын хандсан хугацаагаар нь эрэмбэлсэн жагсаалтыг үүсгэнэ. – Хэрэгжүүлэхэд зардал өндөртэй. • Цагны алгоритм: Физик хуудснуудыг цагны нэг зүүгээр зохион байгуулах. – LRU-тэй ойролцоо (бараг л MIN) – Хамгийн хуучин хуудас биш, гэхдээ хуучин хуудас солино. • Дэлгэрэнгүй: – Физик хуудас бүрт техник хангамжийн use бит ашиглах: » Хандах бүрт техник хангамж useт битийг тогтооно. » Хэрвээ Use бит 0-тэй тэнцүү бол ойрд хандаагүй гэсэн үг. – Хуудсын алдааны үед: » Цагийн зүүг эргүүлэнэ. (not real time) » Use битийг шалгах: » 1саяхан ашигласан; тэглээд орхино. 0Солилт хийх боломжтой хуудас. – Солих хуудас үргэлж олдох уу эсвэл хязгааргүй эргэлдэх үү? » Ашиглах битүүд бүгд нэгтэй тэнцүү бол бүтэн эргэнэFIFO
  • 19. Lec 15.1910/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Цагны алгоритм: Ойрл ашиглагдаагүй Set of all pages in Memory Цагны нэг зүү: Зөвхөн хуудсын алдаа гарах үед зүү нь явна! Ойрд ашиглаагүй хуудсыг хайна. Хуудсуудыг ойр хэрэглэгдээгүй гэж тэмдэглэнэ. • Цагийн зүү удаан хөдөлж байгаа бол? – Сайн уу муу юу? » Хуудсын алдаа бага эсвэл - солих хуудас хурдан олдоно. • Цагийн зүү хурдан хөдөлж байгаа бол? – Хуудсын алдаа их гарч байгаа эсвэл –Нэгтэй тэнцүү хандалтын битүүд олон байна. • Цагны алгоритмыг харах нэг арга: » Хуудсуудыг шууд хоёр бүлэгт хуваах: шинэ ба хуучин – Яагаад 2-с олон бүлэгт хуваахгүй байна?
  • 20. Lec 15.2010/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Цагны алгоритмын “N-р боломж” хувилбар • N -р боломж алгоритм: Хуудсанд N боломж олгоно. – Үйлдлийн систем нь хуудас болгонд тоолуур хадгалж байдаг: # шалгалтын тоо – Хуудсын алдаа гарахад ҮС нь ашиглах битийг шалгадаг: » 1 Use болон тоолуурыг тэглэнэ. (сүүлийн шалгалтанд хэрэглсэн) » 0тоолуурыг нэмэгдүүлэнэ; хэрвээ тоо нь=N, хуудас солино. – Цагны зүү N удаа явж өнгөрөхөд хуудсыг ашиглаагүй байсан. • Бид яаж N –г сонгох вэ? – Яагаад том N авах хэрэгтэй вэ? LRU нь илүү адилхан болно. » Хэрвээ N ~ 1000 бол маш сайн төхнө. – Яагаад жижиг N? Илүү хэмнэлттэй. » Үгүй бол сул хуудсыг олохын тулд их замыг туулж магадгүй. • Бохир хуудсуудыг яах вэ? – Бохир хуудас нь хуудас солилтонд сөргөөр нөлөөлдөг тул солилт хийхийнхээ өмнө нэмэлт боломжуудыг олгох хэрэгтэй юу? – Нийтлэг арга: » Цэвэр хуудас N=1 » Бохир хуудас N=2 (N=1 болонгуут нь дикс руу бичих)
  • 21. Lec 15.2110/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Цагны алгоритм: Дэлгэрэнгүй • ХХБ-н аль бит нь бидэнд хэрэгтэй вэ? – Use: Хуудасруу хандсан үед тогтооно. Цагны алгоритм тэглэнэ. – Modified: Хуудсанд өөрчлөлт хийсэн үед тогтоогоод, хуудсыг диск рүү бичих үед тэглэнэ. – Valid: Програм энэ хуудас руу хандаж болно. – Read-only: Програм унших болон бичиж болно, харин өөрчилж болохгүй. » Кодны хуудсуудыг өөрчлүүлэхгүй байх хэрэгтэй! • Техник хангамжийн дэмжлэгтэй“өөрчлөлтийн” бит бидэнд хэрэгтэй юу? – Үгүй. Зөвхөн унших битийг хэрэглэн орлуулж болно.(BSD Unix) » Эхлээд бүх хуудсыг read only гэж тэмдэглэнэ. Өгөгдлийн хуудсуудыг хүртэл. » Бичих үед ҮС-рүү шилжинэ.ҮС “modified” битийг тогтоогоод хуудсыг read-write гэж тэмдэглэнэ. » Хуудас дискнээс ирэхэд read-only гэж тэмдэглэнэ.
  • 22. Lec 15.2210/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Үргэлжлэл • Техник хангамжийн дэмжлэгтэй“Use” бит бидэнд хэрэгтэй юу? – Үгүй. Дээрхтэй адилаар орлуулж болно: » Санах ойд байсан ч гэсэн бүх хуудсыг хүчингүй гэж тэмдэглэнэ. » Хүчингүй хуудсыг унших үед ҮС рүү шилжинэ. » ҮС use битийг тогтоогоод read-only гэж тэмдэглэнэ. – Өөрлөлтийн битийг өмнөхтэй адил боловсруулж болно: » Бичих үед ҮС рүү шилжинэ. (Хүчингүй болон read-only байсан ч хамаагүй) » use болон modified битийг тогтоогоод read-write гэж тэмдэглэнэ. – Цагийн зүү дайрч өнгөрөхөд use болон modified битийг тэглээд хуудсыг хүчингүй гэж тэмдэглэнэ. • Цаг бол зөвхөн LRU тэй төстэй гэдгийг санаарай. – Бид нарт унших бичих үед гарах хуудсны алдааны мэдээллүүд байгаа бол төсөөтэй байдлыг сайжруулж чадах уу? – Хамгийн хуучин хуудсыг биш ямар нэг хуучин хуудсыг олох хэрэгтэй! – Хариулт: хоёрдахь боломж жагсаалт
  • 23. Lec 15.2310/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Хоёрдахь боломж жагсаалтын алгоримт (VAX/VMS) • Санах ойг 2 хэсэгт хуваана: Идэвхитэй жагсаалт (RW), SC жагсаалт (Invalid) • Идэвхитэй жагсаалтанд байгаа хуудсуудад дээд хурдаараа хандаж бално. • Үгүй бол хуудсын алдаа үүснэ. – Идэвхитэй жагсаалтын төгсгөлд байгаа хэтэрсэн хуудсыг авч хоёр дахь боломж жагсаалтын (SC) эхэнд байрлуулаад хүчингүй гэж тэмдэглэнэ. – SC жагсаалт байгаа хүссэн хуудсыг идэвхитэй жагсаалтын эхэнд байрлуулаад RW гэж тэмдэглэнэ. – SC жагсаалтанд байхгүй бол: Идэвхитэй жагсаалтын эхэнд оруулж ирээд RW гэж тэмдэглэнэ; тэгээд SC жагсаалтын сүүлд байгаа хуудсыг гаргана. Directly Mapped Pages Marked: RW List: FIFO Second Chance List Marked: Invalid List: LRU LRU victim Page-in From disk New Active Pages New SC Victims
  • 24. Lec 15.2410/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Second-Chance List Algorithm (con’t) • How many pages for second chance list? – If 0  FIFO – If all  LRU, but page fault on every page reference • Pick intermediate value. Result is: – Pro: Few disk accesses (page only goes to disk if unused for a long time) – Con: Increased overhead trapping to OS (software / hardware tradeoff) • With page translation, we can adapt to any kind of access the program makes – Later, we will show how to use page translation / protection to share memory between threads on widely separated machines • Question: why didn’t VAX include “use” bit? – Strecker (architect) asked OS people, they said they didn’t need it, so didn’t implement it – He later got blamed, but VAX did OK anyway
  • 25. Lec 15.2510/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Free List • Keep set of free pages ready for use in demand paging – Freelist filled in background by Clock algorithm or other technique (“Pageout demon”) – Dirty pages start copying back to disk when enter list • Like VAX second-chance list – If page needed before reused, just return to active set • Advantage: Faster for page fault – Can always use page (or pages) immediately on fault Set of all pages in Memory Single Clock Hand: Advances as needed to keep freelist full (“background”) D D Free Pages For Processes
  • 26. Lec 15.2610/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Demand Paging (more details) • Does software-loaded TLB need use bit? Two Options: – Hardware sets use bit in TLB; when TLB entry is replaced, software copies use bit back to page table – Software manages TLB entries as FIFO list; everything not in TLB is Second-Chance list, managed as strict LRU • Core Map – Page tables map virtual page  physical page – Do we need a reverse mapping (i.e. physical page  virtual page)? » Yes. Clock algorithm runs through page frames. If sharing, then multiple virtual-pages per physical page » Can’t push page out to disk without invalidating all PTEs
  • 27. Lec 15.2710/21/09 Kubiatowicz CS162 ©UCB Fall 2009 Summary • Precise Exception specifies a single instruction for which: – All previous instructions have completed (committed state) – No following instructions nor actual instruction have started • Replacement policies – FIFO: Place pages on queue, replace page at end – MIN: Replace page that will be used farthest in future – LRU: Replace page used farthest in past • Clock Algorithm: Approximation to LRU – Arrange all pages in circular list – Sweep through them, marking as not “in use” – If page not “in use” for one pass, than can replace • Nth-chance clock algorithm: Another approx LRU – Give pages multiple passes of clock hand before replacing • Second-Chance List algorithm: Yet another approx LRU – Divide pages into two groups, one of which is truly LRU and managed on page faults.

Editor's Notes

  1. Nachos and other systems: hardware saves state, to help you. Role of nextPC, LoadReg, etc. Other examples: 68000 was non-virtualizable. Couldn’t restart after a fault So Apollo Computers put 2 68000 in every workstation: Executes user code (hangs on fault) Handles fault (no overlapped I/O) Intel i860 (came out same time as 486): doesn’t provide failing virtual address. Have to go back and disassemble instruction to figure out what failed… Moral: have to know lots of stuff to do hardware design: hardware/compilers/OS