לדלג לתוכן

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")