Лекц 6Системийн дуудалт, системийн програм, бүтэц
Ultra SPARC III-ийн виртуаль санах ойUltra SPARC III 64 бит виртуаль хаягтай хуудастай 64 битийн машин. Гэсэн хэдий ч 64 бит виртуаль санах ойн орон зай ашиглаж чаддаггүй. Зөвхөн 64 битийг л дэмжих тул программ 1,8×1013 байтаас хэтрэхгүй.Хандаж болох виртуаль санах ой 243 байт хэсжээтэй 2 бүсэд хуваагдах ба нэг нь виртуаль санах ойн дээд хэсэгт нөгөө нь доод хэсэгт байрлана. Эдгээрийн хооронд хэрэглэгдээгүй хаягууд бүхий нүх байрлана. Нүх хэрэглэх оролдлого алдаа дуудна.Ultra SPARC III-ийн max физик санах ой 241 байт (2200Гбайт) байна. Хуудасны 4 төрлийн хэмжээтэй: 8Кбайт, 64Кбайт, 512Кбайт ба 4Мбайт.Виртуаль санах ойн хэмжээ их тул жирийн хуудасны хүснэгт хэрэглэх нь тохиромжгүй.
Ultra SPARC III арай өөр арга хэрэглэнэ. Санах ойг удирдах төхөөрөмж TBL (translation lookaside buffer) хүснэгтэй. Энэ хүснэгт физик хуудасны хүснэгт дэх виртуаль хуудасны дугаарыг заана. 8К хэмжээтэй хуудсанд 231 виртуаль хуудасны номер (2 миллиардаас их) харгалзана. Иймээс бүгдийг нь дүрслэх боломжгүй.TBL хүснэгт хамгийн сүүлд хэрэглэгдсэн виртуаль хуудасны дугаарыг л агуулна. Командын хуудас болон өгөгдлийн хуудас тусдаа ба тус бүрээс  хамгийн сүүлийн 64 виртуаль хуудасны дугаарыг TBL хүснэгт агуулна.
TBL буферийн элемент бүр виртуаль хуудасны дугаар ба харгалзах физик хуудасны дугаарыг агуулна. Процессын дугаар гэж нэрлэгдэх контекст болон  виртуаль хаяг санах ойн диспетчерт очиход диспетчер тусгай схемийн тусламжтай виртуаль хуудасны дугаарыг TBL буферийн элемент бүртэй харьцуулна.
Хэрэв давхцал гарч ирвэл буферийн элемент дэх хуудасны кадрын дугаар виртуаль хаягаас авсан шилжилттэй нэгдэн 41 бит физик хаяг бий болж flag-ийг (хамгаалалтын бит г.м.) боловсруулна.Хэрэв давхцал гарч ирээгүй бол TBL-ийн алдаа гарч үйлдлийн системд trap дуудна. Алдааг үйлдлийн систем боловсруулна. Энэ алдаа хуудас байхгүй үед үүсэх алдаанаас ялгаатай. TBL-ийн алдаа хэрэгтэй хуудас санах ойд байхад ч гарч болно. Онолын хувьд үйлдлийн систем TBL буферээс виртуаль хуудсанд хэрэгтэй элементийг ачаалж чадна. Гэхдээ энэ процессийг хурдасгахын тулд аппарат хангамжийг ашиглан программ хангамж хамтарч ажиллана.Үйлдлийн систем хамгийн их хэрэглэгддэг TBL буферийн элементүүдийг TSB (translation storage buffer) гэж нэрлэгдэх хүснэгтэд хадгална.Энэ хүснэгт L-1 түвшний кэш шиг зохион байгуулалттай.
TSB хүснэгтийн 16 байт элемент бүр нэг виртуаль хуудсыг заах ба үнэн зөвийн бит, контекстийн дугаар, виртуаль хаягийн тег, хуудасны физик дугаар болон флаг битүүд агуулна.Хэрэв кэшийн хэмжээ 8192 элемент гэвэл бага 13 бит нь 0 байх бүх виртуль хуудас хүснэгтийн 0 байрлал дахь элемент болох боломжтой.Хүснэгтийн хэмжээг программаар тодорхойлон санах ойг удирдах контроллерт үйлдлийн систем л хандах эрхтэй тусгай регистрээр дамжуулан өгнө. Хөрвүүлэлт хадгалах буфер алдаа заахад  үйлдлийн систем TLB буферийн элемент хэрэгтэй виртуаль хуудсыг агуулж байгаа эсэхийг шалгана. Санах ойг удирдах контроллер энэ элементийн хаягийг тодорхойлон өөрийн дотоод регистрт  (үйлдлийн систем л хандана) хадгална.
TSB хүснэгтийн 16 байт элемент бүр нэг виртуаль хуудсыг заах ба үнэн зөвийн бит, контекстийн дугаар, виртуаль хаягийн тег, хуудасны физик дугаар болон флаг битүүд агуулна.Хэрэв кэшийн хэмжээ 8192 элемент гэвэл бага 13 бит нь 0 байх бүх виртуль хуудас хүснэгтийн 0 байрлал дахь элемент болох боломжтой.Хүснэгтийн хэмжээг программаар тодорхойлон санах ойг удирдах контроллерт үйлдлийн систем л хандах эрхтэй тусгай регистрээр дамжуулан өгнө. Хөрвүүлэлт хадгалах буфер алдаа заахад  үйлдлийн систем TLB буферийн элемент хэрэгтэй виртуаль хуудсыг агуулж байгаа эсэхийг шалгана. Санах ойг удирдах контроллер энэ элементийн хаягийг тодорхойлон өөрийн дотоод регистрт  (үйлдлийн систем л хандана) хадгална.
Виртуаль санах ой ба кэшлэлтВиртуаль санах ой ба кэшлэлт хоорондоо холбоогүй ч хоорондоо төстэй.Виртуаль санах ойтой үед программ дискэн дээр хадгалагдан тогтсон хэмжээтэй хуудаснуудад хуваагдана. Энэ хуудаснуудын нэг хэсэг нь үндсэн санах ойд хадгалагдана. Хэрэв программ санах ойгоос хуудас ашиглаж байгаа бол хуудас байхгүйгээс үүсэх алдаа гарахгүй тул программ хурдан ажиллана.Кэшлэхэд бүх программ үндсэн санах ойд хадгалагдан тодорхой хэмжээтэй блокод хуваагдана. Энэ блокуудын зарим нь кэшэнд хадгалагдана. Хэрэв программ кэшийн блокууд ашиглаж байгаа бол кэшд хандах алдаа бараг гарахгүй тул программ хурдан ажиллана.Иймээс виртуаль санах ой ба кэш ижил бөгөөд иерархийн өөр өөр түвшинд ажиллаж байна.
Ялгаатай тал:Кэш санах ойн промах гарахад аппарат хангамж боловсруулалт хийх бол хуудас байхгүйгээс үүсэх алдааг үйлдлийн систем боловсруулна.Кэш санах ойн блок хуудаснаас бага хэмжээтэйХуудасны хүснэгт виртуаль хаягийн ахлах битээр индеклэгдэх бол кэш санах ой санах ойн хаягийн бага битээр индекслэгдэнэ.
Виртуаль  оролт-гаралтын командуудҮйлдлийн системийн түвшний командын багц командын архитектурын түвшний ихэнх командыг агуулах ба зарим маш чухал шинэ командуудтай.Үйлдлийн системийн ба командын архитектурын түвшний оролт гаралт маш их ялгаатай. Командын архитектурын түвшний оролт гаралтын командыг ашиглах чадвартай хэрэглэгч системд маш аюултай. Үйлдлийн системийн түвшинд оролт гаралтын процессийг ажиллуулахын тулд төхөөрөмжийн регистрүүдэд бит болон талбар үүсгэнэ.Төхөөрөмжийн регистрүүд дараах алдааг илрүүлэх битүүдтэй:Дискний төхөөрөмж ****
Санах ойн байхгүй элементийг буфер гэж тодорхойлох
Дискний оролт/гаралт өмнөи оролт/гаралт дуусахаас өмнө эхлэхУншихад синхрончлолын алдаа гарах
Байхгүй дискэнд хандах
Байхгүй цилиндрт хандах
Байхгүй секторт хандах
Бичсэний дараа шалгахад гарах алдаа Дээрх алдаануудын нэг нь гарахад төхөөрөмжийн регистрт харгалзах битүүд тогтоогдоно. ФайлВиртуаль оролт/гаралт үүсгэх нэг арга нь файл гэж нэрлэгдэх ойлголт хэрэглэх. Файл – оролт/гаралтын төхөөрөмжид бичсэн файлуудын дараалал. Хэрэв оролт/гаралтын төхөөрөмж мэдээлэл хадгадах зориулалттай бол файлыг буцаан уншиж болно.
Файл янз бүрийн урттай байхаас гадна өөр өөр шинжтэй байж болно.Үйлдлийн системийн хувьд файл бол байтын дараалал. Файлын оролт/гаралт нээх, уншихад системийн дуудлага, бичихэд файл хаах зэргийг ашиглана. Файлын уншихын тулд нээнэ. Файлыг нээх процесс үйлдлийн системд дискнээс файл олох ба мэдээлэл дамжуулах зэрэг хэрэгцээтэй үйлдлүүдийг зөвшөөрнө.Файлыг нээсний дараа уншиж болно. Унших системний дуудлага дараах параметруудтай байна:аль нээгдсэн байгаа файлын унших
Өгөгдөл байрлуулах санах ойн буферийг заагч
Унших байтын тооИйм системийн дуудлага хэрэгтэй өгөгдлийг буферт хадгална. Ихэвчлэн уншигдсан байтуудын тоог буцаана. Энэ тоо анхны хүссэн тооноос бага байж болно.

Lecture6

  • 1.
    Лекц 6Системийн дуудалт,системийн програм, бүтэц
  • 2.
    Ultra SPARC III-ийнвиртуаль санах ойUltra SPARC III 64 бит виртуаль хаягтай хуудастай 64 битийн машин. Гэсэн хэдий ч 64 бит виртуаль санах ойн орон зай ашиглаж чаддаггүй. Зөвхөн 64 битийг л дэмжих тул программ 1,8×1013 байтаас хэтрэхгүй.Хандаж болох виртуаль санах ой 243 байт хэсжээтэй 2 бүсэд хуваагдах ба нэг нь виртуаль санах ойн дээд хэсэгт нөгөө нь доод хэсэгт байрлана. Эдгээрийн хооронд хэрэглэгдээгүй хаягууд бүхий нүх байрлана. Нүх хэрэглэх оролдлого алдаа дуудна.Ultra SPARC III-ийн max физик санах ой 241 байт (2200Гбайт) байна. Хуудасны 4 төрлийн хэмжээтэй: 8Кбайт, 64Кбайт, 512Кбайт ба 4Мбайт.Виртуаль санах ойн хэмжээ их тул жирийн хуудасны хүснэгт хэрэглэх нь тохиромжгүй.
  • 3.
    Ultra SPARC IIIарай өөр арга хэрэглэнэ. Санах ойг удирдах төхөөрөмж TBL (translation lookaside buffer) хүснэгтэй. Энэ хүснэгт физик хуудасны хүснэгт дэх виртуаль хуудасны дугаарыг заана. 8К хэмжээтэй хуудсанд 231 виртуаль хуудасны номер (2 миллиардаас их) харгалзана. Иймээс бүгдийг нь дүрслэх боломжгүй.TBL хүснэгт хамгийн сүүлд хэрэглэгдсэн виртуаль хуудасны дугаарыг л агуулна. Командын хуудас болон өгөгдлийн хуудас тусдаа ба тус бүрээс хамгийн сүүлийн 64 виртуаль хуудасны дугаарыг TBL хүснэгт агуулна.
  • 4.
    TBL буферийн элементбүр виртуаль хуудасны дугаар ба харгалзах физик хуудасны дугаарыг агуулна. Процессын дугаар гэж нэрлэгдэх контекст болон виртуаль хаяг санах ойн диспетчерт очиход диспетчер тусгай схемийн тусламжтай виртуаль хуудасны дугаарыг TBL буферийн элемент бүртэй харьцуулна.
  • 5.
    Хэрэв давхцал гарчирвэл буферийн элемент дэх хуудасны кадрын дугаар виртуаль хаягаас авсан шилжилттэй нэгдэн 41 бит физик хаяг бий болж flag-ийг (хамгаалалтын бит г.м.) боловсруулна.Хэрэв давхцал гарч ирээгүй бол TBL-ийн алдаа гарч үйлдлийн системд trap дуудна. Алдааг үйлдлийн систем боловсруулна. Энэ алдаа хуудас байхгүй үед үүсэх алдаанаас ялгаатай. TBL-ийн алдаа хэрэгтэй хуудас санах ойд байхад ч гарч болно. Онолын хувьд үйлдлийн систем TBL буферээс виртуаль хуудсанд хэрэгтэй элементийг ачаалж чадна. Гэхдээ энэ процессийг хурдасгахын тулд аппарат хангамжийг ашиглан программ хангамж хамтарч ажиллана.Үйлдлийн систем хамгийн их хэрэглэгддэг TBL буферийн элементүүдийг TSB (translation storage buffer) гэж нэрлэгдэх хүснэгтэд хадгална.Энэ хүснэгт L-1 түвшний кэш шиг зохион байгуулалттай.
  • 6.
    TSB хүснэгтийн 16байт элемент бүр нэг виртуаль хуудсыг заах ба үнэн зөвийн бит, контекстийн дугаар, виртуаль хаягийн тег, хуудасны физик дугаар болон флаг битүүд агуулна.Хэрэв кэшийн хэмжээ 8192 элемент гэвэл бага 13 бит нь 0 байх бүх виртуль хуудас хүснэгтийн 0 байрлал дахь элемент болох боломжтой.Хүснэгтийн хэмжээг программаар тодорхойлон санах ойг удирдах контроллерт үйлдлийн систем л хандах эрхтэй тусгай регистрээр дамжуулан өгнө. Хөрвүүлэлт хадгалах буфер алдаа заахад үйлдлийн систем TLB буферийн элемент хэрэгтэй виртуаль хуудсыг агуулж байгаа эсэхийг шалгана. Санах ойг удирдах контроллер энэ элементийн хаягийг тодорхойлон өөрийн дотоод регистрт (үйлдлийн систем л хандана) хадгална.
  • 7.
    TSB хүснэгтийн 16байт элемент бүр нэг виртуаль хуудсыг заах ба үнэн зөвийн бит, контекстийн дугаар, виртуаль хаягийн тег, хуудасны физик дугаар болон флаг битүүд агуулна.Хэрэв кэшийн хэмжээ 8192 элемент гэвэл бага 13 бит нь 0 байх бүх виртуль хуудас хүснэгтийн 0 байрлал дахь элемент болох боломжтой.Хүснэгтийн хэмжээг программаар тодорхойлон санах ойг удирдах контроллерт үйлдлийн систем л хандах эрхтэй тусгай регистрээр дамжуулан өгнө. Хөрвүүлэлт хадгалах буфер алдаа заахад үйлдлийн систем TLB буферийн элемент хэрэгтэй виртуаль хуудсыг агуулж байгаа эсэхийг шалгана. Санах ойг удирдах контроллер энэ элементийн хаягийг тодорхойлон өөрийн дотоод регистрт (үйлдлийн систем л хандана) хадгална.
  • 9.
    Виртуаль санах ойба кэшлэлтВиртуаль санах ой ба кэшлэлт хоорондоо холбоогүй ч хоорондоо төстэй.Виртуаль санах ойтой үед программ дискэн дээр хадгалагдан тогтсон хэмжээтэй хуудаснуудад хуваагдана. Энэ хуудаснуудын нэг хэсэг нь үндсэн санах ойд хадгалагдана. Хэрэв программ санах ойгоос хуудас ашиглаж байгаа бол хуудас байхгүйгээс үүсэх алдаа гарахгүй тул программ хурдан ажиллана.Кэшлэхэд бүх программ үндсэн санах ойд хадгалагдан тодорхой хэмжээтэй блокод хуваагдана. Энэ блокуудын зарим нь кэшэнд хадгалагдана. Хэрэв программ кэшийн блокууд ашиглаж байгаа бол кэшд хандах алдаа бараг гарахгүй тул программ хурдан ажиллана.Иймээс виртуаль санах ой ба кэш ижил бөгөөд иерархийн өөр өөр түвшинд ажиллаж байна.
  • 10.
    Ялгаатай тал:Кэш санахойн промах гарахад аппарат хангамж боловсруулалт хийх бол хуудас байхгүйгээс үүсэх алдааг үйлдлийн систем боловсруулна.Кэш санах ойн блок хуудаснаас бага хэмжээтэйХуудасны хүснэгт виртуаль хаягийн ахлах битээр индеклэгдэх бол кэш санах ой санах ойн хаягийн бага битээр индекслэгдэнэ.
  • 11.
    Виртуаль оролт-гаралтынкомандуудҮйлдлийн системийн түвшний командын багц командын архитектурын түвшний ихэнх командыг агуулах ба зарим маш чухал шинэ командуудтай.Үйлдлийн системийн ба командын архитектурын түвшний оролт гаралт маш их ялгаатай. Командын архитектурын түвшний оролт гаралтын командыг ашиглах чадвартай хэрэглэгч системд маш аюултай. Үйлдлийн системийн түвшинд оролт гаралтын процессийг ажиллуулахын тулд төхөөрөмжийн регистрүүдэд бит болон талбар үүсгэнэ.Төхөөрөмжийн регистрүүд дараах алдааг илрүүлэх битүүдтэй:Дискний төхөөрөмж ****
  • 12.
    Санах ойн байхгүйэлементийг буфер гэж тодорхойлох
  • 13.
    Дискний оролт/гаралт өмнөиоролт/гаралт дуусахаас өмнө эхлэхУншихад синхрончлолын алдаа гарах
  • 14.
  • 15.
  • 16.
  • 17.
    Бичсэний дараа шалгахадгарах алдаа Дээрх алдаануудын нэг нь гарахад төхөөрөмжийн регистрт харгалзах битүүд тогтоогдоно. ФайлВиртуаль оролт/гаралт үүсгэх нэг арга нь файл гэж нэрлэгдэх ойлголт хэрэглэх. Файл – оролт/гаралтын төхөөрөмжид бичсэн файлуудын дараалал. Хэрэв оролт/гаралтын төхөөрөмж мэдээлэл хадгадах зориулалттай бол файлыг буцаан уншиж болно.
  • 18.
    Файл янз бүрийнурттай байхаас гадна өөр өөр шинжтэй байж болно.Үйлдлийн системийн хувьд файл бол байтын дараалал. Файлын оролт/гаралт нээх, уншихад системийн дуудлага, бичихэд файл хаах зэргийг ашиглана. Файлын уншихын тулд нээнэ. Файлыг нээх процесс үйлдлийн системд дискнээс файл олох ба мэдээлэл дамжуулах зэрэг хэрэгцээтэй үйлдлүүдийг зөвшөөрнө.Файлыг нээсний дараа уншиж болно. Унших системний дуудлага дараах параметруудтай байна:аль нээгдсэн байгаа файлын унших
  • 19.
    Өгөгдөл байрлуулах санахойн буферийг заагч
  • 20.
    Унших байтын тооИймсистемийн дуудлага хэрэгтэй өгөгдлийг буферт хадгална. Ихэвчлэн уншигдсан байтуудын тоог буцаана. Энэ тоо анхны хүссэн тооноос бага байж болно.