הפרעות ופסיקות (exceptions & interrupts) מבוסס ברובו על פרק 8 ב Computer Systems / Bryant & O’Hallaron.

Slides:



Advertisements
Similar presentations
1 Exceptions, Interrupts & Traps Operating System Hebrew University Spring 2007.
Advertisements

Carnegie Mellon 1 Exceptional Control Flow: Exceptions and Processes /18-243: Introduction to Computer Systems 13 th Lecture, June 15, 2011 Instructors:
Exceptional Control Flow Processes Today. Control Flow Processors do only one thing: From startup to shutdown, a CPU simply reads and executes (interprets)
University of Washington Today Midterm grades posted  76. HW 3 due Lab 4 fun! 1.
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 פסיקות  סוגי פסיקות  איך מערכת ההפעלה מטפלת בפסיקות  דוגמא : קלט בעזרת פסיקות.
מערכות הפעלה תרגול 9 – פסיקות ב-Linux. מערכות הפעלה - תרגול 92 (c) ארז חדד 2003 תוכן התרגול מבוא לפסיקות ב-Linux פסיקות ב-IA32:  סוגי הפסיקות  טבלת.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
מערכות הפעלה תרגול 9 – פסיקות ב-Linux. מערכות הפעלה - תרגול 92 (c) ארז חדד 2003 תוכן התרגול מבוא לפסיקות ב-Linux פסיקות ב-IA32:  סוגי הפסיקות  טבלת.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
Exceptional Control Flow Part I September 22, 2008 Topics Exceptions Process context switches Creating and destroying processes class11.ppt ,
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
1 מבוא למדעי המחשב מבנה של תכנית. 2 מבנה של תכנית – חלוקה לקבצים  תכנית בשפת C הינה אוסף של הגדרות של:  משתנים (חיצוניים)  פונקציות  ניתן לפרוש תכנית.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
Exceptional Control Flow Part I Topics Exceptions Process context switches Creating and destroying processes class14.ppt CS 123.
מערכות הפעלה תרגול 1 - מבוא. מערכות הפעלה - תרגול 12 (c) ארז חדד 2003 ברוכים הבאים לקורס מערכות הפעלה! אדמיניסטרציה סקירה בסיסית של ארכיטקטורת IA32 (80386+)
Exceptional Control Flow Part I Topics Exceptions Process context switches Creating and destroying processes.
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
מערכות הפעלה תרגול 1 - מבוא. מערכות הפעלה - תרגול 12 (c) ארז חדד 2003 ברוכים הבאים לקורס מערכות הפעלה! אדמיניסטרציה סקירה בסיסית של ארכיטקטורת IA32 (80386+)
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
מה היום ? - - חזרה מהירה. - קריאה וכתיבה לקבצים. - בניית תוכנית כתיבה low-level - בניית ערוץ גלובלי והדגמה מול חומרה - low-level DAQ, פולימורפיזם וטריגר.
Exceptional Control Flow Part II Topics Process Hierarchy Signals CS213.
1 ׃1998 Morgan Kaufmann Publishers פקודת ה- jump 4 bits 26 bits 2 bits 00 : כתובת קפיצה במילים : כתובת קפיצה בבתים … …
Exceptional Control Flow Topics Exceptions Process hierarchy Shells Signals CS 105 “Tour of the Black Holes of Computing”
Fabián E. Bustamante, Spring 2007 Exceptional Control Flow Part I Today Exceptions Process context switches Creating and destroying processes Next time.
Exceptional Control Flow Part I March 4, 2004 Topics Exceptions Process context switches Creating and destroying processes class16.ppt “The course.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
CSC 2405 Computer Systems II Exceptions Mini-Lecture Traps & Interrupts.
System-level programming II: Processes Feb 24, 2000 Topics User-level view of processes Exceptions Context switches Higher level control flow mechanisms.
University of Amsterdam Computer Systems – Processes Arnoud Visser 1 Computer Systems Processes.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
Exceptional Control Flow Part I Topics Exceptions Process context switches Creating and destroying processes class16.ppt.
Exceptional Control Flow Topics Exceptions except1.ppt CS 105 “Tour of the Black Holes of Computing”
University of Washington Exceptional Control Flow The Hardware/Software Interface CSE351 Winter 2013.
Exceptional Control Flow
Exceptional Control Flow I March 12, 2002
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
Exceptional Control Flow II Oct 23, 2001 Topics Exceptions Process context switches class17.ppt “The course that gives CMU its Zip!”
University of Washington Roadmap 1 car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Car c = new Car(); c.setMiles(100);
מבוא לטכנולוגיות מחשב מבוא
Carnegie Mellon 1 CMSC os1: OS and Exceptions Chapter 8.1 Instructors: Haryadi Gunawi Henry Hoffmann Matthew Wachs.
Exceptional Control Flow
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Exceptional Control Flow & Processes
Exceptional Control Flow
Exceptional Control Flow
Exceptional Control Flow
Exceptional Control Flow Oct 24, 2000
Overview of today’s lecture
Exceptional Control Flow Part I
Exceptional Control Flow
Instructors: Anthony Rowe, Seth Goldstein and Gregory Kesden
Exceptional Control Flow
Exceptional Control Flow: System Calls, Page Faults etc.
Exceptional Control Flow
Exceptional Control Flow
מערכות הפעלה תרגול9 – פסיקות ב-Linux.
Exceptional Control Flow I
Exceptional Control Flow Part I Mar. 11, 2003
Exceptional Control Flow
Exceptional Control Flow Part I
Exceptions Control Flow
Exceptional Control Flow
CS201 - Lecture 17 Exceptions
Exceptional Control Flow & Processes October 2, 2008
Exceptional Control Flow
Exceptional Control Flow
Presentation transcript:

הפרעות ופסיקות (exceptions & interrupts) מבוסס ברובו על פרק 8 ב Computer Systems / Bryant & O’Hallaron

– 2 – התקדמות התוכנית Control Flow)) inst 1 inst 2 inst 3 … inst n המחשב עושה רק דבר אחד: מהדלקה לכיבוי, היע"ם מבצע את מחזור הפקודה: קורא פקודה מפרש ומבצע אותה Physical control flow Time

– 3 – נאפשר שינוי בהתקדמות התוכנית עד עכשיו ראינו מנגנונים לשינוי ההתקדמות כגון פקודות jmp שונות. אבל כיצד המחשב יגיב לשינויים: הגעת מידע מהדיסק / בקר רשת הגעת מידע מהדיסק / בקר רשת חלוקה ב 0 חלוקה ב 0 לחיצה על ctrl – c לחיצה על ctrl – c נדרשת תמיכה בהתקדמות לא 'סטנדרטית' (exceptional).

– 4 – Exceptional Control Flow מנגנונים להתקדמות חריגה קיימים בכל הרמות של המחשב. ברמה הנמוכה: חריגות / פסיקות שינוי סדר הפעולות כתגובה לאירוע כלשהו שילוב של חומרה עם תוכנה ברמה גבוהה יותר: החלפת הקשר אותות (signals) מספר דברים נוספים שלא נלמד כגון Nonlocal jumps (setjmp/longjmp)

– 5 – נזכור את מבנה המערכת: Local/IO Bus Memory Network adapter Network adapter IDE disk controller IDE disk controller Video adapter Video adapter Display Network Processor Interrupt controller Interrupt controller SCSI controller SCSI controller SCSI bus Serial port controller Serial port controller Parallel port controller Parallel port controller Keyboard controller Keyboard controller Keyboard Mouse Printer Modem disk CDROM

– 6 – חריגות חריגה היא העברת השליטה למ"ה כתגובה לאירוע כלשהו. User ProcessOS exception exception processing by exception handler exception return (optional) event current next

– 7 – וקטורים של פסיקות Interrupt Vectors לכל סוג אירוע יש מספר חריגה ייחודי k מהווה את האינדקס לתוך jump table (a.k.a., interrupt vector) הכניסה ה k בטבלה מצביעה על פונקציה שנקראת הexception handler. פונקציה זאת נקראת כל פעם שאירוע k קורה. interrupt vector n-1 code for exception handler 0 code for exception handler 0 code for exception handler 1 code for exception handler 1 code for exception handler 2 code for exception handler 2 code for exception handler n-1 code for exception handler n-1... Exception numbers

– 8 – חריגות אסינכרוניות (פסיקות). נגרם על ידי אירועים חיצוניים למעבד. כלומר, יכול להגיע בזמן כלשהו, לאו דווקא אחרי ביצוע פקודה וכו'. אחרי הפעלת הפונקציה המטפלת (handler) חוזרים לפקודה הבאה. דוגמאות פסיקות I/O הקשה על ctl-c הגעת חבילת מידע (packet) מהרשת הגעת מידע מהדיסק Hard reset interrupt הקשה על reset Soft reset interrupt לחיצה על ctl-alt-delete

– 9 – חריגות סינכרוניות נוצר כתוצאה מהפעלת פקודה מלכודות (Traps) מכוון דוגמאות: system calls, breakpoint traps (while debugging), … לאחר הטיפול מחזיר שליטה לפקודה הבאה

– 10 – חריגות סינכרוניות (המשך) Faults לא מכוון, אבל ייתכן שניתן לתיקון למשל: page faults (recoverable), protection faults (unrecoverable). אם ניתן לתקן: חזרה על הפקודה. אם לא: מפסיק את התוכנית. Aborts לא מכוון, ולא ניתן לתיקון. דוגמאות: parity error, machine check מפסיק את התוכנית

– 11 – מתי חריגות נבדקות? אחרי כל סיום ביצוע פקודה, נבדק אם יש חריגה ממתינה (למעשה, חלק ממחזור הפקודה) אחרי כל סיום ביצוע פקודה, נבדק אם יש חריגה ממתינה (למעשה, חלק ממחזור הפקודה) האם ניתן לכבות את הבדיקה ? האם ניתן לכבות את הבדיקה ? לרוב המעבדים יש שני סוגי פסיקות: nonmaskable: שמור עבור מאורעות דחופים כמו חריגות זיכרון מסוכנות maskable: ניתן לכיבוי (ע"י המעבד) למשל לפני ביצוע סידרת פקודות קריטיות

– 12 – הרעיון מאחורי faults ברי-תיקון ביצוע הוראות מסוימות יכול להיכשל המעבד מאפשר למ"ה, על-ידי טיפול בפסיקה, לתת להוראות "הזדמנות שנייה" להתבצע ההוראה נכשלה ==> פסיקה מערכת-ההפעלה מטפלת בפסיקה מריצים שוב אותה ההוראה (שהפעם אמורה להצליח).

– 13 – דוגמה למלכודת User ProcessOS exception Open file return int פתיחת קובץ המשתמש קורא לפונקצית מערכת open(filename, options) מ " ה חייבת למצוא או ליצור קובץ, ולהגדיר לקריאה / כתיבה.

– 14 – דוגמה Fault #1 User ProcessOS page fault Create page and load into memory return event movl גישה לזיכרון משתמש כותב למקום בזיכרון. הדף הרלבנטי נמצא כרגע בדיסק. הhandler מעלה את הדף לזיכרון. חוזר לפקודה המקורית. הפקודה עכשיו מצליחה. כלומר, קיבלנו הזדמנות שנייה. int a[1000]; main () { a[500] = 13; }

– 15 – דוגמה Fault #2 User ProcessOS page fault Detect invalid address event movl גישה לזיכרון המשתמש כותב למיקום לא חוקי בזיכרון נשלח סיגנל SIGSEG לתהליך. התהליך יוצא עם “segmentation fault”. int a[1000]; main () { a[5000] = 13; } Signal process

– 16 – Signals אותות (Signals) אירועי תוכנה, נשלחים על ידי התהליכים + מ"ה נשלח מתהליך/מ"ה לתהליך אחר לכל אות יש מספר ייחודי. לא נושא אינפורמציה נוספת. Num.NameDefaultDescription 2SIGINTTerminate Interrupt from keyboard (cntl-c) 9SIGKILLTerminate Kill program (cannot override or ignore) 11SIGSEGV Terminate & Dump Segmentation violation 14SIGALRMTerminate Timer signal 17SIGCHLDIgnore Child stopped or terminated

– 17 – טיפול באותות לכל סוג של אות יש טיפול 'ברירת מחדל' למשל לסיים את התהליך ניתן לשנות... פקודת signal(sig, handler) סיגנל מסוג sig יפעיל מעתה את פונקציה handler. Handler תחזור לנקודה בה קרה האות. void int_handler(int sig) { printf("received signal %d\n", sig); exit(0); } main() { signal(SIGINT, int_handler);... }

– 18 – אותות... אין תור של אותות לכל סוג של אות, יש ביט יחיד האומר האם האות הזה קרה.... גם אם מספר תהליכים שלחו אותו

– 19 – תוכנית שמגיבה לאותות חיצוניים (ctrl-c) #include static void handler(int sig) { printf("You think hitting ctrl-c will stop me?\n"); sleep(2); printf("Well..."); fflush(stdout); sleep(1); printf("OK\n"); exit(0); } main() { signal(SIGINT, handler); /* installs ctl-c handler */ while(1) { }

– 20 – מי מריץ את שגרת הטיפול בפסיקה ? הפסיקה קורה בזמן שתהליך כלשהו רץ. הפסיקה אינה בהכרח קשורה לתהליך זה. למשל, נגרמה על-ידי חומרה שתהליך אחר משתמש בה. קוד הטיפול בפסיקה שייך ל- kernel ולא לתהליך. ועדיין, קוד הטיפול מורץ בהקשר של התהליך הנוכחי... לא מתבצעת החלפת תהליכים כדי לטפל בפסיקה! בדרך-כלל, קוד הטיפול בפסיקה לא מתייחס כלל לתהליך הנוכחי, אלא למבני נתונים גלובליים של המערכת.