Download OS1_intro

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
‫מערכות הפעלה‬
‫הקדמה‬
‫השקפים בהשראת 'מבוא למערכות הפעלה'‪/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‬‬
Related documents
סיכום לסיכום
סיכום לסיכום
L12_power_2015
L12_power_2015