Download presentation
Presentation is loading. Please wait.
1
1 מערכות הפעלה הקדמה השקפים בהשראת 'מבוא למערכות הפעלה'/234119/טל כהן + איתן קוך
2
2 רלבנטיות מ"ה היא חלק מכל מערכת ממוחשבת מעניינת מבחינת תֶכן והנדסת תוכנה חשוב להבנה כמשתמשים משלבת בעיות פרקטיות ותיאורטית 'קלאסיות' במדעי המחשב
3
3 מה זה מערכת הפעלה ? מערכת ממוחשבת בדר"כ כוללת חומרה ותוכנה חומרה – מערכת אלקטרו-מכאנית תוכנה - תוכניות ללא תוכנה שתחבר בין השניים...
4
4 מה זה מ"ה מנשק בין החומרה והתוכניות הפשטה (אבסטרקציה) של החומרה עבור כל התהליכים הרצים במערכת. מחביא את הסיבוכיות של החומרה העומדת בבסיס המחשב ונותנת למשתמש נקודת מבט נוחה יותר.
5
5 מבט על Kernel OS
6
6 מטרות מערכת ההפעלה נכונות גבולות (boundaries) על שימוש בזיכרון, תור עדיפויות של תהליכים ושימוש במשאבים נוחות 'מגנה' על המשתמש מהצורך להתעסק עם דרכי ההפעלה של רכיבי החומרה, ניהול הזיכרון וכו'. כל זאת דרך קריאות מערכת (system calls), מספקת אמצעים בסיסיים לתיאום וסנכרון (synchronization primitives), מערכת קבצים, כלים שימושיים שונים.
7
7 מטרות מערכת ההפעלה יעילות שימוש במשאבים, שיתוף משאבים, ריבוי משימות (multitasking) הוגנות (בשיתוף משאבים) בין: משתמשים, משימות קיים tradeoff בין הוגנות ליעילות. (להחלפה תוך כדי ריצה יש תקורה)
8
8 מ"ה מקצה משאבים משתמשים רבים רצים 'במקביל' יע"מ (CPU) זיכרון (RAM, swap, working set, virtual,..) שטח אחסון לקבצים התקני קלט/פלט שעון מ"ה מוצלחת נותנת למשתמשים את האשליה שיש להם את כל המשאבים לעצמם... עד גבול מסוים.
9
9 מ"ה מנהלת אספקטים מסוימים של הזיכרון מנהלת זיכרון מדומה virtual memory – שכבה שממפה זיכרון אליו התוכנית פונה לזיכרון פיזי. כולל שימוש בדיסק, והחלפת 'עמודי' זיכרון בין הזיכרון לדיסק. מספקת הגנה על דפי זיכרון (read-write protection)
10
10 קריאות למ"ה System Calls (syscall) התהליכים של המשתמשים מקבלים את שרותי מ"ה דרך system calls אלה הן פונקציות שניתן לקרוא להן במהלך התוכנית. למשתמש (ולתוכניותיו...) אין גישה ויכולת שינוי של מידע פנימי למערכת ההפעלה, אלא רק דרך קריאה לפונקציות אלה (הגנה על מ"ה) בניגוד לפונקציות אחרות של מ"ה, פונקציות אלה בודקות את תקינותם של הפרמטרים שנשלחים אליהם.
11
11 דוגמאות ל syscalls ב UNIX Process control – fork(), exec(), wait(), abort() File manipulation – chmod(), link(), stat(), creat() Device manipulation – open(), close(), ioctl(), select() Information maintenance – time(), acct(), gettimeofday() Communications – socket(), accept(), send(), recv()
12
12 we use syscalls all the time… #include main() { : printf(…) : } printf(…) { system(write()) // system call } kernel mode user mode
13
13 הגנה (syscalls)
14
14 המבנה של MSDOS DOSI/O Basic I/O System (BIOS) Application program ROM RAM Command DOSI/ODOS device drivers Basic I/O System (BIOS) Application program ROM RAM Commandoper. system
15
15 DOS... DOS נכתב למחשבים עם מיעוט זיכרון, ללא הגדרה מסודרת של מבנה נבנה עבור 8088 – ללא dual mode (אבחנה של החומרה בין מערכת ההפעלה לשאר התוכניות) כל מה שמערכת ההפעלה יכולה לעשות – כך גם התוכניות, למשל : למחוק את מערכת ההפעלה בזמן ריצה! לגשת לרוטינות בסיסיות של החומרה, לגרום לכשל מערכתי וכו'...
16
16 המבנה של UNIX
17
17 רעיון שלא כל כך הצליח (מסיבות היסטוריות/מסחריות): microkernel רק רכיבים קריטיים מוגדרים כ kernel מבחינת ה kernel mode. כל שאר הרכיבים זהים במעמדם לתוכניות משתמש. יותר קל להרחיב, להגן וכו'. בפועל: ה kernel של windows, unix, linux מכיל מיליוני שורות. עדיין, יש מיליוני שורות גם מחוץ ל kernel.
18
18 תהליך תהליך הוא תוכנית שרצה מרכיבי התהליך: תוכנית המידע (data) עליו התוכנית רצה המשאבים הדרושים על ידי התוכנית, כגון זיכרון וקבצים. סטטוס הריצה
19
19 סירוג תהליכים (interleaving) ציר הזמן C B A D תהליכים עוקביםתהליכים מקבילים
20
20 multiprogramming – כשתוכנית א' מחכה לקלט, הרץ תוכנית ב', וכו' multitasking – החלף בין התוכניות מספיק מהר כך שזה ייראה כאילו כולן רצות במקביל... Multiprogramming/ Multitasking
21
21 Multiprogramming/ Multitasking כיצד יכולים מספר תהליכים לחלוק יע"מ אחד? מ"ה מאפשרות זאת על ידי: זִמְנוּן תהליכים (process scheduling) הוגן – לכל תהליך ב jobpool יש הזדמנות לרוץ יע"מ (CPU scheduling) הוגן – הקצאת זמן יע"מ לכל תהליך בזיכרון הגנה: אף תהליך אינו רשאי לשנות את המצב של התהליכים האחרים. לשם כך: ניהול זיכרון, הגנה, זמנון יע"מ, ניהול זכרון, בקרת בו-זמניות (concurrency)
22
22 Multiprogramming CPU I/O Job A Job B time uniprogramming CPU is idle 47% I/O is idle 53% Jobs A and B end at time 36. uniprogramming CPU is idle 47% I/O is idle 53% Jobs A and B end at time 36. Jobs A and B end at time 25. “pure’’ multiprogramming CPU is idle 20% I/O is idle 36% “pure’’ multiprogramming CPU is idle 20% I/O is idle 36% AB Job A JobB Job B CPU I/O time 051015 20 253035051015 20 253035 0510152025303505101520253035 CPU Idle I/O Idle
23
23 מה בעצם מ"ה עושה? loop forever { run the process for a while. stop process and save its state. load state of another process. }
24
24 רציפות מדומה (Virtual continuity) תהליך יכול להיות switched-inאו switched out. מ"ה צריכה לתת את האשליה שהתהליך רץ באופן רציף. החלפת הקשר (Context Switching)
25
25 החלפת הקשר: כשאירוע מתרחש, מ"ה שומרת את המצב של התהליך הפעיל כרגע, ומשחזרת את המצב של התהליך החדש. איזה מידע צריך להישמר ? כל מה שהתהליך הבא עלול לשנות, לדוגמה: Program counter (PC) CPU registers File access pointer(s) Memory (perhaps?)... החלפת הקשר Context switching
26
26 תהליך יכול לעזוב את היע"מ על ידי ביצוע פעולת קלט/פלט (למשל (getchar() כניסה למצב המתנהwait (למשל על ידי סֵמפור) כניסה למצב השעיה (suspend state), למשל ע"י sleep. עזיבת היע"מ = עזיבה של התהליך הקיים וכניסה של תהליך אחר. זמנון והחלפת הקשר
27
27 רב מערכות ההפעלה המודרניות (win-NT, Unix...) מאלצות תהליכים לוותר על היע"מ אם הם נשארים שם זמן רב מדי. מערכות כאלה מממשות זִמְנוּן מֻסדר (preemptive scheduling). לפני win95 גרסאות חלונות לא היו מֻסדרות. כיצד זה עובד ? קוצב קבוע (fixed timer) – כלx יח' זמן מחליפים תהליך קוצב משתנה (variable timer) - מ"ה קובעת אחרי כמה זמן מחליפים תהליך זִמְנוּן מֻסְדָר (preemptive scheduling)
28
28 רב מערכות ההפעלה מספקות מנגנון לקביעת עדיפויות לכל תהליך יש עדיפות בעזרת מנגנון זה, מ"ה יכולה להגיע להוגנות לאילו תהליכים למשל, יש לתת עדיפות גבוהה או נמוכה במיוחד ? עדיפויות
29
29 מחשבי PC סלולאריים / palm מערכות מבוזרות מערכות 'מוטבעות' (embedded) מערכות הפעלה בכל מקום...
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.