You are on page 1of 5

‫האקדמית נתניה‬

‫מדעי המחשב והמתמטיקה‬


‫בחינה‬

‫‪ .1‬פסיקות )‪(Interrupts‬‬
‫מהו המשפט הנכון ?‬
‫חלוקה באפס תגרום לפסיקה פנימית‪ ,‬פסיקת שעון תגרום לפסיקה חיצונית‪.‬‬ ‫א‪.‬‬
‫פסיקת שעון תגרום לפסיקה פנימית‪ ,‬חלוקה באפס תגרום לפסיקה חיצונית‪.‬‬ ‫ב‪.‬‬
‫ניסיון לבצע פקודה לא חוקית יגרום לפסיקה חיצונית‪ ,‬חלוקה באפס תגרום לפסיקה פנימית‪.‬‬ ‫ג‪.‬‬
‫ניסיון לבצע פקודה לא חוקית יגרום לפסיקה פנימית‪ ,‬חלוקה באפס תגרום לפסיקה חיצונית‪.‬‬ ‫ד‪.‬‬

‫‪ .2‬מצבי החומרה )‪(CPU mode‬‬


‫מהו המשפט הנכון ?‬
‫מעבר ממצב רגיל )‪ (User‬למצב מיוחס )‪ ,(Priviliged‬נובע מקריאת מערכת (‪ ,)System Call‬מפסיקה‬ ‫א‪.‬‬
‫פנימית ומפסיקה חיצונית‪.‬‬
‫מעבר ממצב רגיל )‪ (User‬למצב מיוחס )‪ ,(Priviliged‬נובע מקריאת מערכת (‪ ,(System Call‬מפסיקה‬ ‫ב‪.‬‬
‫פנימית אך לא מפסיקה חיצונית‪.‬‬
‫מעבר ממצב רגיל )‪ (User‬למצב מיוחס )‪ ,(Priviliged‬נובע מקריאת מערכת (‪ ,(System Call‬מפסיקה‬ ‫ג‪.‬‬
‫חיצונית אך לא מפסיקה פנימית‪.‬‬
‫מעבר ממצב רגיל )‪ (User‬למצב מיוחס )‪ ,(Priviliged‬נובע מפסיקה פנימית‪ ,‬מפסיקה חיצונית אך לא‬ ‫ד‪.‬‬
‫מקריאת מערכת (‪.(System Call‬‬
‫‪2‬‬

‫‪PCB .3‬‬
‫מהו המשפט הנכון ?‬
‫כאשר מבצעים )(‪ parent process ,fork‬לא מועתק מההורה לילד אך ‪ open file descriptors‬מועתק‪.‬‬ ‫א‪.‬‬
‫כאשר מבצעים )(‪ parent process ,fork‬מועתק מההורה לילד אך ‪ open file descriptors‬לא מועתק‪.‬‬ ‫ב‪.‬‬
‫כאשר מבצעים )(‪ parent process , fork‬לא מועתק מההורה לילד וגם ‪ open file descriptors‬לא‬ ‫ג‪.‬‬
‫מועתק‪.‬‬
‫כאשר מבצעים )(‪ parent process ,fork‬מועתק מההורה לילד וגם ‪ open file descriptors‬מועתק‪.‬‬ ‫ד‪.‬‬

‫‪ .4‬החלפת תהליך )‪(Context Switch‬‬


‫מהו המשפט הנכון ?‬
‫בזמן החלפת תהליך‪ ,‬צריך לשמור את האוגר ‪ PC‬ואת יתר האוגרים של התהליך המוחלף‪ ,‬ב‪.PCB -‬‬ ‫א‪.‬‬
‫בזמן החלפת תהליך‪ ,‬צריך לשמור את האוגר ‪ PC‬ואת יתר האוגרים של התהליך המוחלף‪ ,‬בקובץ‪.‬‬ ‫ב‪.‬‬
‫בזמן החלפת תהליך‪ ,‬צריך לשמור את האוגר ‪ PC‬של התהליך המוחלף ב‪ PCB -‬אך אין צורך לשמור‬ ‫ג‪.‬‬
‫את יתר האוגרים‪.‬‬
‫בזמן החלפת תהליך‪ ,‬צריך לשמור את האוגר ‪ PC‬של התהליך המוחלף בקובץ אך אין צורך לשמור‬ ‫ד‪.‬‬
‫את יתר האוגרים‪.‬‬

‫‪ .5‬יצירת תהליך ))(‪(fork‬‬


‫מהו המשפט הנכון ?‬
‫הערך המוחזר מ‪ fork() -‬הוא ‪ 0‬עבור הילד ומספר התהליך של הילד עבור ההורה‪.‬‬ ‫א‪.‬‬
‫הערך המוחזר מ‪ fork() -‬הוא ‪ 0‬עבור הילד ומספר התהליך של ההורה עבור ההורה‪.‬‬ ‫ב‪.‬‬
‫הערך המוחזר מ‪ fork() -‬הוא ‪ 0‬עבור ההורה ומספר התהליך של הילד עבור הילד‪.‬‬ ‫ג‪.‬‬
‫הערך המוחזר מ‪ fork() -‬הוא ‪ 0‬עבור ההורה ומספר התהליך של ההורה עבור הילד‪.‬‬ ‫ד‪.‬‬

‫‪ .6‬הפנית קלט‪/‬פלט )‪(redirection‬‬


‫הפקודה ‪abc | xyz‬‬
‫מנתבת את הפלט של הפקודה ‪ abc‬לקלט של הפקודה ‪.xyz‬‬ ‫א‪.‬‬
‫כותבת את הפלט של הפקודה ‪ abc‬לקובץ ‪.xyz‬‬ ‫ב‪.‬‬
‫מנתבת את הפלט של הפקודה ‪ xyz‬לקלט של הפקודה ‪.abc‬‬ ‫ג‪.‬‬
‫קוראת את הקלט של הפקודה ‪ abc‬מתוך הקובץ ‪.xyz‬‬ ‫ד‪.‬‬

‫‪ .7‬תהליכים וחוטים )‪(Processes and Threads‬‬


‫מהו המשפט הנכון ?‬
‫קוד התכנית והקבצים הפתוחים משותפים לכל החוטים (‪ ,)threads‬אך לכל חוט (‪ )thread‬יש‬ ‫א‪.‬‬
‫מחסנית משלו‪.‬‬
‫‪3‬‬

‫קוד התכנית משותף לכל החוטים (‪ ,)threads‬אך לכל חוט (‪ )thread‬יש מחסנית משלו וקבצים‬ ‫ב‪.‬‬
‫פתוחים משלו‪.‬‬
‫המחסנית והקבצים הפתוחים משותפים לכל החוטים (‪ ,)threads‬אך לכל חוט (‪ )thread‬יש קוד‬ ‫ג‪.‬‬
‫תכנית משלו‪.‬‬
‫הקבצים הפתוחים משותפים לכל החוטים (‪ ,)threads‬אך לכל חוט (‪ )thread‬יש קוד תכנית ומחסנית‬ ‫ד‪.‬‬
‫משלו‪.‬‬

‫‪ .8‬פתיחת קובץ )‪(File open‬‬


‫כדי לפתוח קובץ לכתיבה בלבד‪ ,‬אם הקובץ קיים לאפס אותו‪ ,‬אם הקובץ לא קיים ליצור אותו‪,‬‬
‫נשתמש בדגלים (‪ )flags‬הבאים‪:‬‬
‫‪O_CREAT | O_WRONLY | O_TRUNC‬‬ ‫א‪.‬‬
‫‪WRONLY | O_TRUNC | O_APPEND‬‬ ‫ב‪.‬‬
‫‪O_CREAT | O_RDWR | O_TRUNC‬‬ ‫ג‪.‬‬
‫‪O_CREAT | O_WRONLY | O_ APPEND‬‬ ‫ד‪.‬‬

‫‪lseek .9‬‬
‫פתחנו קובץ שגודלו ‪ 1000‬בתים‪ ,‬לאחר מכן בצענו את הפקודות‪:‬‬
‫;)‪lseek(fd, 0, SEEK_END‬‬
‫;)‪lseek(fd, 100, SEEK_SET‬‬
‫;)‪pos = lseek(fd, 0, SEEK_CUR‬‬
‫מה הערך שיכנס ל‪?pos -‬‬
‫‪100‬‬ ‫א‪.‬‬
‫‪1099‬‬ ‫ב‪.‬‬
‫‪99‬‬ ‫ג‪.‬‬
‫‪1000‬‬ ‫ד‪.‬‬

‫‪chmod .10‬‬
‫לקובץ ‪ myfile‬יש את ההרשאות הבאות‪:‬‬
‫‪rwxrwxr--‬‬
‫איזו פקודת ‪ chmod‬תשנה את ההרשאות ל‪:‬‬
‫‪rwxrw-rw-‬‬
‫‪chmod g-x,u+w myfile‬‬ ‫א‪.‬‬
‫‪chmod u-x,g+w myfile‬‬ ‫ב‪.‬‬
‫‪chmod u-w,g+x myfile‬‬ ‫ג‪.‬‬
‫‪chmod g-w,u+x myfile‬‬ ‫ד‪.‬‬
‫‪4‬‬

‫‪links .11‬‬
‫אם הקובץ ‪ b‬הוא ‪ symbolic link‬לקובץ ‪ a‬והקובץ ‪ c‬הוא ‪ hard link‬לקובץ ‪:a‬‬
‫לקבצים ‪ a‬ו‪ c -‬יהיה אותו מספר ‪.inode‬‬ ‫א‪.‬‬
‫לקבצים ‪ b , a‬ו‪ c -‬יהיה אותו מספר ‪.inode‬‬ ‫ב‪.‬‬
‫לקבצים ‪ a‬ו‪ b -‬יהיה אותו מספר ‪.inode‬‬ ‫ג‪.‬‬
‫לקבצים ‪ b‬ו‪ c -‬יהיה אותו מספר ‪.inode‬‬ ‫ד‪.‬‬

‫‪ .12‬הרשאות לקבצים (‪)File Permissions‬‬


‫הקובץ ‪ file‬נמצא בתוך התיקייה ‪ dir‬שנמצא בתוך תיקיית השורש‪ ,‬כך‪:‬‬
‫‪/dir/file‬‬
‫מהן ההרשאות הדרושות כדי לכתוב לקובץ ‪ file‬שבתיקייה ‪? dir‬‬
‫הרשאת ביצוע לתיקיית השורש ולתיקיה ‪ ,dir‬וכן הרשאת כתיבה ל‪.file -‬‬ ‫א‪.‬‬
‫הרשאת ביצוע לתיקיית השורש ולתיקיה ‪ ,dir‬וכן הרשאת כתיבה ל‪ dir -‬והרשאת כתיבה ל‪.file -‬‬ ‫ב‪.‬‬
‫הרשאת כתיבה לתיקיית השורש ולתיקיה ‪ ,dir‬וכן הרשאת כתיבה ל‪.file -‬‬ ‫ג‪.‬‬
‫הרשאת קריאה לתיקיית השורש ולתיקיה ‪ ,dir‬וכן הרשאת כתיבה ל‪.file -‬‬ ‫ד‪.‬‬

‫‪Sticky Bit .13‬‬


‫כאשר לקובץ יש הרשאות של ‪?Sticky Bit‬‬
‫אוכל למחוק את הקובץ רק אם הוא שייך לי ויש לי הרשאת כתיבה בתיקיה המכילה אותו‪.‬‬ ‫א‪.‬‬
‫אוכל למחוק את הקובץ רק אם הוא שייך לי גם אם אין לי הרשאת כתיבה בתיקיה המכילה אותו‪.‬‬ ‫ב‪.‬‬
‫ההרשאות בזמן ביצוע הקובץ תלויות במי שהקובץ שייך לו‪.‬‬ ‫ג‪.‬‬
‫ההרשאות בזמן ביצוע הקובץ תלויות במי שמריץ את הקובץ‪.‬‬ ‫ד‪.‬‬

‫‪fork() .14‬‬
‫כמה פעמים תדפיס התוכנית הבאה "‪? "I have finished‬‬

‫>‪#include <stdio.h‬‬
‫)( ‪main‬‬
‫{‬
‫;)( ‪for (i = 0 ; i < 3 ; i++) fork‬‬
‫;)"‪printf ("I have finished.\n‬‬
‫}‬

‫‪8‬‬ ‫א‪.‬‬
‫‪5‬‬ ‫ב‪.‬‬
‫‪6‬‬ ‫ג‪.‬‬
‫‪4‬‬ ‫ד‪.‬‬

‫‪ .15‬שימוש בפקודה ‪ Test and Set‬לפתרון בעיית הקטע הקריטי‪:‬‬


‫‪5‬‬

‫מבטיח מניעה הדדית ‪ ,‬לא פותר את בעיית ההמתנה הפעילה )‪ , (busy wait‬לא פותר את בעיית‬ ‫א‪.‬‬
‫ההמתנה החסומה )‪)bounded wait‬‬
‫מבטיח מניעה הדדית ‪ ,‬פותר את בעיית ההמתנה הפעילה )‪ , (busy wait‬לא פותר את בעיית‬ ‫ב‪.‬‬
‫ההמתנה החסומה )‪)bounded wait‬‬
‫מבטיח מניעה הדדית ‪ ,‬לא פותר את בעיית ההמתנה הפעילה )‪ , )busy wait‬פותר את בעיית ההמתנה‬ ‫ג‪.‬‬
‫החסומה )‪)bounded wait‬‬
‫מבטיח מניעה הדדית ‪ ,‬פותר את בעיית ההמתנה הפעילה )‪ ,( busy wait‬פותר את בעיית ההמתנה‬ ‫ד‪.‬‬
‫החסומה )‪(bounded wait‬‬

You might also like