Тасалдал ба Trap
Аливаа компьютерт программ хэвийн ажиллаж байх үед CPU-г түр зогсооход хүргэж болзошгүй үйл явдал тохиолдож болно. Иймэрхүү үйл явдлуудыг тасалдал гэж нэрлэдэг. Тасалдал нь програм хангамж эсвэл техник хангамжийн алдаанаас үүдэлтэй байж болно. Техник хангамжийн тасалдлыг (энгийн) тасалдал гэж нэрлэдэг бол програм хангамжийн тасалдлыг Exceptions эсвэл Traps гэж нэрлэдэг. Exception нь автоматаар үүсгэгдсэн програм хангамжийн тасалдал бөгөөд Trap нь программистын эхлүүлсэн программ хангамжаар дуудагдсан тасалдал юм. Тасалдал (програм хангамж эсвэл техник хангамж) үүссэний дараа хяналт нь тасалдлаас үүссэн нөхцөл байдлыг зохицуулж чадах ISR (Тасалдлын үйлчилгээний журам) хэмээх тусгай дэд програм руу шилждэг.
Тасалдал гэж юу вэ?
Тасалдал гэдэг нэр томъёо нь ихэвчлэн техник хангамжийн тасалдалд зориулагдсан байдаг. Эдгээр нь гадны техник хангамжийн үйл явдлуудаас үүдэлтэй програмын хяналтын тасалдал юм. Энд CPU-ийн гаднах гадаад гэсэн үг. Техник хангамжийн тасалдал нь ихэвчлэн таймер чип, захын төхөөрөмж (гар, хулгана гэх мэт), оролт гаралтын портууд (цуваа, зэрэгцээ гэх мэт), дискний хөтчүүд, CMOS цаг, өргөтгөлийн картууд (дууны карт, видео) гэх мэт олон янзын эх сурвалжаас ирдэг. карт гэх мэт). Энэ нь гүйцэтгэх програмтай холбоотой зарим үйл явдлын улмаас техник хангамжийн тасалдал бараг хэзээ ч тохиолддоггүй гэсэн үг юм. Жишээлбэл, хэрэглэгчийн гар дээрх товчлуур дарах, эсвэл дотоод техник хангамжийн таймерын хугацаа хэтэрсэн зэрэг нь ийм төрлийн тасалдлыг нэмэгдүүлж, тодорхой төхөөрөмжид анхаарал хандуулах шаардлагатай байгааг CPU-д мэдэгддэг. Ийм нөхцөлд CPU нь хийж байсан бүх зүйлээ зогсооно (жишээ нь одоогийн програмыг түр зогсооно), төхөөрөмжид шаардлагатай үйлчилгээг үзүүлж, ердийн програм руу буцна. Техник хангамжийн тасалдал үүсч, CPU нь ISR-ийг эхлүүлэх үед бусад техник хангамжийн тасалдалууд идэвхгүй болно (жишээ нь.g. 80×86 машинд). Хэрэв танд ISR ажиллаж байх үед бусад техник хангамжийн тасалдал шаардлагатай бол тасалдлын тугийг арилгах замаар үүнийг хийх хэрэгтэй (sti заавартай). 80×86 машинд тасалдлын тугийг арилгах нь зөвхөн техник хангамжийн тасалдалд нөлөөлнө.
Хавх гэж юу вэ?
Trap нь программист санаачилсан удирдлагын шилжүүлэг гэж тодорхойлж болно. Trap гэсэн нэр томьёо нь Exception (энэ нь автоматаар үүсдэг програм хангамжийн тасалдал) гэсэн үгтэй орлуулж хэрэглэгддэг. Гэхдээ зарим нь занга бол зүгээр л тусгай дэд программын дуудлага гэж маргаж магадгүй юм. Тиймээс тэдгээр нь програм хангамжаас үүдэлтэй тасалдлын ангилалд багтдаг. Жишээлбэл, 80×86 машинд программист int зааврыг ашиглан урхи эхлүүлэх боломжтой. Хавх нь үргэлж болзолгүй байдаг тул хяналт нь үргэлж хавхтай холбоотой дэд програм руу шилждэг. Хавхыг зааж өгөхийн тулд тодорхой зааврыг ашигладаг тул хавхтай харьцах ердийн зааварчилгааг хялбархан тодорхойлох боломжтой.
Тасалт болон Trap хоёрын ялгаа нь юу вэ?
Тасалдал нь техник хангамжийн тасалдал, харин занга нь программ хангамжаас үүдэлтэй тасалдал юм. Техник хангамжийн тасалдал нь ихэвчлэн бусад техник хангамжийн тасалдлыг идэвхгүй болгодог боловч энэ нь хавханд үнэн биш юм. Хэрэв та занга үйлчлэх хүртэл техник хангамжийн тасалдлыг зөвшөөрөхгүй байх шаардлагатай бол тасалдлын тугийг тодорхой арилгах хэрэгтэй. Мөн ихэвчлэн компьютер дээрх тасалдлын туг нь урхинаас ялгаатай (техник хангамж) тасалдалд нөлөөлдөг. Энэ тугийг цэвэрлэснээр урхинаас сэргийлж чадахгүй гэсэн үг. Хавхнаас ялгаатай нь тасалдал нь CPU-ийн өмнөх төлөвийг хадгалах ёстой.