You are on page 1of 5

‫מערכות הפעלה ‪ 10010‬סמסטר ב' – תשפ"ג‬

‫תרגיל בית מס' ‪1‬‬


‫נושא התרגיל‪ :‬תהליכים‬

‫יש להגיש אך ורק דרך תפריט המטלות שבאתר הקורס‪.‬‬

‫הנחיות הגשה כלליות‪:‬‬


‫התרגיל ייבדק בסביבת ‪Ubuntu‬‬
‫הקוד חייב לעבור קומפילציה‪ ,‬קוד שאינו מתקמפל לא ייבדק‪.‬‬
‫יש להגיש קוד ללא הערות קומפילציה‪ ,warnings ,‬קוד בו יהיו הערות יגרור הורדה של ‪ 10‬נקודות‪.‬‬
‫יש להגיש רק קבצי ‪ c‬ו ‪ h‬מקובצים לקובץ אחד ששמו כשם הסטודנט‪ .‬שם פרטי ומשפחה‪ .‬אין להגיש‬
‫פרויקט ב ‪ eclipse‬או קבצי ‪ obj‬והרצה‬
‫ניתן לעבוד בזוגות ‪ -‬במידה ומגישים בזוג קובץ ההגשה יהיה מורכב משמות ‪ 2‬המגישים ושני המגישים‬
‫צריכים לעלות את העבודה למודל‪.‬‬

‫הוראות כלליות‪:‬‬
‫יש להקפיד על כללי הנדסת התוכנה‪:‬‬
‫פונקציה לא אמורה להיות ארוכה מ ‪ 25‬שורות‪ .‬אם יש קטע קוד שניתן לתת לו כותרת מה‬
‫הוא מבצע יש לכתוב אותו בפונקציה נפרדת‪.‬‬
‫יש לחלק את הקוד לתת פונקציות מתאימות ‪ .‬אין לשכפל קוד‪ .‬קוד זהה אמור להיות‬
‫בפונקציה מתאימה‪.‬‬
‫יש לחלק כל שאלה לקבצי ‪ c‬ו ‪ h‬נפרדים ‪ ,‬יש לכתוב פונקציות כלליות בקובץ נפרד‪.‬‬
‫מבנה התכנית (הזחות) ותיעוד במידת הצורך‪.‬‬
‫חובה להשתמש בקבועים במקומות המתאימים‪.‬‬
‫יש להשתמש בפונקציות קצרות‪ ,‬כלליות‪ ,‬קריאות ושימושיות‪.‬‬
‫יש להקפיד על בדיקת תקינות קלט‪ ,‬אפשר להניח שאם ביקשו מהמשתמש מספר הוא‬
‫הכניס מספר אך יתכן ולא בטווח הנכון‪.‬‬
‫הפלט צריך להיות כפי שניתן בתרגיל במידה וניתן‪.‬‬
‫קוד קצר‪ ,‬לא מסורבל ויעיל הן מבחינת כתיבתו והן מבחינת ריצת התוכנית‪.‬‬
)‫ נקודות‬20( 1 ‫תרגיל‬

‫ כתוב תוכנית מחשב אשר קולטת קלט מן המשתמש‬.C ‫ של‬SYSTEM ‫ של פקודת‬MAN PAGE ‫קרא את ה‬
.‫ רגילה‬SHELL ‫ומפעילה אותו כאילו הוא פקודת‬

.‫להלן חתיכה קטנה מהקוד‬

char cmd[1024]; // assume 1024 is the max command size.

while (1) {

c = getchar();

buffer[pos++] = c;

if (c == EOF || c == ‘\n’){

// put a terminator the buffer here

system(buffer); // activate the shell command

}
‫יצירת עצי תהליכים‬

‫בכל התכניות יש להשתמש ב ‪ FORK‬ו‪ .WAITPID -‬אין להשתמש באמצעי סינכרון אחרים ‪.‬‬

‫תרגיל ‪) 40 ( 2‬‬

‫עליך לכתוב תכנית אשר מייצרת את עץ תהליכים הבא‪:‬‬

‫‪p1‬‬

‫‪p2‬‬

‫‪p3‬‬

‫‪p..‬‬

‫‪p5‬‬
‫התכנית מקבלת מספר בין ‪ 2‬ל ‪ , 10‬ומדפיסה את ה ‪ PID‬של האב ‪ ,‬לאחר מכן הבן ‪ ,‬הנכד וכו‪.‬למשל‪:‬‬
‫תרגיל ‪) 40 ( 3‬‬

‫כתוב תכנית אשר מייצרת את עץ התהליכים הבא‪:‬‬

‫‪p1‬‬

‫‪p4‬‬
‫‪p2‬‬

‫‪p5‬‬
‫‪p3‬‬ ‫‪p6‬‬

‫כאשר הפלטים אפשריים לתכנית הם‪:‬‬

‫‪p3 p ,p6 p5 p4 p1‬‬

‫‪p3 p6 p2 p5 p4 p1‬‬

You might also like