ማቋረጥ vs ወጥመድ
በማንኛውም ኮምፒዩተር በመደበኛው የፕሮግራም አፈፃፀም ወቅት ሲፒዩ ለጊዜው እንዲቆም የሚያደርጉ ክስተቶች ሊኖሩ ይችላሉ። እንደነዚህ ያሉት ክስተቶች ማቋረጥ ይባላሉ. መቆራረጥ በሶፍትዌር ወይም በሃርድዌር ስህተቶች ሊከሰት ይችላል። የሃርድዌር ማቋረጦች (በቀላሉ) ማቋረጥ ይባላሉ፣ የሶፍትዌር ማቋረጦች ግን Exceptions ወይም Traps ይባላሉ። ልዩ ነገር በራስ ሰር የመነጨ የሶፍትዌር ማቋረጥ ሲሆን ትራፕ ደግሞ በሶፍትዌር የተጠራ መቋረጥ በፕሮግራም አነሳሽነት ነው። አንዴ ማቋረጥ (ሶፍትዌር ወይም ሃርድዌር) ከተነሳ, መቆጣጠሪያው በማቋረጥ የሚነሱትን ሁኔታዎችን ወደሚያስተናግድ ISR (የማቋረጥ አገልግሎት መደበኛ) ወደ ሚባል ልዩ ንዑስ ክፍል ይተላለፋል.
ማቋረጥ ምንድን ነው?
ማቋረጥ የሚለው ቃል ብዙውን ጊዜ ለሃርድዌር መቆራረጦች የተያዘ ነው። በውጫዊ የሃርድዌር ክስተቶች ምክንያት የሚከሰቱ የፕሮግራም ቁጥጥር መቆራረጦች ናቸው. እዚህ, ውጫዊ ማለት ለሲፒዩ ውጫዊ ማለት ነው. የሃርድዌር መቆራረጥ ብዙውን ጊዜ ከተለያዩ ምንጮች ለምሳሌ የሰዓት ቆጣሪ ቺፕ፣ ተጓዳኝ መሳሪያዎች (ቁልፍ ሰሌዳዎች፣ አይጥ፣ ወዘተ)፣ I/O ወደቦች (ተከታታይ፣ ትይዩ፣ ወዘተ)፣ የዲስክ ድራይቮች፣ CMOS ሰዓት፣ የማስፋፊያ ካርዶች (የድምጽ ካርድ፣ ቪዲዮ ካርድ, ወዘተ). ይህ ማለት ከአስፈፃሚው ፕሮግራም ጋር በተያያዙ አንዳንድ ክስተቶች ምክንያት የሃርድዌር መቆራረጦች በጭራሽ አይከሰቱም ማለት ነው። ለምሳሌ በተጠቃሚው በቁልፍ ሰሌዳው ላይ እንደ ቁልፍ መጫን ያለ ክስተት ወይም የውስጥ ሃርድዌር የሰዓት ቆጣሪ ጊዜ ማውጣቱ ይህን አይነት መቆራረጥ ከፍ ሊያደርግ እና አንድ የተወሰነ መሳሪያ የተወሰነ ትኩረት እንደሚያስፈልገው ለሲፒዩ ያሳውቃል። በእንደዚህ አይነት ሁኔታ ሲፒዩ የሚሰራውን ሁሉ ያቆማል (ማለትም የአሁኑን ፕሮግራም ለአፍታ ያቆማል) መሳሪያው የሚፈልገውን አገልግሎት ይሰጣል እና ወደ መደበኛው ፕሮግራም ይመለሳል። የሃርድዌር መቆራረጥ ሲከሰት እና ሲፒዩ አይኤስአርን ሲጀምር፣ ሌሎች የሃርድዌር መቆራረጦች ይሰናከላሉ (ኢ.ሰ. በ 80 × 86 ማሽኖች). ISR በሚሰራበት ጊዜ ሌሎች የሃርድዌር መቆራረጦች እንዲከሰቱ ከፈለጉ፣ የማቋረጥ ባንዲራውን (ከስቲ መመሪያ ጋር) በማጽዳት በግልፅ ማድረግ ያስፈልግዎታል። በ80×86 ማሽኖች የማቋረጥ ባንዲራ ማጽዳት የሃርድዌር መቆራረጦችን ብቻ ነው የሚነካው።
ወጥመድ ምንድን ነው?
ወጥመድ እንደ መቆጣጠሪያ ማስተላለፍ ሊታወቅ ይችላል፣ ይህም በፕሮግራም አነሳሽነት ነው። ትራፕ የሚለው ቃል ልዩ ከሚለው ቃል ጋር በተለዋዋጭነት ጥቅም ላይ ይውላል (ይህም በራስ-ሰር የሚከሰት የሶፍትዌር መቋረጥ ነው)። ነገር ግን አንዳንዶች ወጥመድ በቀላሉ ልዩ ንዑስ ጥሪ ነው ብለው ይከራከሩ ይሆናል። ስለዚህ በሶፍትዌር የተጠሩት ማቋረጦች ምድብ ውስጥ ይገባሉ። ለምሳሌ፣ በ80×86 ማሽኖች ውስጥ፣ ፕሮግራመር ወጥመድን ለመጀመር የ int መመሪያን መጠቀም ይችላል። ወጥመድ ሁል ጊዜ ቅድመ ሁኔታ የሌለው ስለሆነ መቆጣጠሪያው ሁል ጊዜ ከወጥመዱ ጋር ወደተገናኘው ንዑስ ክፍል ይተላለፋል። ወጥመዱን ለመንከባከብ መደበኛውን የሚጠራው ትክክለኛው መመሪያ በቀላሉ ተለይቶ ይታወቃል ምክንያቱም ግልጽ መመሪያ ወጥመድን ለመለየት ጥቅም ላይ ይውላል።
በማቋረጥ እና ወጥመድ መካከል ያለው ልዩነት ምንድነው?
መቋረጦች የሃርድዌር መቆራረጦች ሲሆኑ ወጥመዶች ደግሞ በሶፍትዌር የተጠሩ ማቋረጦች ናቸው። የሃርድዌር ማቋረጦች መከሰቶች አብዛኛውን ጊዜ ሌሎች የሃርድዌር መቆራረጦችን ያሰናክላሉ፣ ነገር ግን ይህ ለወጥመዶች እውነት አይደለም። ወጥመድ እስከሚቀርብ ድረስ የሃርድዌር መቆራረጦችን መከልከል ከፈለጉ፣ የማቋረጥ ባንዲራውን በግልፅ ማጽዳት አለብዎት። እና ብዙውን ጊዜ በኮምፒዩተር ላይ ያለው የማቋረጥ ባንዲራ (ሃርድዌር) ከወጥመዶች በተቃራኒ ማቋረጥን ይነካል። ይህ ማለት ይህንን ባንዲራ ማጽዳት ወጥመዶችን አይከላከልም ማለት ነው. እንደ ወጥመዶች ሳይሆን፣ መቆራረጦች የቀድሞውን የሲፒዩ ሁኔታ መጠበቅ አለባቸው።