Optimizing Mainframe Batch Workloads: A Holistic Approach