Xv6 homework 6

From Computer History Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Since this has gone missing...

Lecture 6 homework: xv6 and Interrupts and Exceptions

Handed out: Wednesday, September 21, 2005
Due: Wednesday, September 28, Oct 3, 2005
Read: trapasm.C, trap.c, syscall.c, vectors.S, usys.c of xv6. Skim lapic.c, ioapic.c, and picirq.c

Hand-In Procedure

You are to turn in this homework during lecture. Please write up your answers to the exercises below and hand them in to a 6.828 staff member at the beginning of the lecture.

Introduction

Try to understand trapasm.C, trap.c, syscall.c, vectors.S, usys.c of xv6. You will need to consult:

Chapter 5 of IA-32 Intel Architecture Software Developer's Manual, Volume 3: System programming guide; you can skip sections 5.7.1, 5.8.2, and 5.12.2. Be aware that terms such as exceptions, traps, interrupts, faults and aborts have no standardized meaning.

Chapter 9 of the 1987 i386 Programmer's Reference Manual also covers exception and interrupt handling in IA32 processors.

Assignment: In xv6, set a breakpoint at the beginning of syscall() to catch the very first system call. What values are on the stack at this point? Turn in the output of print-stack 35 at that breakpoint with each value labeled as to what it is (e.g., saved %ebp for trap, trapframe.eip, etc.).

This completes the homework.