Noop scheduler
ಲಿನಕ್ಸ್ ಕರ್ನಲ್ಗೆ ಎನ್. ಓ. ಓ. ಪಿ. ವೇಳಾಪಟ್ಟಿ ಅತ್ಯಂತ ಸರಳವಾದ ಐ/ಒ ವೇಳಾಪಟ್ಟಿಯಾಗಿದೆ. ಈ ವೇಳಾಪಟ್ಟಿಯನ್ನು ಜೆನ್ಸ್ ಆಕ್ಸ್ಬೋ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ್ದಾರೆ. ಅವಲೋಕನ ಎನ್. ಓ. ಓ. ಪಿ. ವೇಳಾಪಟ್ಟಿ ಒಳಬರುವ ಎಲ್ಲಾ ಐ/ಒ ವಿನಂತಿಗಳನ್ನು ಸರಳವಾದ ಎಫ್. ಐ. ಎಫ್. ಓ. ಸಾಲಿನಲ್ಲಿ ಸೇರಿಸುತ್ತದೆ ಮತ್ತು ವಿನಂತಿಯ ವಿಲೀನವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಹೋಸ್ಟ್ ಅದರಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ವಲಯ ಸಂಖ್ಯೆಗಳ ಆಧಾರದ ಮೇಲೆ ವಿನಂತಿಗಳನ್ನು ಮರು-ಆದೇಶಿಸಲು ಪ್ರಯತ್ನಿಸಬಾರದು ಎಂದು ನಿರ್ಧರಿಸಿದಾಗ ಈ ವೇಳಾಪಟ್ಟಿ ಉಪಯುಕ್ತವಾಗಿದೆ. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ವಿನಂತಿಗಳನ್ನು ಉತ್ಪಾದಕವಾಗಿ ಮರು-ಆದೇಶಿಸುವುದು ಹೇಗೆ ಎಂಬುದರ ಬಗ್ಗೆ ಹೋಸ್ಟ್ಗೆ ತಿಳಿದಿಲ್ಲ ಎಂದು ವೇಳಾಪಟ್ಟಿ ಮಾಡುವವರು ಊಹಿಸುತ್ತಾರೆ. ಈ ಪರಿಸ್ಥಿತಿಯು ಅಪೇಕ್ಷಣೀಯವಾಗಿರುವ (ಸಾಮಾನ್ಯವಾಗಿ) ಮೂರು ಮೂಲಭೂತ ಸನ್ನಿವೇಶಗಳಿವೆಃ I/O ವೇಳಾಪಟ್ಟಿಯನ್ನು I/O ಸ್ಟ್ಯಾಕ್ನ ಕೆಳಗಿನ ಪದರದಲ್ಲಿ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. ವೇಳಾಪಟ್ಟಿಯನ್ನು ನಿಭಾಯಿಸಬಹುದಾದ ಕೆಳ ಪದರಗಳ ಉದಾಹರಣೆಗಳಲ್ಲಿ ಬ್ಲಾಕ್ ಸಾಧನಗಳು, ಬುದ್ಧಿವಂತ ಆರ್. ಎ. ಐ. ಡಿ ನಿಯಂತ್ರಕಗಳು, ಜಾಲಬಂಧ ಲಗತ್ತಿಸಲಾದ ಸಂಗ್ರಹಣೆ ಅಥವಾ ಸ್ವಿಚ್ ಮಾಡಲಾದ ಶೇಖರಣಾ ಪ್ರದೇಶ ಜಾಲದ ಮೂಲಕ ಪ್ರವೇಶಿಸಬಹುದಾದ ಶೇಖರಣಾ ಉಪವ್ಯವಸ್ಥೆಯಂತಹ ಬಾಹ್ಯವಾಗಿ ಲಗತ್ತಿಸಲಾದ ನಿಯಂತ್ರಕಗಳು ಸೇರಿವೆ. ಐ/ಒ ವಿನಂತಿಗಳನ್ನು ಕೆಳಮಟ್ಟದಲ್ಲಿ ಸಂಭಾವ್ಯವಾಗಿ ಮರು ನಿಗದಿಪಡಿಸಲಾಗಿರುವುದರಿಂದ, ಆತಿಥೇಯ ಮಟ್ಟದಲ್ಲಿ ಐಓಪಿಗಳನ್ನು ಅನುಕ್ರಮಗೊಳಿಸುವುದರಿಂದ ಕಾರ್ಯಾಚರಣೆಗಳ ಮೇಲೆ ಆತಿಥೇಯ ಸಿಪಿಯು ಸಮಯವನ್ನು ಬಳಸುತ್ತದೆ, ಅದು ಕೆಳಮಟ್ಟದಲ್ಲಿ ರದ್ದುಗೊಳ್ಳುತ್ತದೆ, ಯಾವುದೇ ಉತ್ಪಾದಕ ಕಾರಣವಿಲ್ಲದೆ ವಿಳಂಬವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ/ಥ್ರೋಪುಟ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಏಕೆಂದರೆ ವಲಯದ ಸ್ಥಾನದ ನಿಖರವಾದ ವಿವರಗಳನ್ನು ಆತಿಥೇಯ ವ್ಯವಸ್ಥೆಯಿಂದ ಮರೆಮಾಡಲಾಗಿದೆ. ಒಂದು ಉದಾಹರಣೆಯೆಂದರೆ ಸ್ವತಃ ಯಾವುದೇ ವೇಳಾಪಟ್ಟಿಯನ್ನು ನಿರ್ವಹಿಸದ ಆರ್. ಎ. ಐ. ಡಿ ನಿಯಂತ್ರಕ. ಹೋಸ್ಟ್ ವಿನಂತಿಗಳನ್ನು ಮರು-ಆದೇಶಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದ್ದರೂ ಮತ್ತು ಆರ್. ಎ. ಐ. ಡಿ ನಿಯಂತ್ರಕವು ಹೊಂದಿಲ್ಲದಿದ್ದರೂ, ಹೋಸ್ಟ್ ವ್ಯವಸ್ಥೆಯು ಹುಡುಕಾಟದ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ವಿನಂತಿಗಳನ್ನು ನಿಖರವಾಗಿ ಮರು-ಆದೇಶಿಸುವ ಗೋಚರತೆಯನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ಹೋಸ್ಟ್ಗೆ ಒಂದು ಅನುಕ್ರಮವು ಇನ್ನೊಂದಕ್ಕಿಂತ ಉತ್ತಮವಾಗಿದೆಯೇ ಎಂದು ನಿರ್ಣಯಿಸಲು ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲದ ಕಾರಣ, ಅದು ಸಕ್ರಿಯ ಕ್ಯೂ ಅನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿ ಪುನರ್ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ ಮತ್ತು ಆದ್ದರಿಂದ, ಅಂತಹ ವಿವರಗಳ ಬಗ್ಗೆ (ಸೈದ್ಧಾಂತಿಕವಾಗಿ) ಹೆಚ್ಚು ತಿಳಿದಿರುವ ಸಾಧನಕ್ಕೆ ಅದನ್ನು ರವಾನಿಸಬೇಕು. ಏಕೆಂದರೆ ರೀಡ್/ರೈಟ್ ಹೆಡ್ ಚಲನೆಯು ರೀಆರ್ಡರಿಂಗ್ ಓವರ್ಹೆಡ್ ಅನ್ನು ಸಮರ್ಥಿಸುವಷ್ಟು ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ. ಫ್ಲಾಶ್ ಡ್ರೈವ್ಗಳು ಅಥವಾ ಸಾಲಿಡ್-ಸ್ಟೇಟ್ ಡ್ರೈವ್ಗಳು (ಎಸ್ಎಸ್ಡಿಗಳು) ನಂತಹ ಆವರ್ತಕವಲ್ಲದ ಮಾಧ್ಯಮಗಳಲ್ಲಿ ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಕಂಡುಬರುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಮೇಲಿನ ಸನ್ನಿವೇಶಗಳಿಗೆ ಎನ್. ಓ. ಓ. ಪಿ ಆದ್ಯತೆಯ ಐ/ಒ ವೇಳಾಪಟ್ಟಿ ಆಗಿರಬೇಕಾಗಿಲ್ಲ. ಕಾರ್ಯಕ್ಷಮತೆಯ ಹೊಂದಾಣಿಕೆಗೆ ವಿಶಿಷ್ಟವಾದ, ಎಲ್ಲಾ ಮಾರ್ಗದರ್ಶನವು ಗಮನಿಸಿದ ಕೆಲಸದ ಹೊರೆ ಮಾದರಿಗಳನ್ನು ಆಧರಿಸಿರುತ್ತದೆ (ಹೆಬ್ಬೆರಳಿನ ಸರಳ ನಿಯಮಗಳನ್ನು ರಚಿಸುವ ಒಬ್ಬರ ಸಾಮರ್ಥ್ಯವನ್ನು ದುರ್ಬಲಗೊಳಿಸುತ್ತದೆ). ಇತರ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಂದ ಲಭ್ಯವಿರುವ ಐ/ಒ ಬ್ಯಾಂಡ್ವಿಡ್ತ್ಗೆ ವಿವಾದವಿದ್ದರೆ, ಇತರ ವೇಳಾಪಟ್ಟಿದಾರರು ಅತ್ಯಂತ ಮುಖ್ಯವೆಂದು ಪರಿಗಣಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಆ ಬ್ಯಾಂಡ್ವಿಡ್ತ್ ಅನ್ನು ಹೆಚ್ಚು ಬುದ್ಧಿವಂತಿಕೆಯಿಂದ ಕೆತ್ತಿಸುವ ಮೂಲಕ ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಉತ್ಪಾದಿಸುವ ಸಾಧ್ಯತೆಯಿದೆ. ಉದಾಹರಣೆಗೆ, ಎಲ್. ಡಿ. ಎ. ಪಿ. ಡೈರೆಕ್ಟರಿ ಸರ್ವರ್ ಅನ್ನು ಚಲಾಯಿಸುವುದರಿಂದ ಗಡುವಿನ ಓದುವ ಆದ್ಯತೆ ಮತ್ತು ಲೇಟೆನ್ಸಿ ಗ್ಯಾರಂಟಿಗಳಿಂದ ಪ್ರಯೋಜನ ಪಡೆಯಬಹುದು. ಅದೇ ಸಮಯದಲ್ಲಿ, ಅನೇಕ ವಿಭಿನ್ನ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಡೆಸುವ ಡೆಸ್ಕ್ಟಾಪ್ ಸಿಸ್ಟಮ್ ಹೊಂದಿರುವ ಬಳಕೆದಾರರು ಸಿಎಫ್ಕ್ಯೂನ ಟ್ಯೂನ್ಬಲ್ಸ್ ಅಥವಾ ನಿರ್ದಿಷ್ಟ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಬ್ಯಾಂಡ್ವಿಡ್ತ್ಗೆ ಆದ್ಯತೆ ನೀಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಇತರರಿಗಿಂತ (ಅಯಾನೀಸ್) ಹೊಂದಲು ಬಯಸಬಹುದು. ಅಪ್ಲಿಕೇಶನ್ಗಳ ನಡುವೆ ಯಾವುದೇ ವಿವಾದವಿಲ್ಲದಿದ್ದರೆ, ಮೇಲೆ ಪಟ್ಟಿ ಮಾಡಲಾದ ಮೂರು ಸನ್ನಿವೇಶಗಳಿಗೆ ವೇಳಾಪಟ್ಟಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದರಿಂದ ಯಾವುದೇ ಪ್ರಯೋಜನಗಳಿಲ್ಲ. ಇದರ ಪರಿಣಾಮವಾಗಿ ಒಂದು ಕೆಲಸದ ಹೊರೆ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಮತ್ತೊಂದು ಕೆಲಸದ ಹೊರೆಗೆ ಹೆಚ್ಚುವರಿ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುವ ರೀತಿಯಲ್ಲಿ ವಂಚಿಸಲು ಸಾಧ್ಯವಾಗದಿರುವುದು ಇದಕ್ಕೆ ಕಾರಣವಾಗಿದೆ. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಐ/ಒ ಮಾರ್ಗಗಳು ಸ್ಯಾಚುರೇಟೆಡ್ ಆಗಿರದಿದ್ದರೆ ಮತ್ತು ಎಲ್ಲಾ ಕೆಲಸದ ಹೊರೆಗಳ ವಿನಂತಿಗಳು ಡ್ರೈವ್ ಹೆಡ್ಗಳ (ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಗೆ ತಿಳಿದಿರುವ) ಅಸಮಂಜಸವಾದ ಸ್ಥಳಾಂತರಕ್ಕೆ ಕಾರಣವಾಗದಿದ್ದರೆ, ಒಂದು ಕೆಲಸದ ಹೊರೆಗೆ ಆದ್ಯತೆ ನೀಡುವ ಪ್ರಯೋಜನವು ಬಯಸಿದ ಪ್ರಯೋಜನಗಳನ್ನು ಒದಗಿಸುವ ಬದಲು ಐ/ಒ ವೇಳಾಪಟ್ಟಿಯನ್ನು ಕಳೆಯುವ ಸಿಪಿಯು ಸಮಯವನ್ನು ವ್ಯರ್ಥ ಮಾಡುವ ಪರಿಸ್ಥಿತಿಯನ್ನು ಸೃಷ್ಟಿಸಬಹುದು. ಲಿನಕ್ಸ್ ಕರ್ನಲ್ ಸಹ sysfs ನಿಯತಾಂಕವನ್ನು ಶೆಡ್ಯೂಲರ್-ಅಜ್ಞೇಯ ಸಂರಚನೆಯಾಗಿ ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ, ಇದು ಬ್ಲಾಕ್ ಪದರದ ವಿನಂತಿಗಳನ್ನು ವಿಲೀನಗೊಳಿಸುವ ತರ್ಕವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಅಥವಾ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ವಿಲೀನ ಪ್ರಯತ್ನಗಳಿಗೆ ಮಾತ್ರ ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ. ಇದು ಎನ್. ಓ. ಓ. ಪಿ. ವೇಳಾಪಟ್ಟಿಯ ಅಗತ್ಯವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ, ಏಕೆಂದರೆ ಹೆಚ್ಚಿನ ಐ/ಒ ವೇಳಾಪಟ್ಟಿದಾರರ ಓವರ್ಹೆಡ್ ಅವುಗಳನ್ನು ವಿಲೀನಗೊಳಿಸುವ ಸಲುವಾಗಿ ವಿನಂತಿಯ ಸಾಲಿನಲ್ಲಿ ಪಕ್ಕದ ವಲಯಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುವ ಅವರ ಪ್ರಯತ್ನಗಳೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದೆ. ಆದಾಗ್ಯೂ, ಹೆಚ್ಚಿನ ಐ/ಒ ಕೆಲಸದ ಹೊರೆಗಳು ಎಸ್ಎಸ್ಡಿಗಳಂತಹ ವೇಗದ ಕಡಿಮೆ-ಲೇಟೆನ್ಸಿ ಸಂಗ್ರಹಣೆಯಲ್ಲೂ ಸಹ ಒಂದು ನಿರ್ದಿಷ್ಟ ಮಟ್ಟದ ವಿನಂತಿಗಳ ವಿಲೀನದಿಂದ ಪ್ರಯೋಜನ ಪಡೆಯುತ್ತವೆ. ಪೂರ್ವಭಾವಿ ವೇಳಾಪಟ್ಟಿ ವೇಳಾಪಟ್ಟಿ CFQ ವೇಳಾಪಟ್ಟಿ ಉಲ್ಲೇಖಗಳು ಸಹ ನೋಡಿ ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಡಿಸ್ಕ್ I/O ಕೆಲಸದ ಹೊರೆ ಅವಲಂಬಿತ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೌಲ್ಯಮಾಪನವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮತ್ತು ಉತ್ತಮಗೊಳಿಸುವುದು ಲಿನಕ್ಸ್ 2.6 I/O ವೇಳಾಪಟ್ಟಿಗಳು ಕರ್ನಲ್ ಆಧಾರಿತ ವರ್ಚುವಲ್ ಯಂತ್ರಕ್ಕಾಗಿ ಅತ್ಯುತ್ತಮ ಅಭ್ಯಾಸಗಳು (I/O ವೇಳಾಪಟ್ಟಿಗಳ ಬಗ್ಗೆ ಸಾಮಾನ್ಯ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ) ಲಿನಕ್ಸ್ I/O ವೇಳಾಪಟ್ಟಿಗಳು ಮಾನದಂಡದ ನಿರೀಕ್ಷೆಯ ವರ್ಸಸ್ CFQ ವರ್ಸಸ್ ಗಡುವು ವರ್ಸಸ್ ನೋಪ್ ಡಿಸ್ಕ್ ವೇಳಾಪಟ್ಟಿ ಕ್ರಮಾವಳಿಗಳು