הייתה לי שאלה על כמו טלפון סלולרי מפעם, שהיו בו כל מיני ספרות abc efg וכו
ביקשו ממני אם נתונה מחרוזת מסויימת איך צריך לסדר את התווים בטלפון כדי שיהיו כמה שפחות לחיצות על המקשים
תיארו קצת את המשרה ואת החברה, הסבירו מה הצוות עושה ושיש חניכה וכולי.
לאחר מכן הנבחן מציג את עצמו, החלק הטכני של הראיון, שאלות של הנ,חן משהו ש וא רוצה להוסיף ויאללהה הביתההה.
שאלות מתוך הראיון
ביקשו שאתאר בעזרת דיאגרמת גלים (waveform) איך פרוטוקול handshake יעבוד. יש bus, ביט של ready, ביט של done, end of packet, start of packet.
לאחר מכן למצוא את הטעויות בגרף.
בהמשך לכתוב אילו טעויות לוגיות יכולות להיות במודל, והציעו לאפיין את זה עם FSM (מור ומילי - מה שיותר נוח)
תשובות
הוסף תשובה
|
לצפיה בתשובות
יולי 2025
לשים לב ששידור של פקטה אחת לא תדרוס את הפקטה שלאחר מכן ולסדר את התזמונים.
תקלות ש eop יתקבל לפני sop ובתיאור מכונת המצבים יש מצב של מחוץ לפסטה ובתוך פסטה.
מבחן בית עם 2 שאלות קוד ומבחן כללי על עבודה במקום (לא צריך ללמוד) ומבחן אישיות
שאלות מתוך הראיון
שאלות ליטקוד בניסוח ארוך, שמו דגש על שאלות שקשורות למערכים עם אינטרוולים, לדוגמא נותנים רשימה של אינטרוולים ורוצים למצוא חפיפה בין האינטרוולים ולאחד אותם לדוגמא:
[[1,3][2,4]] יהפוך ל[[1,4]]
הסבר אופיין עבדוה של מהפך CMOS
מהם שולי הרעש ויאך מחושבים
תכנן שערים לוגים כמו XOR NOT OR AND AND D-FF בעזרת MUX21
שרטוט דיאגרמת זמנים וניתוח של מערכת FSM מחלק תדר והסבר עבדוה של סינכרוני ואסינכרוני
ראיון לתפקיד junior data engineer ראיון ראשון היה טכני בלייב כאשר נבחנתי על ידי מישהו מהחברה בחול באנגלית(סשן קצר של כתיבת קוד)
לאחר מכן אחרי שבועיים 2 ראיונות שהראשון כלל שאלות כמו ספר לי על פרויקט שעשית,על פעם שעזרת לחבר,איך אתה לומד משהו חדש וכו
ואז ראיון טכני בלייב בזום עם ראש הצוות
מלבד שאלות כלליות על טכנוגלוגיות, נשאלה שאלה טכנית אחת:
לרשותך מעבד אחד ומספר תהליכים. כמו כן שלוש פונקציות:
Sleep: כל תהליך שנתקל בפונקציה נכנס למצב המתנה.
Awake: פונקציה שמקבלת ID של תהליך ומוציאה אותו ממצב המתנה.
Timer: פונקציה שמקבלת ערך זמן מסויים. ברגע שקיבלה את הזמן מתחיל לרוץ ברקע שעון אשר מתחיל בערך הזמן ויורד למטה. כשמגיע לאפס מתקבלת פסיקה, וכמובן גם קיים את וקטור הפסיקה, המקום בקוד אשר מופעל ברגע שנגמר הטיימר.
המטרה:
לייצר פונקציה חדשה, Delay, אשר מסוגלת לקבל ערך זמן מסויים, וכל תהליך אשר ייתקל בפונקציה ייכנס למצב המתנה לכמות הזמן אשר הוקצבה, ויתעורר מיד לאחר מכן.
תשובות
הוסף תשובה
|
לצפיה בתשובות
יוני 2025
לא הצלחתי לפתור את השאלה בזמן, אבל אני חושב שהבנתי את הכיוון, זה ההצעה שלי לפיתרון:
להתחיל רשימה מקושרת, אשר מייצגת את כל התהליכים שנמצאים במצב שינה. הסדר של הרשימה הוא כסדר התהליכים שמיועדים להתעורר. בנוסף למצביעים על האיבר הבא, כל איבר מחזיק ערך זמן, המייצג את הזמן אשר לאחר התעוררות האיבר האחרון, צריך להעיר את התהליך הבא ברשימה. כמובן עוד ערך עבור כל איבר הוא הID שלו.
בכל פסיקת טיימר שמתקבלת, בקטע הקוד של הפסיקה, נעיר את התהליך הראשון ברשימה, נוריד אותו מהרשימה, ונפעיל שוב את הטיימר לפי ערך הזמן של האיבר שהרגע הוצאנו.
כך לדוגמה, אם בזמן 10 תהליך אחד קיבל דיליי של 100 שניות, ו10 שניות אחרי זה תהליך אחר קיבל דיליי של 200 שניות, תהיה לנו רשימה מקושרת של תהליך 1 עם ערך זמן 110, ואחריו תהליך 2 ללא ערך זמן, כאשר זמן 20 (בו נכנס איבר 2 לרשימה) ערך השעון יהיה 90.
הסבר- לאחר 90 שניות, נגיע לקטע הפסיקה בו נעיר את תהליך אחד ונוציא אותו מהרשימה, ונשים את הטיימר שוב לעוד 110 שניות. נקבל שתהליך 1 התעורר בזמן 110 ותהליך 2 יתעורר בזמן 220, כפי שרצינו.