This project simulates a process table and some system calls. Each process control block has the following information:
- An integer referring to the process ID (pid)
- A String referring to the program being executed
- A String referring to the user name running the program
- An integer referring to the current status. A 0 indicates the program is running, a 1 indicates the process is ready, and a 2 indicates the process is blocked
- Six integers referring to register contents They will contain the following registers:
(a) pc (program counter)
(b) sp (stack pointer)
(c) r0 (register 0)
(d) r1 (register 1)
(e) r2 (register 2)
(f) r3 (register 3)
- fork: makakes a copy of current runnig process
- kill <pid>: kills the process with specified id
- execve <program> <user>: switches the program and username for the currentrly running program to the values specified
- block: blocks the current running process
- yeild: puts the current running process into ready state
- exit: causes the running process to exit
- print: prints the CPU table
- unblock <pid>: moves the blocked process with the specified pid to the ready state