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
