שימוש בחוצצים
מתאם ההתקן משתמש
בחוצצים כדי לשמור מידע העובר בין תהליכי המשתמש אל ההתקנים. כמו כן החוצצים יכולים לשמש להעברת מידע
מההתקנים אל תהליכים המשתמש.
- קלט - כאשר מגיע תו מהמקלדת מופעלת פסיקה, האחראית להעברת התו לחוצץ הקלט (חלק תחתון). getc מוציאה תו מחוצץ הקלט ומעבירה אותו לאפליקציה. אם אין תווים בחוצץ, getc גורמת לתהליך לחכות עד שיגיע תו (חלק עליון). החלק התחתון גם אחראי לשחרור תהליך
הממתין לקלט כשהקלט הגיע.
- פלט - החלק העליון (putc) נקרא
מהאפליקציה ומעביר תווים לחוצץ הפלט.
כאשר מתמלא
החוצץ, התהליך מתבקש לחכות עד
לפינוי מקום. החלק התחתון נקרא ע”י פסיקות (לא ב- PC) ושולח
תו פלט במידה שממתין תו בחוצץ.
החוצצים מאפשרים
להפריד בין שני חלקי ה- driver.
- מאפשרים לקלט להגיע לפני
שהאפליקציה מבקשת אותו. המתאם יכול לקבל נתונים, ולשים אותם בחוצצים, בהמתנה עד שתהליכי המשתמש ידרשו
אותם.
- מאפשרים לאפליקציה לבצע פלט לפני
שהחומרה מוכנה לכך ובלי לחכות לסיום הפלט ממש - פעולות
ה-I/O יכולות להתבצע במקביל לתהליכי
המשתמש, ולא לעכב אותם.
- מאפשרים שבירת בלוקים לתווים
בודדים: למשל בדיסקים: הקריאה היא בבלוקים של 512 בתים, אך האפליקציה מעוניינת בתווים בודדים בכל קריאה. כך נשמר שאר הבלוק לצורך קריאת התווים
הבאים.
תודה
הסברתם את זה, כמו שאר הנושאים, באופן הכי ברור שיש.