From 18432ed5edaeb2a6ffd91f557880c277d96784c1 Mon Sep 17 00:00:00 2001
From: rtm <rtm>
Date: Tue, 29 Aug 2006 21:35:30 +0000
Subject: [PATCH] nits

---
 Notes  |  4 ++--
 proc.c | 14 +++++---------
 proc.h |  7 +++----
 3 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/Notes b/Notes
index 1a2ad2e..0399f5c 100644
--- a/Notes
+++ b/Notes
@@ -101,7 +101,6 @@ test: one process unlinks a file while another links to it
 test: one process opens a file while another deletes it
 test: deadlock d/.. vs ../d, two processes.
 test: dup() shared fd->off
-test: sbrk
 test: does echo foo > x truncate x?
 
 sh: support pipes?  leave it for the class?
@@ -119,4 +118,5 @@ echo foo > bar should truncate bar
   but O_TRUNC should
 
 make it work on one cpu
-make it work on amsterdam
+make it work on a real machine
+release before acquire at end of sleep?
diff --git a/proc.c b/proc.c
index eca5e97..401188e 100644
--- a/proc.c
+++ b/proc.c
@@ -38,8 +38,6 @@ setupsegs(struct proc *p)
     c->ts.esp0 = 0xffffffff;
   }
 
-  // XXX it may be wrong to modify the current segment table!
-
   c->gdt[0] = SEG_NULL;
   c->gdt[SEG_KCODE] = SEG(STA_X|STA_R, 0, 0x100000 + 64*1024, 0); // xxx
   c->gdt[SEG_KDATA] = SEG(STA_W, 0, 0xffffffff, 0);
@@ -96,7 +94,7 @@ copyproc(struct proc* p)
   np->ppid = p->pid;
   release(&proc_table_lock);
 
-  // Copy process image memory.
+  // Copy user memory.
   np->sz = p->sz;
   np->mem = kalloc(np->sz);
   if(np->mem == 0){
@@ -214,18 +212,16 @@ sched(void)
 void
 yield(void)
 {
-  struct proc *p;
+  struct proc *p = curproc[cpu()];
 
-  if((p=curproc[cpu()]) == 0 || curproc[cpu()]->state != RUNNING)
-    panic("yield");
   acquire(&proc_table_lock);
   p->state = RUNNABLE;
   sched();
   release(&proc_table_lock);
 }
 
-// A process's very first scheduling by scheduler()
-// will longjmp here to do the first jump into user space.
+// A fork child's very first scheduling by scheduler()
+// will longjmp here. "return" to user space.
 void
 forkret(void)
 {
@@ -371,7 +367,7 @@ proc_wait(void)
 
   acquire(&proc_table_lock);
   for(;;){
-    // Scan through table looking zombie children.
+    // Scan through table looking for zombie children.
     havekids = 0;
     for(i = 0; i < NPROC; i++){
       p = &proc[i];
diff --git a/proc.h b/proc.h
index 36b07a5..419eaba 100644
--- a/proc.h
+++ b/proc.h
@@ -36,9 +36,9 @@ struct jmpbuf {
 enum proc_state { UNUSED, EMBRYO, SLEEPING, RUNNABLE, RUNNING, ZOMBIE };
 
 struct proc{
-  char *mem; // start of process's physical memory
-  uint sz; // total size of mem, including kernel stack
-  char *kstack; // kernel stack, separate from mem so it doesn't move
+  char *mem;    // start of process's memory (a kernel address)
+  uint sz;      // user memory size
+  char *kstack; // kernel stack
   enum proc_state state;
   int pid;
   int ppid;
@@ -52,7 +52,6 @@ struct proc{
 
 extern struct proc proc[];
 extern struct proc *curproc[NCPU];  // can be NULL if no proc running.
-  // XXX move curproc into cpu structure?
 
 #define MPSTACK 512
 
-- 
GitLab