Link Search Menu Expand Document

The process struct

The skeleton definition of struct process is copied below for your convenience.

/* The process control block for a given process. Since
   there can be multiple threads per process, we need a separate
   PCB from the TCB. All TCBs in a process will have a pointer
   to the PCB, and the PCB will have a pointer to the main thread
   of the process, which is `special`. */

struct process {
  /* Owned by process.c. */
  uint32_t* pagedir; /* Page directory. */
  char process_name[16]; /* Name of the main thread */
  struct thread* main_thread; /* Pointer to main thread */