AIX - 48/100

I would recommend fixing some of these problems and resubmitting. I won't give you full credit for that submission but at least you would get a passable grade.

readme.txt file included with submission - 8/8

Unpack and compile correctly - 4/15 points

  • Makefile supplied does not work on Rosemary
  • get following error when I compile
../src/user/spawn.c: In function `main':
../src/user/spawn.c:30: error: `for' loop initial declaration used outside C99 mode
make: *** [user/spawn.exe] Error 1
rm libc/entry.o

Also get the error

user/spawn.o(.text+0x22): In function `main':
: undefined reference to `printf'
make: *** [user/spawn.exe] Error 1
  • bochsrc file not correct version for rosemary

Limiting number of processes correctly - 18/25 points

Looks basically correct. Had problems testing and gave up.

Limiting number of system calls correctly - 18/25 points

  • syscall number incorrect because you increment counter twice for each system call (lines 84 and 85 of trap.c)

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 0/16

  • You get the error because you declare the variable i inside a for statement. the following would get rid of that error
int pid, i;
	char path[BUFSIZE+1] = "/c:/a";

	//keep spawning "long.exe" until geekos runs out of processes or
	// until long.c has been started arg times
	for(i=0; i<numIt; i++)

Even with this change spawn does not work.

Elegance of solution - 0/11 points

 

AmigaDOS- 96/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 25/25 points

Limiting number of system calls correctly - 25/25 points

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 16/16

Elegance of solution - 7/11 points

Looks great.

 

BeOS - 87/100

readme.txt file included with submission - 8/8

Great readme. thanks.

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 25/25 points

Limiting number of system calls correctly - 18/25 points

Here there are some problems. Many you noted in your readme. The problem comes from where you increment numSyscalls. You have this incrementing in a number of functions in syscall.c. You really only need to increment once further up the stream in syscall handler (in trap.c). Somehow the way you have it is giving bad results (like not seeing End Long.

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 16/16

Elegance of solution - 5/11 points

Generally good implementation.

 

Chipewa - 92/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 25/25 points

Limiting number of system calls correctly - 25/25 points

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 16/16

Elegance of solution - 3/11 points

Looks great. Deducted a few points for compile problems with first submission.

 

Croquet - 84/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 25/25 points

Limiting number of system calls correctly - 18/25 points

You have some problems with this. If I keep things set @ 100 system calls and run spawn.exe 5. I never see the End Long print statements. If I set the limit to 10k I do. I don't see anything obvious in your code, but there is some bug.

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 16/16

Elegance of solution - 2/11 points

 

EOS - 80/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 20/25 points

Doesn't appear the process decrement works correctly.

Limiting number of system calls correctly - 18/25 points

Problems with system call counter when executing spawn.exe.

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 16/16

Elegance of solution - 3/11 points

 

geos - 90/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 11/15 points

missing .bochsrc

Limiting number of processes correctly - 25/25 points

Limiting number of system calls correctly - 25/25 points

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 16/16

Elegance of solution - 5/11 points

Looks good.

 

Longhorn - 88/100

readme.txt file included with submission - 8/8

good readme

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 25/25 points

Limiting number of system calls correctly - 25/25 points

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 10/16

Spec says

Your spawn.exe program should display an error message 
"Maximum number of processes reached" if spawn fails due to 
reaching the maximum number of spawned processes. 

This is important and not picky because it shows you can pass info back to a user process.

Elegance of solution - 5/11 points

Generally good code.

 

Minux - 76/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 0/25 points

Limiting number of system calls correctly - 25/25 points

I should really deduct points here because it is your system call code that, in part, is screwing everything else up. For example, your code in trap.c is buggy.

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 16/16

Tested by moving spawn.c to a clean copy of project1.

Elegance of solution - 2/11 points

 

Nextstep - 74/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 25/25 points

I tested this by placing a good copy of spawn.c in your directory. This functionality seems to work.

Limiting number of system calls correctly - 18/25 points

The limiting part worked but the system calls maxed out when you called spawned programs using spawn.

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 5/16

What you have doesn't work for testing since you wait for child processes to stop. You also don't have any code for testing process limit.

Elegance of solution - 3/11 points

 

Oberon - 42/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 0/25 points

Unable to test

Limiting number of system calls correctly - 18/25 points

Ok. this violates the prime directive of coders Do no harm in that you regressed the original code. I've looked through your code a bit and nothing looks weird. I would recommend starting with a clean copy and slowly integrate your changes to see where things broke. I didn't do a diff on the files. Maybe that would help. I would recommend you puzzling through this and resubmitting.

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 16/16

Ok. If I rip your spawn.c and put it in a clean source code tree it works:

$ /c/spawn.exe 5
Spawning 
Spawning 
hey
Start Long
Spawning 
hey
Start Long
Spawning 
hey
Start Long
Spawning 
hey
Start Long
Spawning 
hey
Start Long
$ End Long
End Long
End Long
End Long
End Long

So that is cool!

Elegance of solution - 0/11 points

 

Symbian - 80/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 16/25 points

When I up the system call limit this gets close to working. (it limits the spawning of processing correctly but the info doesn't get passed to the user program)

Limiting number of system calls correctly - 20/25 points

Ok. I am not seeing the solution here, but your system call code, while it works for typing characters, seems to be buggy when spawning processes.

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 16/16

Elegance of solution - 5/11 points

 

TurboDOS - 88/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 25/25 points

Limiting number of system calls correctly - 25/25 points

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 10/16

Spec says

Your spawn.exe program should display an error message 
"Maximum number of processes reached" if spawn fails due to 
reaching the maximum number of spawned processes. 

This is important and not picky because it shows you can pass info back to a user process.

Elegance of solution - 5/11 points

Good code

 

Xinu - 90/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 25/25 points

Limiting number of system calls correctly - 20/25 points

The syscall limit works well for keystrokes but have problems with counting syscalls when you are spawning processes.

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 16/16

Elegance of solution - 6/11 points

 

VMS - 94/100

readme.txt file included with submission - 8/8

Unpack and compile correctly - 15/15 points

Limiting number of processes correctly - 25/25 points

Limiting number of system calls correctly - 25/25 points

Testing spawn.exe P (where P is the number of times to spawn long.exe) - 16/16

Elegance of solution - 5/11 points

Good solution and clean code