Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
מערכות הפעלה הקדמה השקפים בהשראת 'מבוא למערכות הפעלה'/234119/טל כהן +איתן קוך 1 רלבנטיות מ"ה היא חלק מכל מערכת ממוחשבת 2 מעניינת מבחינת ֶתכן והנדסת תוכנה חשוב להבנה כמשתמשים משלבת בעיות פרקטיות ותיאורטית 'קלאסיות' במדעי המחשב מה זה מערכת הפעלה ? מערכת ממוחשבת בדר"כ כוללת חומרה ותוכנה חומרה – מערכת אלקטרו-מכאנית תוכנה -תוכניות ללא תוכנה שתחבר בין השניים... 3 מה זה מ"ה 4 מנשק בין החומרה והתוכניות הפשטה (אבסטרקציה) של החומרה עבור כל התהליכים הרצים במערכת. מחביא את הסיבוכיות של החומרה העומדת בבסיס המחשב ונותנת למשתמש נקודת מבט נוחה יותר. מבט על OS applications software utilities systems software Kernel Operating system hardware components CPU device device ... device memory 5 מטרות מערכת ההפעלה נכונות גבולות ) (boundariesעל שימוש בזיכרון ,תור עדיפויות של תהליכים ושימוש במשאבים נוחות 'מגנה' על המשתמש מהצורך להתעסק עם דרכי ההפעלה של רכיבי החומרה ,ניהול הזיכרון וכו'. 6 כל זאת דרך קריאות מערכת ),(system calls מספקת אמצעים בסיסיים לתיאום וסנכרון ),(synchronization primitives מערכת קבצים, כלים שימושיים שונים. מטרות מערכת ההפעלה יעילות הוגנות (בשיתוף משאבים) 7 שימוש במשאבים ,שיתוף משאבים ,ריבוי משימות ()multitasking בין :משתמשים ,משימות קיים tradeoffבין הוגנות ליעילות( .להחלפה תוך כדי ריצה יש תקורה) מ"ה מקצה משאבים משתמשים רבים רצים 'במקביל' יע"מ ()CPU זיכרון )(RAM, swap, working set, virtual,.. שטח אחסון לקבצים התקני קלט/פלט שעון מ"ה מוצלחת נותנת למשתמשים את האשליה שיש להם את כל המשאבים לעצמם ...עד גבול מסוים. 8 מ"ה מנהלת אספקטים מסוימים של הזיכרון 9 מנהלת זיכרון מדומה – virtual memoryשכבה שממפה זיכרון אליו התוכנית פונה לזיכרון פיזי .כולל שימוש בדיסק, והחלפת 'עמודי' זיכרון בין הזיכרון לדיסק. מספקת הגנה על דפי זיכרון )(read-write protection קריאות למ"ה )System Calls (syscall התהליכים של המשתמשים מקבלים את שרותי מ"ה דרך system calls אלה הן פונקציות שניתן לקרוא להן במהלך התוכנית. למשתמש (ולתוכניותיו )...אין גישה ויכולת שינוי של מידע פנימי למערכת ההפעלה ,אלא רק דרך קריאה לפונקציות אלה (הגנה על מ"ה) בניגוד לפונקציות אחרות של מ"ה ,פונקציות אלה בודקות את תקינותם של הפרמטרים שנשלחים אליהם. 10 UNIX בsyscalls דוגמאות ל Process control fork(), exec(), wait(), abort() – File manipulation chmod(), link(), stat(), creat() • – Communications socket(), accept(), send(), recv() • – Information maintenance time(), acct(), gettimeofday() • – Device manipulation open(), close(), ioctl(), select() • – 11 • we use syscalls all the time… #include <stdio.h> printf(…) { main() { : printf(…) : } system(write()) // system call } user mode kernel mode 12 (syscalls) הגנה system call table User Program system call entry 1 2 read() 5 1. system service is requested (system call) ... open() ... 3 4 system call exit read() write() system call routines 2. switch mode; verify arguments and service 3. branch to the service function 4. return from service function; switch mode 5. return from system call Operating System 13 MSDOS המבנה של Application program oper. Command system RAM ROM device drivers DOS I/O Basic I/O System (BIOS) 14 DOS... DOSנכתב למחשבים עם מיעוט זיכרון ,ללא הגדרה מסודרת של מבנה נבנה עבור – 8088ללא ( dual modeאבחנה של החומרה בין מערכת ההפעלה לשאר התוכניות) כל מה שמערכת ההפעלה יכולה לעשות – כך גם התוכניות, למשל : 15 למחוק את מערכת ההפעלה בזמן ריצה! לגשת לרוטינות בסיסיות של החומרה ,לגרום לכשל מערכתי וכו'... UNIX המבנה של user program libraries user level system/kernel level system call interface file system process control inter-process communication buffer cache char block scheduling memory management device drivers hardware control 16 רעיון שלא כל כך הצליח (מסיבות היסטוריות/מסחריות)microkernel : רק רכיבים קריטיים מוגדרים כ kernelמבחינת ה kernel .mode כל שאר הרכיבים זהים במעמדם לתוכניות משתמש. יותר קל להרחיב ,להגן וכו'. בפועל :ה kernelשל windows, unix, linuxמכיל מיליוני שורות .עדיין ,יש מיליוני שורות גם מחוץ ל .kernel 17 תהליך תהליך הוא תוכנית שרצה מרכיבי התהליך: 18 תוכנית המידע ) (dataעליו התוכנית רצה המשאבים הדרושים על ידי התוכנית ,כגון זיכרון וקבצים. סטטוס הריצה סירוג תהליכים )(interleaving תהליכים מקבילים C ציר הזמן 19 תהליכים עוקבים A D B Multiprogramming/ Multitasking – multiprogrammingכשתוכנית א' מחכה לקלט ,הרץ תוכנית ב' ,וכו' – multitaskingהחלף בין התוכניות מספיק מהר כך שזה ייראה כאילו כולן רצות במקביל... 20 Multiprogramming/ Multitasking כיצד יכולים מספר תהליכים לחלוק יע"מ אחד? מ"ה מאפשרות זאת על ידי: זִ ְמנּון תהליכים ( )process schedulingהוגן – לכל תהליך ב jobpoolיש הזדמנות לרוץ יע"מ ) (CPU schedulingהוגן – הקצאת זמן יע"מ לכל תהליך בזיכרון הגנה :אף תהליך אינו רשאי לשנות את המצב של התהליכים האחרים. לשם כך: 21 ניהול זיכרון ,הגנה ,זמנון יע"מ ,ניהול זכרון ,בקרת בו-זמניות )(concurrency Multiprogramming Job A Job B uniprogramming CPU Jobs A and B end at time 36. CPU is idle 47% I/O is idle 53% I/O 0 5 10 15 20 25 A 30 35 time B “pure’’ multiprogramming CPU Idle Job A CPU Job B Jobs A and B end at time 25. CPU is idle 20% I/O is idle 36% I/O Idle I/O Job A Job B 22 0 5 10 15 20 25 30 35 time ?מה בעצם מ"ה עושה loop forever { run the process for a while. stop process and save its state. load state of another process. } 23 רציפות מדומה )(Virtual continuity תהליך יכול להיות switched-inאו .switched out מ"ה צריכה לתת את האשליה שהתהליך רץ באופן רציף. החלפת הקשר ()Context Switching 24 החלפת הקשר Context switching החלפת הקשר :כשאירוע מתרחש ,מ"ה שומרת את המצב של התהליך הפעיל כרגע ,ומשחזרת את המצב של התהליך החדש. איזה מידע צריך להישמר ? כל מה שהתהליך הבא עלול לשנות, לדוגמה: )Program counter (PC CPU registers )File access pointer(s )?Memory (perhaps ... 25 זמנון והחלפת הקשר תהליך יכול לעזוב את היע"מ על ידי ביצוע פעולת קלט/פלט (למשל )((getchar כניסה למצב המתנה ( waitלמשל על ידי סֵ מפור) כניסה למצב השעיה ) ,(suspend stateלמשל ע"י .sleep עזיבת היע"מ = עזיבה של התהליך הקיים וכניסה של תהליך אחר. 26 זִ ְמנּון מֻ ְס ָדר ()preemptive scheduling רב מערכות ההפעלה המודרניות ) (win-NT, Unix...מאלצות תהליכים לוותר על היע"מ אם הם נשארים שם זמן רב מדי. מערכות כאלה מממשות זִ ְמנּון מֻ סדר ).(preemptive scheduling לפני win95גרסאות חלונות לא היו מֻ סדרות. כיצד זה עובד ? 27 קוצב קבוע ) – (fixed timerכל xיח' זמן מחליפים תהליך קוצב משתנה ) - (variable timerמ"ה קובעת אחרי כמה זמן מחליפים תהליך עדיפויות רב מערכות ההפעלה מספקות מנגנון לקביעת עדיפויות לכל תהליך יש עדיפות בעזרת מנגנון זה ,מ"ה יכולה להגיע להוגנות לאילו תהליכים למשל ,יש לתת עדיפות גבוהה או נמוכה במיוחד ? 28 מערכות הפעלה בכל מקום... מחשבי PC סלולאריים palm / מערכות מבוזרות מערכות 'מוטבעות' )(embedded 29