במערכת הפעלה, היינו צריכים לתת את הקלט למעבד, והמעבד מבצע את ההוראות ולבסוף נותן את הפלט. אבל הייתה בעיה עם הגישה הזו. במצב רגיל אנחנו צריכים להתמודד עם תהליכים רבים, ואנחנו יודעים שהזמן שלוקח בפעולת ה-I/O גדול מאוד בהשוואה לזמן שלוקח ה-CPU לביצוע ההוראות. אז, בגישה הישנה, תהליך אחד ייתן את הקלט בעזרת התקן קלט, ובמהלך זמן זה, ה-CPU נמצא במצב סרק.
גיל הסלמאן חאן חאן
ואז ה-CPU מבצע את ההוראה, והפלט ניתן שוב לאיזשהו התקן פלט, ובזמן זה, ה-CPU נמצא גם הוא במצב סרק. לאחר הצגת הפלט, התהליך הבא מתחיל בביצועו. אז, רוב הזמן, המעבד אינו פעיל, וזה המצב הגרוע ביותר שיכול להיות לנו במערכות הפעלה. כאן, הרעיון של Spooling נכנס לתמונה.
מה זה ספולינג
Spooling הוא תהליך שבו נתונים מוחזקים באופן זמני לשימוש וביצוע על ידי מכשיר, תוכנית או מערכת. נתונים נשלחים ומאוחסנים בזיכרון או באחסון נדיף אחר עד שהתוכנית או המחשב מבקשים אותם לביצוע.
SPOOL הוא ראשי תיבות של פעולות היקפיות בו זמנית באינטרנט . בדרך כלל, הסליל נשמר בזיכרון הפיזי של המחשב, במאגרים או בפסיקות הספציפיות להתקן הקלט/פלט. הסליל מעובד בסדר עולה, עובד על בסיס אלגוריתם FIFO (כניסה ראשונה, יוצאת ראשונה).
Spooling מתייחס להכנסת נתונים של עבודות I/O שונות במאגר. מאגר זה הוא אזור מיוחד בזיכרון או בדיסק הקשיח הנגיש להתקני קלט/פלט. מערכת הפעלה מבצעת את הפעילויות הבאות הקשורות לסביבה המבוזרת:
- מטפל בסלילת נתונים של מכשירי קלט/פלט מכיוון שלמכשירים יש שיעורי גישה שונים לנתונים.
- שומר על מאגר ה-spooling, המספק תחנת המתנה שבה הנתונים יכולים לנוח בזמן שהמכשיר האיטי יותר מדביק את הקצב.
- שומר על חישוב מקביל בגלל תהליך ה-spooling שכן מחשב יכול לבצע קלט/פלט בסדר מקביל. זה הופך להיות אפשרי למחשב לקרוא נתונים מקלטת, לכתוב נתונים לדיסק ולכתוב למדפסת טייפ בזמן שהוא מבצע את משימת המחשוב שלו.
כיצד פועל ספול במערכת ההפעלה
במערכת הפעלה, ספול פועל בשלבים הבאים, כגון:
- Spooling כרוך ביצירת מאגר שנקרא SPOOL, המשמש לעיכוב עבודות ונתונים עד שהמכשיר שבו נוצר ה-SPOOL מוכן לעשות שימוש ולבצע את העבודה או לפעול על הנתונים.
- כאשר התקן מהיר יותר שולח נתונים להתקן איטי יותר כדי לבצע פעולה כלשהי, הוא משתמש בכל זיכרון משני המחובר כמאגר SPOOL. נתונים אלה נשמרים ב-SPOOL עד שהמכשיר האיטי יותר מוכן לפעול על נתונים אלה. כאשר המכשיר האיטי יותר מוכן, הנתונים ב-SPOOL נטענים לזיכרון הראשי עבור הפעולות הנדרשות.
- Spooling מחשיב את כל הזיכרון המשני כמאגר עצום שיכול לאחסן עבודות ונתונים רבים עבור פעולות רבות. היתרון של Spooling הוא בכך שהוא יכול ליצור תור של עבודות שמתבצעות בסדר FIFO כדי לבצע את המשימות אחת אחת.
- מכשיר יכול להתחבר להתקני קלט רבים, מה שעשוי לדרוש פעולה מסוימת בנתונים שלהם. לכן, כל התקני הקלט הללו עשויים להכניס את הנתונים שלהם לזיכרון המשני (SPOOL), אשר לאחר מכן ניתן להפעיל אחד אחד על ידי המכשיר. זה יוודא שהמעבד אינו פעיל בכל עת. אז, אנחנו יכולים לומר ש-Spooling הוא שילוב של חציצה ותורים.
- לאחר שה-CPU יוצר פלט מסוים, פלט זה נשמר לראשונה בזיכרון הראשי. פלט זה מועבר לזיכרון המשני מהזיכרון הראשי, ומשם, הפלט נשלח להתקני הפלט המתאימים.
דוגמה ל-Spooling
הדוגמה הגדולה ביותר ל-Spooling היא הַדפָּסָה . המסמכים שיש להדפיס מאוחסנים ב-SPOOL ואז מתווספים לתור להדפסה. במהלך זמן זה, תהליכים רבים יכולים לבצע את פעולותיהם ולהשתמש במעבד מבלי להמתין בזמן שהמדפסת מבצעת את תהליך ההדפסה על המסמכים אחד אחד.
ניתן גם להוסיף תכונות רבות לתהליך ההדפסה ב-Spooling, כמו הגדרת סדרי עדיפויות או הודעה כאשר תהליך ההדפסה הושלם או בחירת סוגי הנייר השונים להדפסה לפי בחירת המשתמש.
היתרונות של Spooling
להלן היתרונות הבאים של spooling במערכת הפעלה, כגון:
שם עיר בארה"ב
- אין חשיבות למספר התקני הקלט/פלט או הפעולות. התקני קלט/פלט רבים יכולים לעבוד יחד בו-זמנית ללא כל הפרעה או הפרעה זה לזה.
- ב-spooling, אין אינטראקציה בין התקני I/O וה-CPU. זה אומר שאין צורך במעבד לחכות לביצוע פעולות ה-I/O. לפעולות כאלה לוקח הרבה זמן לסיים את הביצוע, כך שה-CPU לא יחכה לסיום.
- מעבד במצב סרק אינו נחשב יעיל במיוחד. רוב הפרוטוקולים נוצרים כדי לנצל את המעבד ביעילות במינימום זמן. ב-spooling, ה-CPU עסוק רוב הזמן ועובר למצב סרק רק כשהתור נגמר. אז כל המשימות מתווספות לתור, וה-CPU יסיים את כל המשימות האלה ואז יעבור למצב סרק.
- זה מאפשר ליישומים לפעול במהירות המעבד תוך הפעלת התקני ה-I/O במהירויות המלאות שלהם.
חסרונות של Spooling
במערכת הפעלה, ל-spooling יש את החסרונות הבאים, כגון:
- Spooling דורש כמות גדולה של אחסון בהתאם למספר הבקשות שנעשו על ידי הקלט ומספר התקני הקלט המחוברים.
- מכיוון שה-SPOOL נוצר באחסון המשני, התקני קלט רבים הפועלים בו-זמנית עלולים לתפוס מקום רב באחסון המשני ובכך להגדיל את תעבורת הדיסק. זה מביא לכך שהדיסק נהיה איטי יותר ויותר ככל שהתעבורה גדלה יותר ויותר.
- Spooling משמש להעתקה וביצוע נתונים ממכשיר איטי יותר למכשיר מהיר יותר. המכשיר האיטי יותר יוצר SPOOL כדי לאחסן את הנתונים להפעלה בתור, והמעבד עובד עליו. תהליך זה כשלעצמו הופך את Spooling לחסר תועלת לשימוש בסביבות בזמן אמת בהן אנו זקוקים לתוצאות בזמן אמת מה-CPU. הסיבה לכך היא שהתקן הקלט איטי יותר וכך מייצר את הנתונים שלו בקצב איטי יותר בעוד שה-CPU יכול לפעול מהר יותר, ולכן הוא עובר לתהליך הבא בתור. זו הסיבה שהתוצאה הסופית או הפלט מופקים במועד מאוחר יותר במקום בזמן אמת.
ההבדל בין Spooling ל-buffering
Spooling ו-buffing הן שתי הדרכים שבהן תתי-מערכות I/O משפרות את הביצועים והיעילות של המחשב על ידי שימוש בשטח אחסון בזיכרון הראשי או בדיסק.
ההבדל הבסיסי בין Spooling ל-Buffering הוא ש-Spooling חופף את ה-I/O של עבודה אחת עם ביצוע עבודה אחרת. לשם השוואה, החציצה חופפת את ה-I/O של עבודה אחת עם ביצוע אותה עבודה. להלן כמה הבדלים נוספים בין Spooling ו-buffering, כגון:
תנאים | עֲקִיפָה | חציצה |
---|---|---|
הַגדָרָה | Spooling, ראשי תיבות של Simultaneous Peripheral Operation Online (SPOOL), מכניס נתונים לאזור עבודה זמני לגישה ועיבוד על ידי תוכנית או משאב אחר. | חציצה היא פעולה של אחסון נתונים באופן זמני במאגר. זה עוזר בהתאמת מהירות זרם הנתונים בין השולח למקבל. |
דרישת משאבים | Spooling דורש פחות ניהול משאבים שכן משאבים שונים מנהלים את התהליך עבור עבודות ספציפיות. | חציצה דורשת יותר ניהול משאבים שכן אותו משאב מנהל את התהליך של אותה עבודה מחולקת. |
יישום פנימי | Spooling חופף את הקלט והפלט של עבודה אחת עם חישוב של עבודה אחרת. | חציצה חופפת את הקלט והפלט של עבודה אחת עם החישוב של אותה עבודה. |
יָעִיל | ספולינג יעיל יותר מחציצה. | חציצה פחות יעילה מהסלילה. |
מעבד | ספול יכול גם לעבד נתונים באתרים מרוחקים. ה-spooler צריך להודיע רק כאשר תהליך מסתיים באתר המרוחק כדי לסלול את התהליך הבא למכשיר הצד המרוחק. | מאגר אינו תומך בעיבוד מרחוק. |
גודל על זיכרון | זה מחשיב את הדיסק כסליל או חיץ ענק. | מאגר הוא אזור מוגבל בזיכרון הראשי. |