מבנה הנתונים לסמפורים ב-XINU

  • מצב התהליך PRWAIT:

תהליך המחכה לסמפור יימצא במצב PRWAIT.

  • תור לכל סמפור:

לכל סמפור נשמר תור FIFO של התהליכים המחכים לו.

  • מצב הסמפור:

קיימת טבלת סמפורים בה נשמר מצבו של כל סמפור (מונה הסמפור, מיקום התור שלו).

מציין הסמפור הינו האינדקס בטבלה זו.

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



מבנה רשומה בטבלת הסמפורים, הגדרות הקשורות למימוש סמפורים

struct sentry {                    /* semaphore table entry          */

       char   sstate;              /* the state SFREE or SUSED */

       short  semcnt;              /* count for this semaphore */

       short  sqhead;              /* q index of head of list        */

       short  sqtail;              /* q index of tail of list        */

};

extern struct sentry semaph[];

extern int    nextsem;

#define       isbadsem(s)          (s<0 || s>=NSEM)

תגיות המסמך:

מאת: באסל

תודה

הסברתם את זה, כמו שאר הנושאים, באופן הכי ברור שיש.
שיתוף:
| עוד