Санах ойн хаяг

Санах ойн хаяг (Англи: Memory address) - компьютерын санах ой дахь тодорхой байршлыг заана.

Төрөл[засварлах | кодоор засварлах]

Физик хаяг[засварлах | кодоор засварлах]

2 төрлийн хаяг байдгийн нэг нь физик хаяг (Англи: Physical address) бөгөөд энэ бол санах ойн бодит хаяг юм. Физик хаягийг өөрөөр бодит хаяг (Англи: Real address) хоёртын хаяг (Англи: Binary address) гэж нэрлэдэг.

Өгөгдлийн шугамаас (Англи: Data Bus) үндсэн санах ой руу хандах хүсэлт тавигдах эсвэл санах ойд бүртгэгдсэн оролт гаралтын төхөөрөмжид хандахад, Физик хаяг нь хаягийн шугамын хэлхээнд хоёртын тооллын цифр хэлбэртэй байна. Өгөгдлийн санах ой дахь байрлалыг заасан хаяг болох логик хаягт хөрвүүлэлт хийсний үр дүнд физик хаягт шилжинэ. CPU-гийн үүсгэсэн хаяг нь санах ойн төхөөрөмжид хандах логик хаяг, санах ойн регистрт ганц л удаа ачаалагдах санах ойн жинхэнэ хаягийг физик хаяг гэдэг.

Физик хаягийг хэрэглэдэг бусад төхөөрөмж: Санах ойн шууд хандалттай компьютерын системүүд эх хавтан дээрээ нэмэлт төхөөрөмжүүд суурилуулах боломжтой болсон ба харин төв процессор хаягийг нь санах ойд хаягладаг тул эдгээр төхөөрөмжүүд физик хаяг ойлгох чадвартай байх хэрэгтэй болдог байна.

Виртуал хаяг[засварлах | кодоор засварлах]

Хэрэглэгчийн процесс өөрийн байрлалаас үл хамааран гаргах хаягийг логик хаяг ( виртуал хаяг ) гэдэг.

Виртуал хаягийн хүрээнд үйлдлийн системийн програм нь хэрэглэгдэж байгаа эсвэл тус тусдаа ажиллана гэдгийг зохицуулахдаа хаягийн зайг ашигладаг. Энэ нь үйлдлийн системээс өгсөн дүрмийн дагуу ажиллаж, өгөгдлийг хадгалах боломжоор хангадаг үргэлжилсэн хаягийн талбар юм. Хаягийн зай нь виртуал хаягийн хүрээг үйлдлийн системд ашиглах үйл явцыг боломжтой болгодог.

Виртуал хаягийн зай (VAS) эсвэл хаягийн зай нь виртуал хаягийн хүрээг үйлдлийн системд ашиглах үйл явцыг боломжтой болгодог. Хаягийн зайд виртуал хаягийн хүрээ нь тэгээс эхлэх ба үйлдлийн системийн архитектурын зөвшөөрсөн хамгийн өндөр хаяг хүртэл сунгаж болно. Энэ нь OS хувилбарууд болох 32-бит 4 байт эсвэл 64-битийн 8 байт байж болно.

Програм хангамжийн өгөгдлийг хадгалах болон авахын тулд өгөгдөл нэг бүрийн хаяг тус тусдаа байрлаж байх ёстой эс бөгөөс програм мэдээлэлээ олж удирдах боломжгүй болно. Боломжит хаягийн тоо нь үндсэн хаягийн бүтцэд хамаарах бөгөөд эдгээр нь ихэвчлэн компьютерийн ямар архитектур ашиглаж байгаагаар хязгаарлагдана.

Виртуал хаяг болон физик хаягийн холбоо[засварлах | кодоор засварлах]

Virtual address space and physical address space relationship

Төв процессордох физик хаягийн үүрэг

Нэмэлт хийсвэр санах байгууламж (англиар: Virtual memory) бүхий компьютерт хийсвэр хаягаас (англиар: Virtual address) жинхэнэ хаягийг ялгахын тулд физик хаяг гэсэн нэр томьёог хэрэглэдэг.

Хөрвүүлэлтийн хугацаа, ачаалах хугацаа ба хаяглалтын аргууд нь логик болон физик хаягуудтай адил зохион байгуулагдана. Харин програмын биелэлтийн хугацаан дахь хаяглалт логик болон физик хаягуудад ялгаатай. Энэ тохиолдолд логик хаягыг виртуал хаягт хамааруулж үзнэ. Програмын бий болгодог бүх логик хаягуудыг логик хаягын хэмжээ гэнэ, эдгээр логик хаягуудтай тохирч байх бүх физик хаягуудыг физик хаягийн хэмжээ гэнэ. Иймээс програм биелэлтийн хугацаанд болох хаяглалт өөр өөр байдаг.
Ерөнхийдөө компьютерт санах ойн удирдах байгууламж нь (англиар: Memory management unit) санах ойн хийсвэр болон физик хаягуудыг хөрвүүлдэг. Санах ойн удирдах байгууламж хөрвүүлэлтээ хийхээс өмнө санах ойн хаягийг хийсвэр хаяг заах ба хөрвүүлэлт хийсний дараа бодит хаяг заана.

MS-DOS үйлдлийн системийн INTEL 80x86 процессорт хэрэглэсэн жишээ Physical address

Үндсэн регистр нь дахин байршуулах регистр болох ба утга нь санах ойруу илгээх хэрэглэгчийн процессоор үүсгэгдсэн хаяг бүрээр нэмэгдэнэ. Жишээлбэл, хэрэв үндсэн регистр 14000 байхад динамикаар 0-р хаягийг 14000-д дахин байрлуулвал 346-р хаяг 14346 болж дүрслэгдэнэ. MS-DOS үйлдлийн систем Intel 80x86 процессорыг дөрвөн дахин байрлуулах регистр ашиглан ачааллах болон ажиллуулах процесс хийдэг. Хэрэглэгчийн програмд жинхэнэ физик хаяг мэдэгдэхгүй байх боловч програм 346 хаягын заагчийг бий болгоод санах ойд хадгалан хөрвүүлэлт хийгээд бусад хаягуудтай адилхан байгаа эсэхийг харьцуулдаг. Зөвхөн санах ойн хаягт ашиглагдаж байгаа үед үндсэн регистрт дахин байршуулна. Санах ойг дүрслэхдээ техник хангамж логик хаягийг физик хаягт хөрвүүлдэг. Ерөнхийдөө бол логик хаягын хэмжээ 0-с максимум байхад физик хаягийн хэмжээ R+0 -с R+максимум байна. Энд R нь үндсэн регистрийн утга байна. Хэрэглэгч зөвхөн логик хаягийг үүсгэх ба процесс ажиллаж 0-с максимум хаягт байршуулна. Хэрэглэгчийн програм логик хаягуудыг л хэрэглэх ба эдгээр хаягууд нь хэрэглэгдэхээсээ өмнө физик санах ойн физик хаягийг дүрслэнэ. Логик хаягын гол зарчим нь санах ойг зохицуулж байгаа физик хаягуудыг тодорхойлох юм.

Хаягийн зайг тусгаарлагч[засварлах | кодоор засварлах]

Хаягийн зайг тусгаарлагч ASIDs (англиар: address-space identifiers) гэдэг нь процесс бүрийг давтагдашгүй ялган тодорхойлдог бөгөөд процессийн хаягийн зайн хамгаалалтаар хангаж өгдөг. Зарим TLB нь өөртөө address-space identifiers ийг агуулж байдаг. TLB нь виртуал хуудасны дугаар олох үйлдлийг гүйцэтгэхдээ тухайн үед ажиллаж буй процессын ASIDs нь тэр виртуал хуудаст хамаарах ASIDs-тай тохирч буйг шалгаж байдаг. Хэрэв ASIDs тохирохгүй бол TLB miss (хуудасны дугаар TLB-д агуулагдаагүй) гэж үзнэ. ASIDs нь мөн TLB-г хэд хэдэн процессуудын мэдээллийг зэрэг хадгалах боломж олгодог. Хэрэв TLB нь хоорондоо ялгаатай ASIDs-г дэмжих чадваргүй тохиолдолд шинэ хуудсын хүснэгт сонгогдох бүрт (жишээ нь: контекст солих бүрт) дараагийн боловсруулах процесс буруу мэдээлэл хөрвүүлэлт ашиглахаас сэргийлэн TLB цэвэрлэгдэх ёстой. Үгүй бол TLB нь хуучин оролтын зөв виртуал хаяг агуулж байж болох ч өмнөх процессоос үлдсэн алдаатай эсвэл буруу хадгалж байж болно.

Эшлэл[засварлах | кодоор засварлах]

  • Operating System Concepts 7th edition