-
What is the difference between the code that was used to run programs in project 1 and project 2?
-
How does a user program (as a file on the disk) become a thread?
-
When you run the
args-none
test, how come the user programs does not print anything? -
Change the *esp pointer to ignore command line args for now (change line 441 in process.c to
*esp = PHYS_BASE - 12;
) and add an infinite loop to process_wait, what is the output now and why? -
In the previous question, we saw that a system call occurred. Trace
args.c
and identify how the code reached thesyscall_handler
.-
Which line in
args.c
calls functions that make a syscall? -
Where is the code on the user side that invokes the syscall using an interrupt (trap)?
-
-
Run the args-none user program with GDB and put a breakpoint at
syscall.c
line 18. Continue the code to the breakpoint. Then using the ‘x’ command in GDB (usehelp x
to view manual for the command), identify the items on the stack frame. You should refer to thewrite
syscall specification in the project 2 handout.