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