Processes & ECF
CS 351: Systems Programming Michael Saelee <lee@iit.edu>
Processes & ECF CS 351: Systems Programming Michael Saelee - - PowerPoint PPT Presentation
Processes & ECF CS 351: Systems Programming Michael Saelee <lee@iit.edu> Computer Science Science Agenda - Definition & OS responsibilities - Exceptional control flow - synch vs. asynch exceptions - exception handling
CS 351: Systems Programming Michael Saelee <lee@iit.edu>
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
main() { fnA(); } fnA() { fnB(); } fnB() { loop { } }
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
Time Process A Process B Process C
Computer Science Science
Time Process A Process B Process C
Computer Science Science
Computer Science Science
Computer Science Science
Process A Process B User code Kernel code User code Kernel code User code Time Context switch Context switch read Disk interrupt Return from read
Need new diagram that shows context switches triggered by the clock interrupt.
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
int main() { while (1) { printf("hello world!\n"); } return 0; }
Computer Science Science
int main() { while (1) { printf("hello world!\n"); } return 0; }
logical c.f.
Computer Science Science
int main() { while (1) { printf("hello world!\n"); } return 0; }
logical c.f. exception!
Computer Science Science
int main() { while (1) { printf("hello world!\n"); } return 0; }
logical c.f. exception!
Computer Science Science
int main() { while (1) { printf("hello world!\n"); } return 0; }
logical c.f. exception!
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
char *str = "hello world"; int len = strlen(str); write(1, str, len); mov edx, len mov ecx, str mov ebx, 1 mov eax, 4 ; syscall #4 int 0x80 ; trap to OS
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
int main() { while (1) { printf("hello world!\n"); } return 0; } hello world! hello world! hello world! hello world! ^C $
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
1 2 . . . int # interrupt vector
Computer Science Science
Computer Science Science
Computer Science Science
Computer Science Science
trap
Computer Science Science
handler trap
Computer Science Science
handler
Computer Science Science
Computer Science Science
handler trap
Computer Science Science
handler
Computer Science Science
Computer Science Science