תרגול 3 Flashcards
כמה סינגלים אפשר לשלוח
ומה מספרם
1 עד 31
IPC
ראשי תיבות
Inter process communication
איזה סוגי ipc יש בלינוקס
Signals
Pipes and fifo
Sockets
האם לסיגנלים יש נגיעה גם בחומרה?
לא
זהו מנגנון תוכנתי בלבד!
מי מתקשר באמצעות סיגנלים
בין תהליך לתהליך
בין מה לתהליך
מה קורה אם תהליך קיבל סיגנל בעת שהוא היה במצב המתנה
Task interruptable
הסיגנל יגרום למערכת ההפעלה להוציא אותו ממצב ההמתנה כדי להריץ את שגרת הטיפול בסיגנל במצב משתמש
יוחזר תוצאת כשלון
EINTR
להמתנה
מה שמור ב
Signal_struct
ואיפה הוא שמור
הוא שמור בpcb
בכל כניסה יהיה שמור מה לעשות עם הסיגנל
SIG_DFL שגרת הטיפול הדיפולטית
SIG_IGN התעלם מהסיגנל
או קישור לפונקציה שהמשתמש הגדיר לטיפול בסיגנל
איך תהליך שולח סיגנל לתהליך אחר
פקודה
Kill(pid, num)
כמו בbash
מה ההבדל באופן גילוי הסיגנל
אם מערכת ההפעלה שלחה
או או תהליך אחר שלח
אפ מערכת ההפעלה שלחה
היא תסמן את הסיגנל כדלוק
ואז כשנרצה לחזור לתהליך במצב משתמש הסינגל יתגלה
אם תהליך שלח להתליך זה אסינכרוני ונגלה את זה רק בפעם הבאה שנחזור למצב משתמש
איפה הfdt נשמר
ובאיזה שדה
בpcb
files->fd
מה יש בכל כניסה בfdt
בפירוט מה מכיל האובייקט הפנימי
יש את הfile object
שהוא מכיל גם את הseek pointer שהוא המיקום בקובץ
נגיד בחוטים הוא משותף והם קוראים וכותבים מאותה נקודה
מה הקשר בין הfd
לfdt
זה המיקום הפנוי הראשון שנמצא בfdt והוקצה לקובץ שפתחנו עם open
מה close
עושה ל
Fdt
Fo
היא מעדכנת את המצביע המתאים בטבלה לnull
ומעדכנת את המונה בfo לאחד פחות
לא מוחקת כי יכול להיות שיש עוד תהליכים או חוטים משתמשים בו
מה זה
Ssize_t
כמו size_t
רק שיכול גם לקבל ערך שגיאה
-1
קריאת מערכת read
מה עושה ומה מקבלת
מקבלת
fd
Buffer to write to
Number of bytes to read
ברקע מעדכן את הseek pointer בfdt
Write
מה מקבלת
ומה עושה ברקע
מקבלת
Fd
Buffer pointing what to write
Number of bytes to write
גם משנה את הseek pointer
מה קורה בfdt בין חוטים
הוא משותף
הpcb של כל אחד מהם מצביע לאותו fdt