לדלג לתוכן

תרגול מפת NT ומעבר לקרנל

בנו את תוכנית ה־event ועצרו במסלול SetEvent. שרטטו את רכיבי user mode שנראו במחסנית ואת גבול המעבר למערכת. סמנו כל שם פנימי כפרט של ה־build שנחקר.

השוו המתנה לאירוע מסומן עם timeout אפס להמתנה לאירוע שאינו מסומן עם timeout קצר. כתבו אילו תוצאות צפויות ואילו טענות על context switches עדיין אינכם יכולים להוכיח מהפלט.

כתבו הסבר לשתי טעויות: כל syscall מחליף thread, וקוד משתמש אינו יכול לרוץ במקביל על כמה ליבות. השתמשו בצירים נפרדים של מצב הרשאה וזהות thread.

סווגו את האחריות לבדיקת handle, למיפוי דף, להעברת בקשת דיסק ולבחירת thread מוכן. הימנעו מהנחה שכל הרכיבים רצים ברצף קבוע בכל API.