Nachos Project Assignment 2 CPU scheduling If you
- Slides: 7
Nachos Project Assignment 2 CPU scheduling
If you still have trouble to install Nachos • https: //code. google. com/p/damody/downloads/detail? name=mipsdecstation. linux-xgcc. gz
Part 1 -System call • Implement a system call – Sleep() • userprog/syscall. h • Define a system call number of Sleep • test/start. s • Prepare registers for Sleep • userprog/exception. cc • Add a new case for Sleep
System call: start. s • Assembly language assist to make system calls to the Nachos kernel • http: //www. mrc. uidaho. edu/mrc/people/jff/digital/MIPSir. html • Take System call Sleep as an example. globl Sleep. ent Sleep Print. Int: addiu $2, $0, SC_Sleep // put system call number in register 2 syscall /* all parameter of this system call will be stored in register 4, 5, 6, and 7 by MIPS machine automatically. */. end Print. Int
Part 2 -Non-preemptive shortest job first scheduler • Nachos default scheduler: Round Robin • Shortest job first • n+1 = tn + (1 - ) n • n time of the nth predicate CPU burst • tn time of the nth actual CPU burst • Design several test case to proof your result • E-mail your code and presentation files(report) to TA
Non-preemptive shortest job first scheduler • thread/alarm. cc, thread/alarm. h • Implement Wait. Until(int x) to handle sleep(int t) • Add a class to management the threads which are sleeping Begin Running Per timer interrupt: 1. Record actual CPU burst 2. Wake up time up threads Invoke Sleep(x) 1. Set next predicted CPU burst 2. Insert this thread to Sleeping thread lists 3. Invoke thread->Sleep
More details • http: //puremonkey 2010. blogspot. tw/2013/05/nachos-40 -nachossystem-call. html