לדלג לתוכן

5.9 - מערכת הקבצים proc - תרגול

תרגול - מערכת הקבצים proc

תרגיל 1 - קריאת סטטוס הprocess

כתבו תוכנית בC שקוראת את /proc/self/status ומדפיסה את הפרטים הבאים על הprocess:
- שם הprocess (Name)
- מזהה הprocess (Pid)
- מזהה process האב (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 - מידע על process לפי PID

כתבו תוכנית בC שמקבלת PID כארגומנט בשורת הפקודה ומדפיסה מידע על אותו process:
- קוראת את /proc/[pid]/status ומדפיסה את שם הprocess, מצב הprocess (State), וגודל הזיכרון
- קוראת את /proc/[pid]/cmdline ומדפיסה את שורת הפקודה שהprocess הורץ איתה

שימו לב: ב-cmdline, הארגומנטים מופרדים בתו null (\0), לא ברווח. תצטרכו להחליף את ה-null-ים ברווחים כדי להדפיס את השורה בצורה קריאה.

תרגיל 5 - מידע על המעבד

כתבו תוכנית בC שקוראת את /proc/cpuinfo ומדפיסה:
- את שם הדגם של המעבד (model name)
- את מספר הליבות (ספרו כמה פעמים מופיע השדה "processor")