In this paper we describe Buffered Coscheduling, a new approach to design the system software of large scale parallel computers. A buffered coscheduled system can tolerate inefficient programs, programs that have communication and load imbalance, and can substantially increase the resource utilization, by overlapping computation, communication and I/O over several jobs. In addition to that, Buffered Coscheduling creates a framework to easily implement fault-tolerance, arguably the most important problem to solve to build usuable, large scale parallel computers.