5.9 מערכת הקבצים proc תרגול
תרגול - מערכת הקבצים proc¶
תרגיל 1 - קריאת סטטוס התהליך¶
כתבו תוכנית בC שקוראת את /proc/self/status ומדפיסה את הפרטים הבאים על התהליך:
- שם התהליך (Name)
- מזהה התהליך (Pid)
- מזהה תהליך האב (PPid)
- גודל הזיכרון הוירטואלי (VmSize)
תרגיל 2 - אזורי זיכרון עם הרשאת הרצה¶
כתבו תוכנית בC שקוראת את /proc/self/maps ומדפיסה רק את אזורי הזיכרון שיש להם הרשאת הרצה (x).
אלה הם אזורי הקוד - כאן נמצאות הוראות המכונה שהמעבד מריץ.
רמז: בכל שורה ב-maps, עמודת ההרשאות מופיעה אחרי טווח הכתובות. חפשו את התו 'x' בעמודה הזו.
תרגיל 3 - רשימת מתארי קבצים פתוחים¶
כתבו תוכנית בC שעושה את הדברים הבאים:
1. פותחת 3 קבצים שונים (למשל קבצים מ-/etc/)
2. קוראת את הספריה /proc/self/fd/
3. לכל fd, משתמשת ב-readlink כדי לגלות לאן הוא מצביע
4. מדפיסה רשימה של כל הfd-ים הפתוחים והיעד שלהם
5. סוגרת את הקבצים
תרגיל 4 - מידע על תהליך לפי PID¶
כתבו תוכנית בC שמקבלת PID כארגומנט בשורת הפקודה ומדפיסה מידע על אותו תהליך:
- קוראת את /proc/[pid]/status ומדפיסה את שם התהליך, מצב התהליך (State), וגודל הזיכרון
- קוראת את /proc/[pid]/cmdline ומדפיסה את שורת הפקודה שהתהליך הורץ איתה
שימו לב: ב-cmdline, הארגומנטים מופרדים בתו null (
\0), לא ברווח. תצטרכו להחליף את ה-null-ים ברווחים כדי להדפיס את השורה בצורה קריאה.
תרגיל 5 - מידע על המעבד¶
כתבו תוכנית בC שקוראת את /proc/cpuinfo ומדפיסה:
- את שם הדגם של המעבד (model name)
- את מספר הליבות (ספרו כמה פעמים מופיע השדה "processor")