The goal of Assignment 1 was to create a fully functional shell and interpreter. The shell would accept user input, parse it, and send the parsed tokens to the interpreter. The interpreter then attempts to run the user command. If the command is recognized and has a valid number of arguments, it is run.
The goal of Assignment 2 was to implement the exec command. This command emulates loading programs to RAM, adding their PCBs to a queue of running processes, and task switching between them. This in turn leads to concurrent execution of the scripts passed to the exec command.
Character-by-character movement | Token-by-token movement |
---|---|
Autocomplete command | Autocomplete command parameters |
---|---|
run script1 & run script2 | exec script1 script2 |
---|---|