כללי
- במערכת
ההפעלה מספר תהליכים יכולים לרוץ במקביל.
במהלך הריצה, בכל רגע, הרבה
תהליכים ממתינים למשאב – CPU, קלט/פלט, הודעות
ועוד. מכיוון שמספר תהליכים עלולים
להמתין לאותו משאב, יש לנהל תורי המתנות למשאבים
השונים.
- מנגנון
התורים והרשימות של XINU מיועד
להחזיק תהליכים. איבר בתור הוא למעשה תהליך
הנמצא באותו תור.
- מספר
התהליכים מוגבל וכן גם מספר התורים,
ולכן ניתן לממש את
כל התורים על ידי מערך סטטי אחד,
אשר ניתן לו השם q[].
- תהליך
יכול להיות בתור אחד לכל היותר בכל רגע נתון, וכן להופיע פעם אחת בלבד באותו
תור.
- לכל
תהליך במערכת ההפעלה יש מספר המציין אותו,
pid. בנושא התורים, מספר זה מציין אינדקס במערך q, המתאים
לאותו תהליך. כלומר, אם התו ה-i מופיע
בתור כלשהו, אז נאמר שהתהליך עם המציין ה-i שייך לאותו תור.
- מספר
התהליכים המקסימאלי במערכת ההפעלה
הינו NPROC.
- לכל
תור יהיה תא head ותא tail בנוסף לתהליכים שלו.
האינדקסים של tail ושל head יהיו
בהכרח גדולים מ-(NPROC-1).
- מספר
התאים במערך q מוגדר על ידי NQENT, שערכו
NPROC + NSEM + MSEM + 4, וזאת על מנת לספק NPROC אינדקסים עבור התהליכים,
ועוד head, tail עבור NSEM תורים עבור סמפורים במערכת,
ועוד head, tail עבור תור ה-ready ותור ה-sleep.
|
|
תודה
הסברתם את זה, כמו שאר הנושאים, באופן הכי ברור שיש.