PA1
- make a thread-based system call / thread_create() thread_exit() thread_join() gettid()
PA2
- implement priority-based scheduler, which is running when a process is exiting, sleeping, or yieding resource, based on nice value (use round-robin when tied)
PA3
- implement lazy allocation by handling page fault