Software fault tolerance
ಸಾಫ್ಟ್ವೇರ್ ದೋಷ ಸಹಿಷ್ಣುತೆಯು ಸಿಸ್ಟಮ್ ಅಥವಾ ಹಾರ್ಡ್ವೇರ್ ದೋಷಗಳ ಉಪಸ್ಥಿತಿಯ ಹೊರತಾಗಿಯೂ ತನ್ನ ಸಾಮಾನ್ಯ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಮುಂದುವರಿಸುವ ಕಂಪ್ಯೂಟರ್ ಸಾಫ್ಟ್ವೇರ್ನ ಸಾಮರ್ಥ್ಯವಾಗಿದೆ. ದೋಷ-ಸಹಿಷ್ಣು ಸಾಫ್ಟ್ವೇರ್ ವೈಫಲ್ಯಗಳ ಹೊರತಾಗಿಯೂ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದೆ. ಪರಿಚಯ ಬದಲಾವಣೆಯೊಂದೇ ಸ್ಥಿರವಾದ ವಸ್ತು. ಇದು ಬಹುತೇಕ ಯಾವುದೇ ವಿದ್ಯಮಾನಕ್ಕಿಂತ ಸಾಫ್ಟ್ವೇರ್ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಖಂಡಿತವಾಗಿಯೂ ಹೆಚ್ಚು ನಿಜವಾಗಿದೆ, ಎಲ್ಲಾ ಸಾಫ್ಟ್ವೇರ್ಗಳು ಒಂದೇ ರೀತಿಯಲ್ಲಿ ಬದಲಾಗುವುದಿಲ್ಲ ಆದ್ದರಿಂದ ಸ್ವೀಕಾರಾರ್ಹ ಪ್ರೋಗ್ರಾಂ ಸ್ಥಿತಿಯನ್ನು ರಚಿಸಲು ವೇರಿಯೇಬಲ್ ಮೌಲ್ಯಗಳನ್ನು ಮಾರ್ಪಡಿಸುವ ಮೂಲಕ ಕಾರ್ಯಗತಗೊಳಿಸುವ ದೋಷಗಳನ್ನು ನಿವಾರಿಸಲು ಸಾಫ್ಟ್ವೇರ್ ದೋಷ ಸಹಿಷ್ಣುತೆ ವಿಧಾನಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಸಾಫ್ಟ್ವೇರ್ ದೋಷವನ್ನು ನಿಯಂತ್ರಿಸುವ ಅಗತ್ಯವು ಇಂದು ಸಾಫ್ಟ್ವೇರ್ ಉದ್ಯಮಗಳು ಎದುರಿಸುತ್ತಿರುವ ಅತ್ಯಂತ ಹೆಚ್ಚುತ್ತಿರುವ ಸವಾಲುಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಸಾಫ್ಟ್ವೇರ್ ಅಭಿವೃದ್ಧಿಯ ಆರಂಭಿಕ ಹಂತದಲ್ಲಿ ದೋಷ ಸಹಿಷ್ಣುತೆಯು ಪ್ರಮುಖ ಪರಿಗಣನೆಯಾಗಿರಬೇಕು. ಸಾಫ್ಟ್ವೇರ್ ದೋಷ ಸಹಿಷ್ಣುತೆಗೆ ವಿವಿಧ ಕಾರ್ಯವಿಧಾನಗಳಿವೆ, ಅವುಗಳಲ್ಲಿಃ ರಿಕವರಿ ಬ್ಲಾಕ್ಗಳು ಎನ್-ಆವೃತ್ತಿ ಸಾಫ್ಟ್ವೇರ್ ಸ್ವಯಂ-ಪರಿಶೀಲನಾ ಸಾಫ್ಟ್ವೇರ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ವೈಫಲ್ಯ ಕಂಪ್ಯೂಟರ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕೀಬೋರ್ಡ್, ಮೌಸ್, ಸ್ಕ್ರೀನ್, ಡಿಸ್ಕ್ ಡ್ರೈವ್, ನೆಟ್ವರ್ಕ್ ಮತ್ತು ಪ್ರಿಂಟರ್ನಂತಹ ಹಂಚಿಕೆಯ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಅಪ್ಲಿಕೇಶನ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಇಂಟರ್ಫೇಸ್ (ಎಪಿಐ) ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕರೆ ಮಾಡುತ್ತವೆ. ಇವು ಎರಡು ರೀತಿಯಲ್ಲಿ ವಿಫಲವಾಗಬಹುದು. ನಿರ್ಬಂಧಿತ ಕರೆಗಳು ದೋಷಗಳು ನಿರ್ಬಂಧಿತ ಕರೆಗಳು ಒಂದು ನಿರ್ಬಂಧಿತ ಕರೆಯು ಫಲಿತಾಂಶಗಳು ಲಭ್ಯವಾಗುವವರೆಗೆ ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ನಿಲ್ಲಿಸುವ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ನ ಸೇವೆಗಳ ವಿನಂತಿಯಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ದೂರಸ್ಥ ಸರ್ವರ್ನಿಂದ ಪ್ರತಿಕ್ರಿಯೆ ಲಭ್ಯವಾಗುವವರೆಗೆ ಟಿಸಿಪಿ ಕರೆ ನಿರ್ಬಂಧಿಸುತ್ತದೆ. ನೀವು ವೆಬ್ ಬ್ರೌಸರ್ನೊಂದಿಗೆ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಿದಾಗಲೆಲ್ಲಾ ಇದು ಸಂಭವಿಸುತ್ತದೆ. ತೀವ್ರವಾದ ಲೆಕ್ಕಾಚಾರಗಳು ನಿರ್ಬಂಧಿತ API ಕರೆಯಂತೆಯೇ ದೀರ್ಘಾವಧಿಯ ವಿಳಂಬವನ್ನು ಉಂಟುಮಾಡುತ್ತವೆ. ತಡೆಗಟ್ಟುವಿಕೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಎರಡು ವಿಧಾನಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಥ್ರೆಡ್ಸ್ ಟೈಮರ್ಸ್ ಥ್ರೆಡಿಂಗ್ ನಿರ್ಬಂಧಿಸಬಹುದಾದ ಪ್ರತಿ API ಕರೆಗೆ ಪ್ರತ್ಯೇಕ ಅನುಕ್ರಮ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಸಂಪನ್ಮೂಲಕ್ಕಾಗಿ ಕಾಯುತ್ತಿರುವಾಗ ಒಟ್ಟಾರೆ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಗಿತಗೊಳ್ಳುವುದನ್ನು ಇದು ತಡೆಯಬಹುದು. ಇತರ ಚಟುವಟಿಕೆಗಳು ನಡೆಯುವಾಗ ಎಪಿಐ ಕರೆಯ ಸ್ಥಿತಿಯ ಬಗ್ಗೆ ಯಾವುದೇ ಮಾಹಿತಿಯು ಕಳೆದುಹೋಗುವುದಿಲ್ಲ ಎಂಬುದು ಇದರ ಪ್ರಯೋಜನವಾಗಿದೆ. ಥ್ರೆಡ್ ಭಾಷೆಗಳು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಒಳಗೊಂಡಿವೆ. ನಿರ್ಬಂಧಿತ ಕರೆಗೆ ಅಡ್ಡಿಪಡಿಸಲು ಟೈಮರ್ಗಳು ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತವೆ. ನಿಯತಕಾಲಿಕ ಟೈಮರ್ ಪ್ರೋಗ್ರಾಮರ್ಗೆ ಥ್ರೆಡಿಂಗ್ ಅನ್ನು ಅನುಕರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಅಡಚಣೆಗಳು ಸಾಮಾನ್ಯವಾಗಿ ನಿರ್ಬಂಧಿತ API ಕರೆ ಅಥವಾ ತೀವ್ರವಾದ ಲೆಕ್ಕಾಚಾರದ ಸ್ಥಿತಿಗೆ ಸಂಬಂಧಿಸಿದ ಯಾವುದೇ ಮಾಹಿತಿಯನ್ನು ನಾಶಪಡಿಸುತ್ತವೆ, ಆದ್ದರಿಂದ ಪ್ರೋಗ್ರಾಮರ್ ಈ ಮಾಹಿತಿಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಟ್ರ್ಯಾಕ್ ಮಾಡಬೇಕು. ಥ್ರೆಡ್ ಮಾಡದ ಭಾಷೆಗಳು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಒಳಗೊಂಡಿವೆ. ಭ್ರಷ್ಟ ಸ್ಥಿತಿಯು ಟೈಮರ್ಗಳೊಂದಿಗೆ ಸಂಭವಿಸುತ್ತದೆ. ಈ ಕೆಳಗಿನವುಗಳಿಂದ ಇದನ್ನು ತಪ್ಪಿಸಲಾಗುತ್ತದೆ. ಟ್ರ್ಯಾಕ್ ಸಾಫ್ಟ್ವೇರ್ ಸ್ಟೇಟ್ ಸೆಮಾಫೋರ್ ಬ್ಲಾಕಿಂಗ್ ಫಾಲ್ಟ್ಗಳು ಪಾಸಿಕ್ಸ್ ಕಂಪ್ಲೈಂಟ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿನ ಸಿಗ್ನಲ್ಗಳಿಂದ ಪ್ರೇರೇಪಿಸಲ್ಪಡುತ್ತವೆ, ಮತ್ತು ಈ ಸಿಗ್ನಲ್ಗಳು ಎಪಿಐ ಕರೆಗಳಿಂದ, ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ನಿಂದ ಮತ್ತು ಇತರ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಂದ ಹುಟ್ಟಿಕೊಳ್ಳುತ್ತವೆ. ಹ್ಯಾಂಡ್ಲರ್ ಕೋಡ್ ಹೊಂದಿರದ ಯಾವುದೇ ಸಿಗ್ನಲ್ ದೋಷವಾಗುತ್ತದೆ ಮತ್ತು ಇದು ಅಕಾಲಿಕ ಅಪ್ಲಿಕೇಶನ್ ಮುಕ್ತಾಯಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ. ಹ್ಯಾಂಡ್ಲರ್ ಎನ್ನುವುದು ಅಪ್ಲಿಕೇಶನ್ ಸಿಗ್ನಲ್ ಅನ್ನು ಸ್ವೀಕರಿಸಿದಾಗ ಬೇಡಿಕೆಯ ಮೇರೆಗೆ ನಿರ್ವಹಿಸಲಾಗುವ ಕಾರ್ಯವಾಗಿದೆ. ಇದನ್ನು ಎಕ್ಸೆಪ್ಶನ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಮುಕ್ತಾಯ ಸಂಕೇತವು ನಿಭಾಯಿಸಲಾಗದ ಏಕೈಕ ಸಂಕೇತವಾಗಿದೆ. ಎಲ್ಲಾ ಇತರ ಸಂಕೇತಗಳನ್ನು ಹ್ಯಾಂಡ್ಲರ್ ಕಾರ್ಯಕ್ಕೆ ನಿರ್ದೇಶಿಸಬಹುದು. ಹ್ಯಾಂಡ್ಲರ್ ಕಾರ್ಯಗಳು ಎರಡು ವಿಶಾಲ ವಿಧಗಳಲ್ಲಿ ಬರುತ್ತವೆ. ಪ್ರಾರಂಭಿಸಿದ ಇನ್-ಲೈನ್ ಇನಿಶಿಯಲೈಸ್ಡ್ ಹ್ಯಾಂಡ್ಲರ್ ಕಾರ್ಯಗಳನ್ನು ಸಾಫ್ಟ್ವೇರ್ ಪ್ರಾರಂಭವಾದಾಗ ಪ್ರತಿ ಸಿಗ್ನಲ್ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗುತ್ತದೆ. ಇದು ಅನುಗುಣವಾದ ಸಿಗ್ನಲ್ ಬಂದಾಗ ಹ್ಯಾಂಡ್ಲರ್ ಕಾರ್ಯವನ್ನು ಪ್ರಾರಂಭಿಸಲು ಕಾರಣವಾಗುತ್ತದೆ. ಥ್ರೆಡಿಂಗ್ ಅನ್ನು ಅನುಕರಿಸಲು ಈ ತಂತ್ರವನ್ನು ಟೈಮರ್ಗಳೊಂದಿಗೆ ಬಳಸಬಹುದು. ಇನ್-ಲೈನ್ ಹ್ಯಾಂಡ್ಲರ್ ಕಾರ್ಯಗಳು ವಿಶೇಷ ವಾಕ್ಯರಚನೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಕರೆಯೊಂದಿಗೆ ಸಂಬಂಧ ಹೊಂದಿವೆ. ಸಿ + + ಮತ್ತು ಜಾವಾದೊಂದಿಗೆ ಬಳಸಲಾಗುವ ಕೆಳಗಿನವುಗಳು ಅತ್ಯಂತ ಪರಿಚಿತವಾಗಿವೆ. ಪ್ರಯತ್ನಿಸಿ {API _ ಕಾಲ್ ();} ಕ್ಯಾಚ್ {ಸಿಗ್ನಲ್ _ ಹ್ಯಾಂಡ್ಲರ್ _ ಕೋಡ್;} ಹಾರ್ಡ್ವೇರ್ ವೈಫಲ್ಯ ಸಾಫ್ಟ್ವೇರ್ಗೆ ಹಾರ್ಡ್ವೇರ್ ದೋಷ ಸಹಿಷ್ಣುತೆಯು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಬಯಸುತ್ತದೆ. ಹಾರ್ಡ್ವೇರ್ ಅನ್ನು ಬದಲಾಯಿಸಬೇಕಾದ ಸಂದರ್ಭದಲ್ಲಿ ಬ್ಯಾಕ್ಅಪ್ ರಿಡಂಡೆನ್ಸಿ ಬ್ಯಾಕ್ಅಪ್ ಮಾಹಿತಿಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಇದನ್ನು ಎರಡು ವಿಧಾನಗಳಲ್ಲಿ ಒಂದರಲ್ಲಿ ಮಾಡಬಹುದು. ನಿಯಮಿತ ವೇಳಾಪಟ್ಟಿಯಲ್ಲಿ ಸಾಫ್ಟ್ವೇರ್ ಮ್ಯಾನ್ಯುಯಲ್ ಬ್ಯಾಕ್ಅಪ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿಗದಿತ ಬ್ಯಾಕ್ಅಪ್ ಮಾಹಿತಿ ಮರುಸ್ಥಾಪನೆ ಬ್ಯಾಕ್ಅಪ್ಗೆ ಬದಲಿ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಬ್ಯಾಕ್ಅಪ್ ಮಾಹಿತಿಯನ್ನು ಲಭ್ಯವಾಗುವಂತೆ ಮಾಡಲು ಮಾಹಿತಿ-ಮರುಸ್ಥಾಪನೆ ಕಾರ್ಯತಂತ್ರದ ಅಗತ್ಯವಿದೆ. ಮರುಸ್ಥಾಪನೆ ಪ್ರಕ್ರಿಯೆಯು ಸಾಮಾನ್ಯವಾಗಿ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಮರುಸ್ಥಾಪನೆ ಪ್ರಕ್ರಿಯೆಯು ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ ಮಾಹಿತಿಯು ಲಭ್ಯವಿರುವುದಿಲ್ಲ. ರಿಡಂಡನ್ಸಿ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಕಂಪ್ಯೂಟರ್ ಕಂಪ್ಯೂಟಿಂಗ್ ಸಾಧನದಲ್ಲಿ ಮಾಹಿತಿಯನ್ನು ಪುನರಾವರ್ತಿಸುವುದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ, ಇದರಿಂದಾಗಿ ಚೇತರಿಕೆಯ ವಿಳಂಬವು ಸಂಕ್ಷಿಪ್ತವಾಗಿರುತ್ತದೆ. ಲೈವ್ ಸಿಸ್ಟಮ್ಗೆ ನಿರಂತರ ಬ್ಯಾಕ್ಅಪ್ ಬಳಸಿ ಇದನ್ನು ಸಾಧಿಸಬಹುದು, ಅದು ಅಗತ್ಯವಿರುವವರೆಗೆ ನಿಷ್ಕ್ರಿಯವಾಗಿರುತ್ತದೆ (ಸಿಂಕ್ರೊನೈಸ್ಡ್ ಬ್ಯಾಕ್ಅಪ್). ಮಾಹಿತಿಯನ್ನು ಪುನರಾವರ್ತಿಸುವ ಮೂಲಕ ಇದನ್ನು ಸಾಧಿಸಬಹುದು, ಏಕೆಂದರೆ ಇದನ್ನು ಅನೇಕ ಒಂದೇ ರೀತಿಯ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ರಚಿಸಲಾಗಿದೆ, ಇದು ಚೇತರಿಕೆಯ ವಿಳಂಬವನ್ನು ನಿವಾರಿಸುತ್ತದೆ. ಅಂತರ್ನಿರ್ಮಿತ ಸ್ವಯಂ-ಪರೀಕ್ಷಾ ಪರೀಕ್ಷಾ ಉಪಕರಣಗಳು ದೋಷ-ಸಹಿಷ್ಣು ವಿನ್ಯಾಸ ದೋಷ-ಸಹಿಷ್ಣು ವ್ಯವಸ್ಥೆ ದೋಷ-ಸಹಿಷ್ಣು ಕಂಪ್ಯೂಟರ್ ವ್ಯವಸ್ಥೆ ರೋಗನಿರೋಧಕತೆ-ಅರಿವು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಲಾಜಿಕ್ ಅಂತರ್ನಿರ್ಮಿತ ಸ್ವಯಂ-ಪರೀಕ್ಷೆ ಎನ್-ಆವೃತ್ತಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸುರಕ್ಷತೆ ಎಂಜಿನಿಯರಿಂಗ್ ಓಪನ್ ಎಸ್ಎಎಫ್-ಸೇವೆ ಲಭ್ಯತೆ ಎಪಿಐ ಉಲ್ಲೇಖಗಳು ಕಾರ್ನೆಗೀ ಮೆಲಾನ್ ವಿಶ್ವವಿದ್ಯಾಲಯದಲ್ಲಿ ಕ್ರಿಸ್ ಇನಾಸಿಯೊ ಬರೆದ ಸಾಫ್ಟ್ವೇರ್ ದೋಷ ಸಹಿಷ್ಣುತೆ (1998) ಸಾಫ್ಟ್ವೇರ್ ಗುಣಮಟ್ಟದ ಸಾಫ್ಟ್ವೇರ್ ವಾಸ್ತುಶಿಲ್ಪ ದೋಷ ಸಹಿಷ್ಣುತೆ