This document proposes an autonomous self-assessment application that can intelligently determine the running time of processes based on the processor state and process priority. It uses several scheduling algorithms like shortest job first, first come first serve, priority, round robin, and multilevel queue scheduling. The application divides work into predicting process running times and scheduling a series of processes to optimize results. It calculates process weights, stores running time data, and uses that historical data to predict future running times. It then schedules processes using a priority-based approach and adjusts priorities if smaller processes are waiting too long. The results show the application can determine expected running times for given processes using this approach.