[ C++ RCOS Home | RCOS.java Home | RCOS Home | David's Home ]

RCOS C++ CRC for class pcb

Name:

pcb

Comment:

Process Control Block - built when a process is created (forked off) contains all details of process context.

Collaborators:

Responsibilities:

 typedef struct pcb {
    char   *pszName;            // user name for process, if any
    INT16   nPriority,          // process priority
            nQuantum;           // max permissable ticks per scheduling
    UINT16  uPid,               // unique ID for process (PID)
            uPidp,              // parent PID of process
            uIP, uSP, uBP,      // Instruction, Stack and Base pointers
            uStatus,            // current status
            uDevCnt;            // count of devices open by process
    PMSG    pReply;             // message associated with wake-up
    UINT32  lStarted,           // time process started/created (mS).
            luTicks,            // amount of processor time in user mode
            leTicks,            // time consumed in executive mode
            lCode;              // 32 bit instruction at IP for animator
    LnDrv  *pDev;               // pointer line protocol driver
    UINT16  arrDev[MAX_DEV];    // Devices needed before process can start
    UINT16  uTos;               // fetched values at top of stack
    UINT16  uSemOpen,           // Bit map of semaphore ID's opened by PID
            uSemSet,            //   map of semaphores set by this process
            uSemWait;           //   map of semaphores we are waiting on
    DblList Share;              // List of open shared memory block ID's
    FsIface *pFile;             // File sysem Interface package
  } PCB, *PPCB;