Nachos Project Assignment 2 CPU scheduling If you

  • Slides: 7
Download presentation
Nachos Project Assignment 2 CPU scheduling

Nachos Project Assignment 2 CPU scheduling

If you still have trouble to install Nachos • https: //code. google. com/p/damody/downloads/detail? name=mipsdecstation.

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

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

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 •

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

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

More details • http: //puremonkey 2010. blogspot. tw/2013/05/nachos-40 -nachossystem-call. html