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