robert-w-gries / rxinu

Rust implementation of Xinu educational operating system

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Setup pre-emption

robert-w-gries opened this issue · comments

  • Project 4 - #33
    • include/proc.h
    • include/queue.h
    • system/main.c - A "main program" for testing scheduling.
    • system/queue.c - An implementation of the queue data structure.
    • system/create.c - A partial function for creating a new process.
    • system/ctxsw.S - An incomplete assembly routine for switching process contexts.
    • system/ready.c - A function for adding a process to the ready queue.
    • system/resched.c - The primary scheduling code, equivalent to yield().
    • system/getstk.c - A rudimentary function for dynamically allocating new stacks for new processes.
  • Add PIT device driver for context switch - #44
  • Implement syscalls
    • Create - #33
    • Kill
    • Yield
    • Resume/Suspend
      * [ ] Arbitrary number of arguments
      * [ ] Enter Ring3

I decided to postpone usermode. There's higher priority items to implement first