- Test cases for commands implemented: all system() executable commands, history, cd, any integer
-
Functions
int main()
Main loop. Enables the special commands cd [dir], !!, history, and [any integer].
int exec_cd(char* cmdPntr)
Adds shortcut to cd to /home, and handles the cd input.
int exec_history()
Prints the history of commands entered.
char** get_args(char* input)
Obtains the arguments from the input string, delimited by ‘ \t\r\n\a’.
int store(char* cmd)
Stores a command into history. -
Notes
- Shell can handle integer inputs such as 000001 and 0.
- Shell is not fail-proof: history saves blank spaces and tabs into history because they are valid commands that cause system() to return 0. One way to circumvent this would be to check for a printed statement instead of checking for a return value of 0.
- Memory allocation can be improved dynamically.
-
These running times were recorded based on the best of 5 trials, for every thread count.
-
Overall, the running time is proportional to thread count. In MeanThread.java, the running time increased from 1>2>4>8 threads but saw a small improvement at 16 and 32 threads, after which increasing the thread count was detrimental to running time. In MedianThread.java, the running time actually decreased from 1>2>4 threads, then was fairly constant from 8>16>32>64>128 threads, after which the same phenomena occurred where increasing thread count was detrimental to running time.
-
This could be due to thread creation: after a certain threshold, the overhead of setting up new threads may outweigh the relatively small time saved by computing in different threads.
-
Also, after running the programs multiple times, the running time seems to have a high variance for larger thread counts, with deviations of ±100-150ms being fairly common.
- The time complexity of Banker’s algorithm is O(n^2 m).
- Banker(): O(1)
- printState(): O(n)
- requestResources() – includes one call to checkSafe(): O(n^2 m)
- releaseResources(): O(m)
- checkSafe() – due to while loop with O(n) containing nested for loop with O(nm): O(n^2 m)
- Total: O(n^2 m)
- Implemented create, delete, list, recursive find and recursive tree operations on directories
- Ping and traceroute practices
Host Packet size RTT Min RTT Avg RTT Max Success www.csail.mit.edu 56 6.629 9.378 14.808 100% 512 7.101 12.622 32.793 100% 1024 8.427 15.761 49.700 100% www.berkeley.edu 56 206.690 220.564 258.607 100% 512 209.106 229.268 328.019 100% 1024 209.567 215.184 234.341 100% www.usyd.edu.au 56 146.466 153.037 172.515 100% 512 146.396 158.615 185.209 100% 1024 148.225 158.603 173.055 100% www.kyoto-u.ac.jp 56 90.630 94.716 112.555 100% 512 91.421 95.855 119.764 100% 1024 91.420 101.139 132.032 100%
- DES/RSA/MD5
- Explaining text encryption/decryption using JCE
- Explaining image encryption/decryption using JCE
- Explaining message digest using JCE