Hello, I have some questions about the project. Some of them might be kinda obvious, but I want to make sure I understand.
1) Lets say the time-quantum is 100usecs, and a process in the running state has accumulated 90usecs of CPU time so far. If the next system call happens in 20usecs, what should happen? In other words, are the times between system calls the actual time to run the system call, or are they just fixed times between system calls, and we have to imagine code being run in between?
2) Are the definitions in the system config and commands file always on one line, or can they be multi-line? The brief implies that they will always be on the same line, but doesn't explicitly say.
3) Are all the commands run from top to bottom? The brief implies so, but only actually says "the system 'automatically' commences by executing the first command in the command file."
4) This is kinda related to 3). Are all the commands run at once? ie. Are all the commands run, then all the corresponding processes are created, then they're put onto the ready queue, and then the CPU starts executing? Or is it one by one, like get next command -> make process -> run to completion -> repeat?
5) The brief says "It takes 20 microseconds for any process to first acquire the data-bus." What does it mean by "first acquire"? Does it mean the process doesn't need to take time to reacquire the data-bus if it already has it and it's going from ready to running?
6) Does our code need to be expandable? As in, do we need easy support for extra commands, system calls, system config variables, etc. Will I be marked down because of a question like "What if a device gets plugged-in/unplugged?"
7) Will we get tests to test our schedulers (pretty please)?
Thanks in advance.