In this project we plan to propose new algorithms for the operating system that take hardware issues such as caches into account. For instance, we plan to propose scheduling algorithms that will try to avoid switching the context when a given process is taking advantage of hardware elements such as cache, predictors, etc.