kernel/proc.h

EXTERN struct proc {

} proc [NR_TASKS + NR_PROCS];

NR_TASKS!
NR_PROCS!

struct proc !

EXTERN struct proc {
    int p_...
} proc [NR_TASKS + NR_PROCS];

EXTERN struct proc {
    int p_...1
    int p_...2
    int p_...3
} proc [NR_TASKS + NR_PROCS];

EXTERN struct proc {
    int p_reg [NR_REGS];
    ...
    struct mem_map [NR_SEGS];
    ...
} proc [NR_TASKS + NR_PROCS];

NR_REGS !
NR_TASKS !
NR_PROCS !
NR_SEGS !

  1. NR_REGS
    
  2. NR_TASKS
    
  3. NR_PROCS
    
  4. NR_SEGS
    

OK

EXTERN struct proc {
    int p_reg [NR_REGS];
    ...
    struct mem_map [NR_SEGS];
    int p_pid;
    ...
} proc [NR_TASKS + NR_PROCS];

  1. Register
  2. Speicherabbild
  3. Prozess ID

EXTERN struct proc {
    int p_reg [NR_REGS];
    int *p_sp;                          /* Stack pointer */
    struct pc_psw p_pcpsw;              /* pc und psw bei Interrupt gesichert */
    int p_flags;                        /* P_SLOT, ... nicht flags */
    struct mem_map [NR_SEGS];
    int *p_splimit;                     /* Niedrigster wert fuer den Stack */
    int p_pid;

    real_time user_time;
    real_time sys_time;
    real_time child_utime;
    real_time child_stime;
    real_time p_alarm;

    struct proc *p_callreq;             /* Anfang der Liste aller Prozesse die senden wollen */
    struct proc *p_sendlink;
    message *p_messbuf;                 /* Zeiger auf Puffer fuer die Botschaft */
    int p_getfrom;

    struct proc *p_nextready;
    int p_pending;
} proc [NR_TASKS + NR_PROCS];