Both are process tables and both contain entries for every running process.
Essentially the two tables are just copies, but they may contain some
different fields. The main process table is of course managed by the kernel.
The reason there exists a second process table in the PM (Process Manager)
is that the PM is running in user space. From there it can't access the
kernel datastructures (directly), but it needs access to this information
for fork's, exec's, etc. So for performance reasons the table is duplicated
(otherwise the PM would have to use message passing for every single access
to the process table). However, this also means that any update to one of
the two tables should be propagated to the other.
Peter Boonstoppel