This is Project 01 of CSE.30341.FA25.
The following are questions that should help you in thinking about how to approach implementing Project 01.
-
Given a command string such as
sleep 10, how would you start a process that executes this command? In particular, how would you handle the name of the program (ie.sleep) versus the arguments to the program (ie.10)? -
What signals do you need to send to a process to pause it (ie. suspend its execution) or to resume it (ie. continue its execution)?
-
What must happen when pushing a process to a
Queue? -
What must happen when popping a process from a
Queue? -
What must happen when removing a process from a
Queue?
-
What system call will allow us to trigger a timer event at periodic intervals? What signal does it send when a timer is triggered?
-
How will you interweave reading input from the user, handling periodic timers, and waiting for child processes?
-
What functions would allow you to parse strings with various arguments?
-
What needs to be created when calling
scheduler_addand where should this object go? -
How would you determine if you should display a particular queue in the
scheduler_statusfunction? -
How would you wait for a process without blocking? What information do you need to update when a process terminates?
-
What should the scheduler handler functions do when they receive either a
SIGALRMor aSIGCHLD? -
When and where are
scheduler_waitandscheduler_nextcalled?
- How would you use the result of
clock_gettimeto return adoublerepresenting the current time in seconds?
Describe any known errors, bugs, or deviations from the requirements. Response time may have issues but it works better than before.