סיבוב תזמון רובין בתכנות ג



מאמר זה יספק לכם ידע מפורט ומקיף כיצד ליישם את תזמון רובין עגול בתכנות ג.

במאמר זה נלמד על אלגוריתם התזמון הנקרא אלגוריתם תזמון סבב, מהו סבב רובין? איך כותבים תוכנית? וכו 'בואו נתחיל.

מהי תזמון רובין העגול?

Round Robin Scheduling הוא אלגוריתם תזמון המשמש את המערכת לתזמון השימוש במעבד. זהו אלגוריתם מקדים. קיימת פרוסת זמן קבועה המשויכת לכל בקשה הנקראת קוונטית. מתזמן התפקיד שומר את התקדמות העבודה שמבוצעת כעת ועובר למשימה הבאה שנמצאת בתור כאשר תהליך מסוים מבוצע במשך קוונטום זמן נתון.





סיבוב תזמון רובין

שום תהליך לא יחזיק את המעבד לאורך זמן. המיתוג נקרא מתג הקשר. זה כנראה אחד מאלגוריתמי התזמון הטובים ביותר. היעילות של אלגוריתם זה תלויה בערך הקוונטי.



ליהוק ג'אווה כפול ל- int

תזמון רובורין עגול

  • ראשית יש לנו תור שבו התהליכים מסודרים לפי סדר כל הקודם זוכה.
  • ערך קוונטי מוקצה לביצוע כל תהליך.
  • התהליך הראשון מבוצע עד סוף הערך הקוונטי. לאחר מכן נוצרת הפרעה והמדינה נשמרת.
  • לאחר מכן המעבד עובר לתהליך הבא ואותה שיטה מתבצעת.
  • אותם שלבים חוזרים על עצמם עד לסיום כל התהליכים.

שקול את הקוד לדוגמא

# כלול int main () {int i, limit, total = 0, x, counter = 0, time_quantum int wait_time = 0, turnaround_time = 0, הגעה זמן [10], burst_time [10], temp [10] float average_wait_time, average_turnaround_time printf ('n הזן את מספר התהליכים: t') scanf ('% d', & limit) x = limit עבור (i = 0 i0) {temp [i] = temp [i] - time_quantum total = total + time_quantum} if (temp [i] == 0 && counter == 1) {x-- printf ('nProcess [% d] tt% dtt % dttt% d ', i + 1, זמן פרץ [i], סה'כ - זמן הגעה [i], סה'כ - זמן הגעה [i] - זמן פרץ [i]) זמן המתנה = זמן המתנה + סך - זמן הגעה [i] - זמן פרץ [i] זמן תפנית = זמן סיבוב + סה'כ - זמן הגעה [i] מונה = 0} אם (i == מגבלה - 1) {i = 0} אחרת אם (זמן הגעה [i + 1]<= total) { i++ } else { i = 0 } } average_wait_time = wait_time * 1.0 / limit average_turnaround_time = turnaround_time * 1.0 / limit printf('nnAverage Waiting Time:t%f', average_wait_time) printf('nAvg Turnaround Time:t%fn', average_turnaround_time) return 0 }

תְפוּקָה:

הֶסבֵּר:

בקוד הנ'ל אנו מבקשים מהמשתמש להזין את מספר התהליכים וזמן ההגעה וזמן הפיצוץ לכל תהליך. לאחר מכן אנו מחשבים את זמן ההמתנה ואת סבב הזמן באמצעות אלגוריתם הרובין.

החלק העיקרי כאן הוא חישוב התור סביב זמן וזמן ההמתנה. זמן ההסתובבות מחושב על ידי הוספת משך הזמן הכולל ולקחת את זמן ההגעה.

זמן ההמתנה מחושב על ידי הפחתת זמן ההגעה וזמן ההתפרצות מהסכום והוספתו t0 לזמן ההמתנה. כך מתרחש תזמון הרובין.



יתרונות:

  • תקורה נמוכה לקבלת החלטות.
  • בניגוד לאלגוריתמים אחרים, זה נותן עדיפות שווה לכל התהליכים.
  • לעתים רחוקות מתה רעב בתהליך זה.

חסרונות:

  • יעילות המערכת פוחתת אם הערך הקוונטי נמוך ככל שמתרחש החלפה תכופה.
  • המערכת עשויה להיענות אם הערך הקוונטי גבוה.

בכך אנו מגיעים לסוף מאמר זה.

אני מקווה שמצאת זאת אינפורמטיבי ומועיל, הישאר מעודכן להדרכות נוספות בנושאים דומים. אתה יכול גם לבדוק את תוכנית ההדרכה שלנו tתוכל לקבל ידע מעמיק ב- jQuery יחד עם היישומים השונים שלה לאימונים מקוונים חיים עם תמיכה 24/7 וגישה לכל החיים.יישם את הקוד שלעיל בעזרת מחרוזות ושינויים שונים. כעת, אנו מבינים היטב את כל מושגי המפתח הקשורים למצביע.

יש לך שאלה עבורנו? הזכר אותם במדור התגובות בבלוג זה ונחזור אליך.