When scheduling situations become more complicated, for example when two or more processes share resources, it may be difficult to find the best schedule. A number of common scheduling problems, including variations on the example described above, fall into a class of problems that become very difficult to solve as their size (number of procedures and operations) grows.[12]