I am trying to write my own Unix compliant (SUSv4) OS - Just a hobby OS, nothing serious. While going through the standard, I couldn't find any explicit information on process states. What I could find was (excluding the real-time considerations)-
Quote:
# 3.444 Zombie Process
A process that has terminated and that is deleted when its exit status has been reported to another process which is waiting for that process to terminate.
#4.1.4 Scheduling Policy
A scheduling policy affects process or thread ordering:
- When a process or thread is a running thread and it becomes a blocked thread
- When a process or thread is a running thread and it becomes a preempted thread
- When a process or thread is a blocked thread and it becomes a runnable thread
- When a running thread calls a function that can change the priority or scheduling policy of a process or thread
- In other scheduling policy-defined circumstances
From this it can be inferred that the following process states might exist-
RUNNING, BLOCKED, PREEMPTED, RUNNABLE, ZOMBIE
I was wondering whether the Unix specification gives something more detailed?
If not, does any implementation of the above criteria meet the specification? Or is there something more?