Skip to content

Commit

Permalink
looked up getpinfo
Browse files Browse the repository at this point in the history
  • Loading branch information
madraven05 committed Nov 24, 2020
1 parent 9e9fa53 commit f6bbc09
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 35 deletions.
39 changes: 32 additions & 7 deletions getPinfo.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,50 @@
// #include "proc.h"
// struct pstat pstat_var;
#include "types.h"
#include "defs.h"
#include "param.h"
#include "memlayout.h"
#include "stat.h"

// #include "defs.h"
#include "mmu.h"
#include "x86.h"
#include "param.h"

// #include "memlayout.h"

// #include "x86.h"
#include "proc.h"
#include "spinlock.h"
#include "user.h"

#define NULL ((void *)0)
// #include "user.h"
// #include <stdlib.h>

int
main(int argc, char *argv[])
{
struct pstat* pstat_var = NULL;
struct pstat pstat_var;

// cprintf("upar\n");
// pstat_var = (struct pstat*)malloc(sizeof(struct pstat*));
// cprintf("lower\n");
getpinfo(pstat_var);
getpinfo(&pstat_var);
printf(1, "pid \t name \t\t state \t\t priority \t\t ticks \n");
printf(1, "%d", pstat_var.state[1]);
for(int i=0;i<64;i++){
if(pstat_var.inuse[i] == 1){
if(pstat_var.state[i] == SLEEPING)
printf(1, "\n%d \t %s \t\tSLEEPING \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);
else if(pstat_var.state[i] == RUNNING)
printf(1, "\n%d \t %s \t\tRUNNING \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);
else if(pstat_var.state[i] == RUNNABLE)
printf(1, "\n%d \t %s \t\tRUNNABLE \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);
else if(pstat_var.state[i] == ZOMBIE)
printf(1, "\n%d \t %s \t\tZOMBIE \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);
//else if(pstat_var.state[i] == UNUSED)
//cprintf("%d \t %s \t\tUNUSED \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);
else if(pstat_var.state[i] == EMBRYO)
printf(1, "\n%d \t %s \t\t EMBRYO \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);

}
}

exit();
}
61 changes: 33 additions & 28 deletions proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -732,7 +732,7 @@ kill(int pid)
if(p->state == SLEEPING)
p->state = RUNNABLE;

//pstat_var.inuse[i] = 0;
//pstat_xyz->inuse[i] = 0;
release(&ptable.lock);
return 0;
}
Expand Down Expand Up @@ -807,39 +807,44 @@ getpinfo(struct pstat* pstat_xyz)
struct proc *proc_pstat;
for(proc_pstat = ptable.proc; proc_pstat < &ptable.proc[NPROC]; proc_pstat++){

pstat_var.inuse[i] = 1;
pstat_var.pid[i] = proc_pstat->pid;
pstat_var.priority[i] = proc_pstat->priority;
pstat_var.state[i] = proc_pstat->state;
safestrcpy(pstat_var.name[i],proc_pstat->name, sizeof(proc_pstat->name));
if (proc_pstat->state != UNUSED)
{
pstat_xyz->inuse[i] = 1;
pstat_xyz->pid[i] = proc_pstat->pid;
pstat_xyz->priority[i] = proc_pstat->priority;
pstat_xyz->state[i] = proc_pstat->state;
safestrcpy(pstat_xyz->name[i],proc_pstat->name, sizeof(proc_pstat->name));
int j;
for(j = 0; j < 4; ++j){
pstat_var.ticks[i][j] = proc_pstat->myticks[j];
pstat_xyz->ticks[i][j] = proc_pstat->myticks[j];
}
// cprintf("%d \t\t %d \n",pstat_var.pid[i], pstat_var.priority[i]);

// cprintf("%d \t\t %d \n",pstat_xyz->pid[i], pstat_xyz->priority[i]);
// cprintf("\n%d \t %s \t\tSLEEPING \t\t %d \t\t %d \n",pstat_xyz->pid[i],pstat_xyz->name[i], pstat_xyz->priority[i],pstat_xyz->ticks[i][pstat_xyz->priority[i]]);
}
i++;
}
release(&ptable.lock);

cprintf("pid \t name \t\t state \t\t priority \t\t ticks \n");
for(int i=0;i<NPROC;i++){
if(pstat_var.inuse[i] == 1){
if(pstat_var.state[i] == SLEEPING)
cprintf("%d \t %s \t\tSLEEPING \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);
else if(pstat_var.state[i] == RUNNING)
cprintf("%d \t %s \t\tRUNNING \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);
else if(pstat_var.state[i] == RUNNABLE)
cprintf("%d \t %s \t\tRUNNABLE \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);
else if(pstat_var.state[i] == ZOMBIE)
cprintf("%d \t %s \t\tZOMBIE \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);
//else if(pstat_var.state[i] == UNUSED)
//cprintf("%d \t %s \t\tUNUSED \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);
else if(pstat_var.state[i] == EMBRYO)
cprintf("%d \t %s \t\t EMBRYO \t\t %d \t\t %d \n",pstat_var.pid[i],pstat_var.name[i], pstat_var.priority[i],pstat_var.ticks[i][pstat_var.priority[i]]);

// cprintf("pid \t name \t\t state \t\t priority \t\t ticks \n");
// for(int i=0;i<64;i++){
// if(pstat_xyz->inuse[i] == 1){
// if(pstat_xyz->state[i] == SLEEPING)
// cprintf("\n%d \t %s \t\tSLEEPING \t\t %d \t\t %d \n",pstat_xyz->pid[i],pstat_xyz->name[i], pstat_xyz->priority[i],pstat_xyz->ticks[i][pstat_xyz->priority[i]]);
// else if(pstat_xyz->state[i] == RUNNING)
// cprintf("\n%d \t %s \t\tRUNNING \t\t %d \t\t %d \n",pstat_xyz->pid[i],pstat_xyz->name[i], pstat_xyz->priority[i],pstat_xyz->ticks[i][pstat_xyz->priority[i]]);
// else if(pstat_xyz->state[i] == RUNNABLE)
// cprintf("\n%d \t %s \t\tRUNNABLE \t\t %d \t\t %d \n",pstat_xyz->pid[i],pstat_xyz->name[i], pstat_xyz->priority[i],pstat_xyz->ticks[i][pstat_xyz->priority[i]]);
// else if(pstat_xyz->state[i] == ZOMBIE)
// cprintf("\n%d \t %s \t\tZOMBIE \t\t %d \t\t %d \n",pstat_xyz->pid[i],pstat_xyz->name[i], pstat_xyz->priority[i],pstat_xyz->ticks[i][pstat_xyz->priority[i]]);
// // else if(pstat_xyz->state[i] == UNUSED)
// // cprintf("%d \t %s \t\tUNUSED \t\t %d \t\t %d \n",pstat_xyz->pid[i],pstat_xyz->name[i], pstat_xyz->priority[i],pstat_xyz->ticks[i][pstat_xyz->priority[i]]);
// else if(pstat_xyz->state[i] == EMBRYO)
// cprintf("\n%d \t %s \t\t EMBRYO \t\t %d \t\t %d \n",pstat_xyz->pid[i],pstat_xyz->name[i], pstat_xyz->priority[i],pstat_xyz->ticks[i][pstat_xyz->priority[i]]);

// }
// }

}
}
release(&ptable.lock);


return 0;
}

0 comments on commit f6bbc09

Please sign in to comment.