- לצמצם Control hazards
- להוריד כמות interrupts
- לבצע מספר Branchים בפקודה אחת
- להעלים לחלוטין Instruction cache misses
באיזה סוג שער תשתמש?
- XOR
- AND
- OR
- NOT
- NAND
- הגדרת מדפסות
- קולות ינשופים
- כלי נשק
- קובץ אצווה
- Int 21h ל-DOS
- Int 1h ל-Windows
- Int 0x80 ל-Windows
- Int 13h ל-DOS
ב-C:
int min1(int [] arr, int first, int last) { int m, i; m = arr[first]; for (i = first + 1; i <= last; i++) { if (arr[i] < m) { m = arr[i]; } } return m; } int min2(int [] arr, int first, int last) { int m; if (first == last) { return arr[first]; } m = min2(arr, first + 1, last); if (arr[first] < m) { return arr[first]; } return m; }
- שתיהן טובות באותה המידה
- הראשונה, כי השנייה עלולה לגלוש מהמחסנית
- השנייה, כי היא רצה מהר יותר עבור מערכים גדולים
- תלוי במהדר (קומפיילר)
- כינוי לבעיות תאימות וגרסאות בין ספריות הרצה ב- Windows
- וירוס שמדביק קבצי DLL שהיה נפוץ באינטרנט בשנת 2002
- כינוי לבאג ידוע בטעינה של קבצי DLL שלא תוקן עד היום
- שם של אחד מהספרים בסדרת Win32 Programming של Microsoft Press
- אם A גורם ל-B, אזי B מעולם לא יגרום ל-A
- אם A גורם ל-B, אזי B בהכרח גורם ל-A
- אם A גורם ל-B, ו-B גורם ל-C, אזי בהכרח C גורם ל-A
- אם A גורם ל-B, אזי B לא בהכרח גורם ל-A
- DnsHostnameToComputerName
- gethostbyname
- gethostbyaddr
- connect, ואז getpeername
- פרגמנטציה
- Deadlock
- Page Fault
- בעיות סנכרון בין Processים שונים הניגשים לאותו Heap
- מנגנוני סנכרון מתאימים
- הקצאת מספר Heapים, כשבכל Heap מקצים זיכרון בגודל קבוע
- יצירת Thread ייעודי לטיפול ב- Heap
- הגדלת כמות זיכרון ה- RAM במחשב
- bash
- expect
- grep
- perl
user code 331 Give me your password, please Pass guru 230 Logged in successfully TYPE I 200 Type is Image (Binary) port 220,5,211,3,5,42 200 PORT command okay RETR codeguru
באיזה פרוטוקול הם מתקשרים?
- SMTP
- POP3
- FTP
- HTTP
- SSL
- NFS
- SNMP
- ICMP
- לכל Process מרחב זכרון משלו
- כל Process יכול להכיל כמה Threads, אבל כל Thread משויך לProcess בודד
- Process הינו סוג של Thread, שלא מתבצע בו Context Switch. (Uninteruptable thread)
- ניתן לתקשר בין Processים ע"י מנגנוני IPC
- Pipeline
- Cache
- DMA
- זיכרון וירטואלי
- varchar מאפשר הגדרת גודל שונה עבור כל תו במחרוזת; char מגדיר גודל קבוע לכל תו
- char מייצג מחרוזת באורך קבוע, בעוד ש- varchar מייצג מחרוזת באורך משתנה
- בשמירה הפיזית של הנתונים char תמיד יתפוס מקום כגודל מקסימלי של המחרוזת, בעוד ש- varchar יתפוס מקום רק כאורך המחרוזת
- char הינו ייצוג ASCII בעוד ש- varchar הינו ייצוג Unicode
- דחיסה שקופה
- יוצר מערכת קבצים וירטואלית בזיכרון
- מאפשר להריץ דברים עם הרשאות של Driver
- מסדר את המקום הפנוי על הדיסק הקשיח בסדר רציף
- x*y-x
- x*y-y
- x+y-x*y
- modulo 2 (x*x+y*y)
- איגוד תקינה אירופאי, אחראי בין השאר על RFCs
- מילה בגרמנית שפירושה "לתקוף"
- "change region", תוכנה שפורצת הגנה של כונן DVD
- שרת ששולח רצפי תוים בלולאה אינסופית
- select phone from table once;
- select distinct phone from table;
- select count(phone) from table;
- select phone unique from table;
- תמיכה במצב עבודה Real Mode בלבד
- תמיכה במרחב זיכרון של 1MB בלבד
- קיים זיכרון מטמון פנימי בתוך ה CPU, וזיכרון מטמון חיצוני על לוח האם
- רוחב המילה של מעבד הוא שמונה סיביות בלבד. (אמנם 80X86 תמך ב- 16 סיביות, אך רק שמונה סיביות באו לידי ביטוי)
Volume in drive C is Codeguru Volume Serial Number is C001-C0DE Directory of C: File Not Found
לאיזה Standard file descriptors נשלחת ההדפסה?
- STDOUT
- STDERR
- חלק ל-STDOUT, וה-File Not Found ל-STDERR
- חלק ל-STDOUT, וה-File Not Found תמיד נשלח למסך (Con)
- הכל תמיד נשלח למסך
- הכרזה על משתנה שערכו קבוע ולא יכול להשתנות
- הכרזה על משתנה שה-GC לא יכול להזיז בזיכרון
- הכרזה על בלוק קוד שלא ניתן לבצע לו JIT
- אף אחת מהתשובות לא נכונה
- 1980
- 1986
- 1981
- 1978
MOV DX, 0F8FAH MOV CX, 1 MOV BX, 1EA0H MOV AX, 0B8B8H INC AX INC AX
עליך להוסיף פקודת אסמבלי אחת בלבד בסוף הקטע, על מנת לגרום לערך שבAX להיות 4040H בסוף הריצה. איזה פקודה לא תוכל לבצע זאת?
- ADD
- SUB
- MUL
- XOR
- LOOP
- Minimax
- Prim
- חיפוש בינארי
- Fuzzy-Logic
- קריאה לפונקציה MoveFile
- קריאה לפונקציה RenameFile
- קריאה לפונקציה CreateFile עם פרמטר מתאים
- אין דרך מסודרת – יש לקרוא את הקובץ, לכתוב אותו מחדש בשם אחר, ולמחוק את העותק המקורי
- Hit rate גבוה, Miss rate נמוך, וMiss time גבוה
- Hit rate גבוה, Miss rate נמוך, וMiss time נמוך
- Hit rate נמוך, Miss rate גבוה, וMiss time נמוך
- Hit rate נמוך, Miss rate גבוה, וMiss time גבוה
- מיקרוסופט
- י.ב.מ.
- אלאדין
- מכון ויצמן למדע
- חלוקה ב-0
- שינוי ה Program Counter(Instruction Pointer)
- קריאה לפסיקת תוכנה
- שינוי טבלת הפסיקות
- 21
- 20
- 2121
- 1024
- שהמשתמש שמריץ אותו מקבל את ההרשאות של המשתמש שלו שייך הקובץ
- שרק משתמש ה-Root יכול לקרוא את הקובץ
- שהקובץ הוא קובץ Device מיוחד המפנה לממשק פיסי במערכת
- שהקובץ בלתי ניתן למחיקה רגילה
not dx not cx not bx neg ax sbb bx, FFFFH sbb cx, FFFFH sbb dx, FFFFH
- ספירת כמות הביטים הדולקים ב-4 האוגרים ax-dx
- NOT למספר בן 64 ביט
- שלילה למספר בן 64 ביט
- Sign extension ממספר בן 16 ביט למספר בן 64 ביט
- בדיקת ה-Parity של מספר בן 64 ביט
- socket
- pipe
- file
- posix semaphore
- 802.11
- 802.15
- 802.3
- 802.16
- משתמשים בעמודים מיוחדים במנועי חיפוש שנותנים מידע על מי חיפש מה
- מתשאלים את ה- browser שלך באמצעות JavaScript
- משתמשים ב- Referrer Header
- תשובות ב' וג' נכונות
- להפריד את Hash ססמאות המשתמשים מקובץ ה-passwd, כך שמשתמשים רגילים אינם יכולים לקרוא קובץ זה
- עותק Mirror של קובץ הססמאות, למקרה שימחק בטעות
- קובץ בלתי נראה למשתמשים רגילים המכיל את ססמאות המשתמשים במערכת
- גיבוי לקבצי מערכת ההפעלה
- העתקת הBIOS מהROM לRAM
public boolean getBoolean() { try { return true; } finally { return false; } }
- true
- false
- תיזרק RuntimeException
- הקוד לא מתקמפל
- שימוש ב- incremental backup לטייפ גיבוי כל כמה שעות
- שימוש ב- shadow copies המתרעננים כל כמה שעות
- סקריפט המעתיק את הקבצים הקריטיים למקום בטוח כל מספר שעות
- שימוש ב- RAID
- FIND
- GREP
- FC
- COM
char *c();
- מצביע למערך תווים
- מצביע לפונקציה שמחזירה תו
- פונקציה שמחזירה מצביע לתו
- כל התשובות נכונות
MOV AX, 0xF00D PUSH AX PUSH SP MOV AX, SP POP SP PUSH AX MOV CX, _____ GetOverHere: POP SP LOOP GetOverHere
איזה ערך ניתן לשים ב – CX על מנת שבסיום הריצה SP יכיל את הערך 0xF00D?
- 1
- 2
- 3
- 4
- 5
- אין ערך כזה
לאיזה כתובת MAC עליך לשלוח אותה?
- FF-FF-FF-FF-FF-FF
- 00-00-00-00-00-00
- 80-00-00-00-00-00
- אי אפשר לשלוח הודעה כזו: ב Ethernet, בניגוד לIP, אין תמיכה בMulticast וBroadcast
- פקודת IN
- פקודת INT FF
- פקודת CPUID
- פקודת MOV (מכתובת קבועה)
- 12 (מוחזר ב-3 רגיסטרים של 32 ביט)
- 512 (מוחזר מצביע ל- sector המכיל את המחרוזת)
- 4096 (מוחזר מצביע ל- page המכיל את המחרוזת)
- אין מגבלה על האורך, מוחזר מצביע זיכרון חופשי
- בכל מערכת מוגדר משתמש LocalSystem, והוא נשמר בהעתקה עם אותה סיסמה, כך שאפשר להשתמש בו כדי להיכנס
- למרות שסיסמת administrator שונתה, ה- SID של המשתמש נשאר זהה בהעתקה
- יצירת GUID מבוססת על כתובת ה- MAC של כרטיס הרשת, ומכיוון שה- MAC הועתק יש סיכוי ש- GUID -ים ייוצרו בצורה זהה בשתי התחנות
- הזדהות בין מחשבים מתבצעת באמצעות כתובות ממשקי התקשורת, ומכיוון שאלו עברו בהעתקה המחשב המועתק "יסמוך" אוטומטית על המקורי כי הוא חושב שזה הוא עצמו
- כולם דגלי TCP/IP
- כולם מסייעים במניעת עומס ברשת
- כולם משתמשים באסמבלי מיועל בכל המימושים
- אין משותף לשלושה
delegate void functions(); static void f1() { Console.WriteLine("1"); } static void f2() { Console.WriteLine("2"); } static void Main(string args[]) { functions fs=new functions(f1); fs+=f2; fs(); }
מה יודפס על המסך בעת הרצת הקוד הנ"ל?
- המספר 1, ומתחתיו המספר 2
- המספר 1 בלבד, ב-delegates רגילים לא ניתן לקרוא ליותר מפונקציה אחת
- המספר 2, ההצבה השניה דורסת את ההגדרה הראשונה בגלל שמדובר ב-delegates רגילים
- לא ניתן לקבוע את סדר הריצה של הפונקציות ולכן אי אפשר לדעת באיזה סדר יופיעו ההדפסות על המסך
- 64 לבנים ו-32 שחורים
- 52 לבנים ו-36 שחורים
- 38 שחורים ו-44 לבנים
- 86 קלידים סה"כ
- לא להשתמש בCascading style sheets בכלל
- להחליף את התווים < ו > ב> ו-< במערכת שליחת ההודעות
- להגביל את זמן החיים של ה-cookies הנשלחים אל הלקוחות בכניסה למערכת
- למנוע הכנסת תווים מיוחדים לשאילתות SQL
- בתוך /mnt/proc
- בסקטור השלישי של הדיסק הראשון
- תלוי בהגדרות ה mount לפי קובץ ה /etc/fstab
- המידע איננו שמור על הדיסק, אלא מיוצר בזמן ריצה על ידי הקרנל
- לפי הסטנדרט, הכתובת היא mail.example.com
- נסתכל בכותרות של הודעה נכנסת כלשהי מאותו חבר, שם רשום שם השרת שלו
- נחפש רשומת MX לדומיין
- אין דרך חד-משמעית לדעת את כתובת השרת
- פי 0.1
- פי 1
- פי 5
- פי 25
- hashCode()
- clone()
- toString()
- אף אחת
- Win98
- Win2K
- WinXP
- WinNT
- לחכות עד שתהליך כלשהו שרץ ברקע יסתיים
- לחכות עד שתסתיים שליחת מידע ברשת
- לחכות פרק זמן ידוע מראש
- כל התשובות נכונות
- מספר הבתים
- האוגר שמתאפס
- הסימן של ax
- אין הבדל
- ע"מ להקטין את הסיכון במקרה של קלט ממוין מראש
- ע"מ להקל על האלגוריתם במקרה של קלט גדול
- ע"מ שהפלט יהיה שונה גם עבור קלטים זהים
- משיקולי יעילות, רנדום מאפשר קבועים קטנים יותר
- Unit Testing
- Code Review
- Regression testing
- Site Acceptance Tests
- Integration Tests
- Static code analysis
- טווח מירבי של "שן כחולה" הוא שישה מטרים
- זמן חיים מירבי של חבילת תקשורת הוא שש שניות
- כל שני אנשים מחוברים דרך לכל היותר שישה חברים
- לרשת טיפוסית יש שישה מרכיבי קשירות
- const_cast
- dynamic_cast
- reinterpret_cast
- static_cast
- יש נסיון לגשת לאזור זכרון שאיננו ממופה לCache
- יש נסיון לגשת לאזור זכרון וירטואלי שאיננו ממופה לRAM
- יש קפיצה לאזור בקוד שאיננו בCache
- יש הוראה התלויה בתוצאה של הוראה אחרת, שטרם הושלם ביצועה בPipeline
- ע"י קריאה לפונקציה של ה- Kernel, הדואגת לסנכרון ה- Threads
- ע"י נעילת פסיקות ו- Context Switches, עד שתושלם הפעולה
- ע"י Mutex המגן על המידע
- באמצעות פקודות אסמבלי מיוחדות של המעבד המתבצעות בצורה אטומית
INSERT INTO Person (TeudatZehut, Name) VALUES (12345678, ‘Arik’); INSERT INTO Car (OwnerTeudatZehut, CarNumber) VALUES (12345678, 2388841);
- שתי השאילתות יורצו בפעולה אטומית אחת, כך שאין סיכוי שמשתמש אחר יתערב בטבלאות תוך כדי
- אם השאילתה השנייה תיכשל, הראשונה תבוטל
- אין משמעות מאחר ואין מספר פעולות על אותה טבלה
- לא ניתן להריץ שאילתות על מספר טבלאות בתוך transaction אחד
- Sockets
- Named Pipes
- DCOM
- הודעות WM_COPY
int *x=new int[100]; int *p=x; *p++=*p++=1; for (int i=2; i<100; p++){ *p=p[-1]+p[-2]; }
מה יכיל המערך x לאחר הריצה שלו?
- סדרה חשבונית עולה, אשר איבר הקידום שלה נמצא ב-x[2]
- כל האיברים יכילו את הערך 1
- שני האיברים הראשונים יכילו את הערך 1, כל היתר את הערך 0
- סדרת פיבונצ'י
- קפיצת חלונות שמבקשים מהמשתמש לאשר ביצוע פעולות שדורשות הרשאות גבוהות מההרשאות הנוכחיות שלו
- Windows Messages יכולים להישלח בין desktopים שונים
- אלא אם למשתמש יש כרטיס גרפי טוב, חלק גדול מזמן הCPU מוקדש לחישוביים גרפיים
- חברים בקבוצת הAdministrators לא מורשים לטעון דרייברים חתומים
- 100.0.0.1
- 194.2.5.1
- 201.0.1.211
- 230.0.1.1
בהינתן המחלקות istream ו-ostream היורשות מ-stream, ו-iostream יורשת מ-istream וגם מ-ostream:
- לעבור לג'אווה, אין פיתרון בC++
- להגדיר את הירושה של istream ו-ostream כוירטואלית
- להגדיר את הירושה של iostream כוירטואלית
- להגדיר את שלושת הירושות המצויינות ב-ב' ו-ג' כוירטואליות
- סינכרון חיבורי XML ב-Java
- הצגה גרפית של עץ ב-XML
- יצירת עמוד web בעל תוכן דינאמי המתעדכן מהשרת
- עיצוב עמוד web בעזרת גירסאות CSS חדשות ופורמט SVG
כשקראת מהכתובת 0xDEADBEEE, קיבלת את הערך 0xBADF00E
מה יכול להיות הגורם לכך?
- תמיד נשמר גיבוי למידע שאתה רושם בזכרון בכתובת קרובה
- Parity bit מקולקל
- הצלבה של קווים בData bus, וקיצור של קווים בAddress bus
- חיבור תמידי של הLSB בData bus ל-1
- אין לי מושג, אבל לך תקנה מחשב חדש
- למצוא מימוש יעיל של פונקציה בוליאנית
- לנווט בGoogle Earth
- לבחור מה סוג הFlip flop שבו צריך להשתמש
- לחשב פעולות אריתמטיות על מספרים בינאריים
for (i=0; i<10; i++); putchar('-');
- מדפיס עשרה מקפים
- מדפיס תשעה מקפים
- מדפיס מקף אחד
- מחשב את היקף המעגל
class A { public: A() {}; A(const A& a) {cout<<"in copy cons"<<endl; } A(const A* a) {cout<<"in simple function"<<endl; } }; void main() { A a; A b(&a); }
מה יודפס לאחר הרצת הקוד הבא?
- in simple function
- in copy cons
- שגיאת קומפילציה, הקומפיילר לא יכול להבין לאיזו מבין הבנאים להתייחס
- אף אחת מהתשובות אינה נכונה
- כן, הזיכרון לא מוקצה מראש בהינתן אובייקט כזה
- לא, זה היה אפשרי אם הזיכרון לא היה מוקצה מראש, אך זה נוגד את אלגוריתמי הקצאת הזיכרון בהם משתמשים ה-containerים.
- כן, באמצעות placement new
- כן, באמצעות set_new_handler
- לפי הUser-Agent שלהם
- בעזרת שאילתה מיוחדת של פרוטוקול http
- הוא יכול להציג דפים עם קוד DHTML שיעבוד נכון רק בIE ולערוך סטטיסטיקה ע"פ מספר המיילים הזועמים שמגיעים למערכת
- המידע הזה נשלח כחלק מפרוטוקול PPPoE
- שעה
- יום
- חודש
- שנה
srand(time(NULL)); a=250; cnt=0; for (int i=0 ; i<31337 ; i++){ int n=(rand()%(a*2))-a; int m=(rand()%(a*2))-a; if (n*n+m*m<=a*a){ cnt++; } }
- PI
- e
- phi (חתך הזהב)
- i
The system has detected an IP address conflict with another system on the network. Network operations on this system may be disrupted as a result. More details are available in the system event log. Consult your network administrator immediately to resolve the conflict.
איך Windows יודע לזהות קונפליקט כזה?
- ניתוח הודעות ARP העוברות ברשת
- ניתוח הודעות DHCP העוברות ברשת
- הוא קיבל הודעת ICMP עם Type 15(Address conflict)
- הוא שלח הודעת Ping, אבל לא קיבל תשובה. מכאן הוא מסיק שהתשובה הגיעה למחשב אחר
2,3,6,7,8,12,13,16
- 17
- 18
- 19
- 20
- Critical Section
- File
- Mutex
- Semaphore
- Thread
- Process
- Event
- Pipe
- לא צריך לבצע ring transition בעת שימוש באובייקט
- לא ניתן לחלוק את האובייקט בין processים שונים
- לא ניתן להשתמש ב- WaitForMultipleObjects על האובייקט
- תשובות א-ג נכונות
- אף תשובה אינה נכונה
- מאה עצרת
- מאה בחזקת מאה
- שווים
- תלוי בבסיס הספירה
- לחסר 0101b
- להפוך לייצוג המשלים ל-2
- לחבר 0110b
- השגיאה שונה בכל חיבור של שתי ספרות שונות
int f(int x) return x^(x>>1);
איזו g מקיימת את התכונה: g(f(x))==x לכל x?
-
int g(int x){ for (int i=16 ; i ; x^=x+i , i>>=1); return x; }
int g(int x){ for (int i=16 ; i ; x^=x>>i , i>>=1); return x; }
-
int g(int x) return x^(x<<1);
-
int g(int x){ for (int i=0 ; i<=16 ; x^=x>>i , i<<=1); return; }
- Hamming
- Gray
- Manchester
- NRZ
- bss
- code
- text
- data
- לכל היותר 1.5 מ"ר
- בדיוק 1 מ"ר
- לכל הפחות 2 מ"ר
- לכל היותר 2.1 מ"ר
לרשותך מצביע בודד, נקרא לו p, המצביע בכל פעם על בית בודד, כאשר פקודות השפה מבצעות פעולות שונות על המצביע.
הנח כי בתחילת התכנית כל הזכרון מאופס ל-0.
להלן פירוט הפעולות השונות בשפה:
סלט – הגדלת המצביע p ב1.
כרוב – הקטנת המצביע p ב1.
חומוס – הגדלת הערך שנמצא במיקום בזכרון שאליו מצביע p.
צ'יפס – הקטנת הערך שנמצא במיקום בזכרון שאליו מצביע p.
חריף – קפוץ קדימה למילת ה"טחינה" המקבילה אם הערך שאליו מצביע p הוא 0.
טחינה -קפוץ אחורה למילת ה"חריף" המקבילה אם הערך שאליו מצביע p הוא לא 0.
פיתה – הדפס את תוכן התא אליו מצביע p (מתייחס לp כאל char בAscii).
פלאפל – קלוט מהמשתמש תו, ושים אותו במקום שאליו מצביע p. אם הגעת לסוף הקלט, שים 0.
המקבילה בשפת C לפקודות הללו מתואר כאן:
סלט – p++
כרוב – p–
חומוס – (*p)++
צ'יפס – (*p)–
חריף – while(*ptr){
טחינה – {
פיתה – putchar(*p)
פלאפל – *p = getchar()
שים לב כי מטרת פקודות הטחינה-חריף היא ליצור לולאות, בדומה ללולאות הWhile בשפת C.
כמו כן, לכל פקודת חריף חייבת להיות פקודת טחינה מתאימה.
הפקודות בשפה מבוצעות שורה שורה, למעט פקודות החריף-טחינה, אשר משנות את הFlow של התוכנית.
לפניך קטע קוד בשפת חומוס-צ'יפס-סלט. מעברי השורות והרווחים הם למטרות קריאות בלבד, והמהדר מתעלם מהם.
מה ידפיס קטע הקוד?
חומוס חומוס חומוס חומוס חומוס חומוס חומוס חומוס חומוס חומוס חומוס
חריף
סלט חומוס חומוס חומוס חומוס חומוס חומוס
סלט חומוס חומוס חומוס חומוס חומוס חומוס חומוס חומוס חומוס
סלט חומוס חומוס חומוס חומוס חומוס חומוס חומוס חומוס חומוס חומוס
כרוב כרוב כרוב צ'יפס
טחינה
סלט חומוס פיתה
סלט סלט חומוס פיתה
כרוב חומוס פיתה חומוס פיתה
כרוב חומוס חומוס חומוס חומוס פיתה
סלט סלט חומוס חומוס חומוס חומוס חומוס חומוס פיתה
צ'יפס צ'יפס צ'יפס פיתה
חומוס חומוס חומוס פיתה
-
- לא, אין פקודת השוואה בשפה
- לא, מיון דורש יכולת העתקה / החלפה בין בתים
- כן, אבל אך ורק אם נוסיף פקודה נוספת – חמוצים, אשר מבצעת swap בין ערך תא בזכרון לערך שנמצא ישר אחריו
- כן, כי חומוס-צ'יפס-סלט היא Turing complete