כתוב פונקציות להקצאה ושחרור של זכרון שמתבססות על הפונקציות malloc free. פונקצית הקצאה מקבלת גודל להקצות ומחזירה אזור זכרון מוקצה בגודל הנתון שמתחיל מכתובת זוגית בלבד. פונקצית השחרור משחררת את הזכרון שהוקצה על ידי פונקצית ההקצאה. כלומר תקבל פוינטר לכתובת זוגית ותשחרר את הזכרון.
תשובות
הוסף תשובה
|
לצפיה בתשובות
יולי 2018
הוסף תשובה ...
הרעיון הוא שצריך להקצות גודל זכרון n+1. הנקודה היא שאם נקצה באחד מגודל הרצוי, אז כתובת אחת בטוח תהיה זוגית. באותו סגנון אם יבקשו לכתוב פונקתיה שמחזירה כתובת שמתחלקת ב10, אז צריך להקצות 10+n.כך אנחנו יכולים להגיד בוודאות שבטווח הזה קיימת כתובת מתאימה. malloc מחזיר פוינטר לתחילת בלוק זכרון שהוקצה. מתחילים לבדוק כתובת ראשונה, אם מתחלקת ב10, עוצרים , אם לא ממשיכים לכתובת הבאה
מבחן קידוד: לכתוב מערכת messaging הכוללת ברוקר וendpoint handler
הברוקר אחראי לרישום האנדלרים לנושאים (many-to-many) וההאנדלרים אחראים להעביר את ההודעות ליעד (קובץ או stdout)
שתי הקומפוננטות צריכות להיות thread safe
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2018
הברוקר צריך להשתמש ב ConcurrentHashMap (הבוחן ישאל למה בסוף התרגול)
ההאנדלר צריך להשתמש ב BlockingQueue (סדר ההודעות צריך להשמר) וצריך להשתמש ב CompleteableFuture לשליפה מהתור
צריך גם להשתמש ב AtomicLong לשמןר מונים כמה הודעות נשלחו בהצלחה וכמה נכשלו
הגעתי דרך פרסום באינטרנט, היה שיח אישי של ספר לי על עצמך ופרוייקט, ואלה שאלות שכן זכרתי מהראיון.
שאלות מתוך הראיון
1. יש מערך סופי שכל תא בו הוא בית (8 ביטים) . כתוב פונקציה המכריעה האם הביטים 0 5 או 7 דלוקים באחד מהמקומות במערך .
פתרון: נשמור את המספר 10100001 את הערך העשרוני של המספר הזה במשתנה. עבור כל איבר במערך נעשה & עם המשתנה עזר .
2. יש מרחב זיכרון שאני נותן ליוזר של 1MB שכל בלוק בגודל מסוים 16KB למשל . יש לך רגיסטר של 32 ביטים. נניח מישהו עושים מאלוק ואני נותן לו כתובת פנויה החל מתחילת הבלוק. ויש לך פריי שמוחק את הבלוק המסוים הזה .
תשובות
הוסף תשובה
|
לצפיה בתשובות
דצמבר 2018
תשובה עבור 2:
צריך לממש פונקציות בסיבוכיות 1.. המחיקה מהזכרון פשוטה כי מקבלים ID של תמונה למחוק
ההכנסה לזכרון בעייתית כי צריך לדעת מה המקום הבא שפנוי, לכן שומרים ברגיסטר את המקום הראשון שפנוי (מצביע לכתובת ב-RAM) ובעצם כל המקומות הפנויים מחוברים בינהים ברשימה מקושת (בסוף של השורה יושב מצביע לכתובת הבאה שפנויה)
...
היו שני מראיינים, היו די נחמדים, התחילו להסביר לי על החברה ומה הם עושים ואז בקשו ממני לסבר על עצמי ואז בקשו ממני להסביר על פרוייקט שעשיתי,ושאלו כל מיני שאלות הבנה ב C ו C++ שהייתי עונה להם מיד או מסביר להם על הלוח ובסוף בקשו ממני לממש פונקציה ובסוף שאלו כמה חידות ושחררו אותי
שאלות מתוך הראיון
שאלו לממש פונקצית void memCopy(void* dest, void* source) ll ב C
שמעתיקה אחד לשני, ואז אמרו שגישה לזכרון יקרה לנו ואיך אפשר לממש את זה בצורה יותר יעילה.
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2018
הפתרון היה להמיר הפרמטרים לטיפוס char למשל כדי להעתיק בית בית, ומימוש יעיל יותר היה להשתמש בטיפוס המרה אחר כמו long long שמעתיק 8 בתים כל פעם וכך חוסכים בהעתקות וגישות זכרון
התנהגות של קבלים וסלילים במעגל מתח DC, קריאת, או שרטוט, גרף של מתח היציאה של המעגל. מתח יציאה של מעגלים עם מתח כניסה AC, נגדים דיודות או טרנסיסטור. שערים לוגיים (XOR).
חברה אמריקנית רב-לאומית, ממציאת תחום כרטיסי זיכרון הבזק, שמתכננת, מייצרת ומשווקת כרטיסים אלו למגוון רחב של התקנים. חברת אם סיסטמס ממציאת הדיסק און קי, התמזגה לתוכה בסוף 2006