summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsc <rsc>2007-08-08 08:38:38 +0000
committerrsc <rsc>2007-08-08 08:38:38 +0000
commita7d18bb6f081e1520af7eeed4e3a633aafc81124 (patch)
treeb4e2040142fe78f5c1b74ce091b5920bfa130031
parent7366e042d9a7a21397115ca49c0d9344a9365ada (diff)
downloadxv6-labs-a7d18bb6f081e1520af7eeed4e3a633aafc81124.tar.gz
xv6-labs-a7d18bb6f081e1520af7eeed4e3a633aafc81124.tar.bz2
xv6-labs-a7d18bb6f081e1520af7eeed4e3a633aafc81124.zip
comment tweaks; more informative process list
-rw-r--r--proc.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/proc.c b/proc.c
index 62c0b29..c7b6c85 100644
--- a/proc.c
+++ b/proc.c
@@ -163,7 +163,7 @@ copyproc(struct proc *p)
// - choose a process to run
// - longjmp to start running that process
// - eventually that process transfers control back
-// via longjmp back to the top of scheduler.
+// via longjmp back to the scheduler.
void
scheduler(void)
{
@@ -229,7 +229,7 @@ yield(void)
}
// A fork child's very first scheduling by scheduler()
-// will longjmp here. "return" to user space.
+// will longjmp here. "Return" to user space.
void
forkret(void)
{
@@ -390,6 +390,7 @@ proc_wait(void)
p->state = UNUSED;
p->pid = 0;
p->ppid = 0;
+ p->name[0] = 0;
release(&proc_table_lock);
return pid;
}
@@ -414,14 +415,27 @@ proc_wait(void)
void
procdump(void)
{
+ static char *states[] = {
+ "unused",
+ "embryo",
+ "sleep ",
+ "runble",
+ "run ",
+ "zombie"
+ };
int i;
struct proc *p;
+ char *state;
for(i = 0; i < NPROC; i++) {
p = &proc[i];
if(p->state == UNUSED)
continue;
- cprintf("%d %d %p\n", p->pid, p->state);
+ if(p->state < 0 || p->state > ZOMBIE)
+ state = "???";
+ else
+ state = states[p->state];
+ cprintf("%d %s %s\n", p->pid, state, p->name);
}
}