כמה שאלות דחופות!

gilpaz123

New member
כמה שאלות דחופות!

שלום אשמח לקבל מידע לגבי : 1.מה ההבדל בין multi tasking ו- multi therding ? 2.מה ההבדל/קשר בין semaphor ובין critical section ? 3.מתי צריך להגדיר הורס וירטואלי,ומה קורה אם לא עושים זאת? האם זה נכון ש constructor הוא virtual by defualt? תודה
 

e s a l

New member
כמה תשובות

1 ב multitasking הכוונה היא לרוב ל multi processing, עבודה עם כמה תהליכים שרצים בו זמנית. אל תהליך הוא עצמאי עם מרחב זיכרון משל עצמו. multi threading זה עבודה עם מספר תהליכים (או חוטים כמו שלרוב מתייחסים אליהם בהקשר זה) שצרים תחת process אחד. כל החוטים במקרה הזה משתפים מרחב זיכרון אחד. 2. critical section זהו קטע קוד שכמה חוטים יכולים לגשת אליהם בו זמנית. מצב זה יכול להיות מסוכן מאוד אם הקוד כולל שינוי כלשהו של הזכירון של ה process. אחד הדרכים להתמודד עם זה הוא באמצעות semaphores שמאפשרים נעילה של האזור המסוכן ומאפשרים רק לאחד (או X כלשהו) מהחוטים להיכנס בו זמנית לאזור המסוכן. 3. האמת אני לא בטוח בעניין הזה, אבל נשמע בהחלט הגיוני ש contructor יהיה וירטואלי. הרי אם בונים אובייקט חדש נרצה לקרוא לקונסטרקטור של הדיאנמי ולא של הסטטי. הורס צריך להגדיר אם יש צורך בשחרור משאבים לאחר שהאובייקט "מת" או ביצוע פעולה אחרת (למשל - אם יש איזשהו משתנה גלובלי שמחזיק את מספר האובייקטים שנוצרו מסוג מסויים. כשאובייקט מסוג זה מפסיק להתקיים, נרצה להוריד את ערכו של המשתנה באחד).
 
למעלה